diff --git a/bin/config.xml b/bin/config.xml
index 0458862dbbec46edeef4269f5f223173c8f7e5b5..be45f75df3fd8b3f2f8af26c5ac3a4e396e1267b 100755
--- a/bin/config.xml
+++ b/bin/config.xml
@@ -65,7 +65,7 @@
 
 <PLUGIN_JAVA_CODE_GENERATOR data="../plugins/CustomizerAvatarCodeGeneration.jar" />
 
-<LastOpenFile data="/home/dblouin/Projets/TTool/git/TTool/modeling/AVATAR/CoffeeMachine_Avatar.xml"/>
+<LastOpenFile data="/home/dblouin/Projets/TTool/git/TTool/modeling/DIPLODOCUS/ZigBeeDEMO.xml"/>
 
 
 
diff --git a/build.txt b/build.txt
index 46d8b838dc40ea766ba1aa04857ad422a39e2753..0848eef440ab3f4669e6d84685d8f197b42dbfb0 100644
--- a/build.txt
+++ b/build.txt
@@ -1 +1 @@
-12240
\ No newline at end of file
+12241
\ No newline at end of file
diff --git a/modeling/DIPLODOCUS/ZigBeeDEMO.xml b/modeling/DIPLODOCUS/ZigBeeDEMO.xml
index c027bcc88b54254807786d9c814430a61a5f0847..251513506e516a28bbb1a2576efd02a909f597e3 100644
--- a/modeling/DIPLODOCUS/ZigBeeDEMO.xml
+++ b/modeling/DIPLODOCUS/ZigBeeDEMO.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 
-<TURTLEGMODELING version="0.99-beta2">
+<TURTLEGMODELING version="0.99-beta4">
 
 <Modeling type="Diplodocus Methodology" nameTab="DIPLODOCUS_Methodology" >
 <DiplodocusMethodologyDiagramPanel name="DIPLODOCUS_Methodology" minX="10" maxX="2500" minY="10" maxY="1500" zoom="1.0" >
 <COMPONENT type="6003" id="5" >
-<cdparam x="50" y="150" />
+<cdparam x="63" y="99" />
 <sizeparam width="200" height="120" minWidth="10" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -29,11 +29,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="6005" id="6" >
 <father id="13" num="0" />
-<cdparam x="605" y="140" />
+<cdparam x="605" y="170" />
 <sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="605" maxX="605" minY="140" maxY="140" />
-<infoparam name="value " value="DMA_transfer" />
+<cdrectangleparam minX="605" maxX="605" minY="170" maxY="170" />
+<infoparam name="value " value="CP_Memory_Copy" />
 </SUBCOMPONENT>
 <SUBCOMPONENT type="6005" id="7" >
 <father id="13" num="1" />
@@ -45,11 +45,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="6005" id="8" >
 <father id="13" num="2" />
-<cdparam x="605" y="170" />
+<cdparam x="605" y="140" />
 <sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="605" maxX="605" minY="170" maxY="170" />
-<infoparam name="value " value="CP_Memory_Copy" />
+<cdrectangleparam minX="605" maxX="605" minY="140" maxY="140" />
+<infoparam name="value " value="DMA_transfer" />
 </SUBCOMPONENT>
 
 <COMPONENT type="6002" id="23" >
@@ -67,11 +67,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="6005" id="14" >
 <father id="23" num="0" />
-<cdparam x="605" y="340" />
+<cdparam x="605" y="370" />
 <sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="605" maxX="605" minY="340" maxY="340" />
-<infoparam name="value " value="Mapping_0" />
+<cdrectangleparam minX="605" maxX="605" minY="370" maxY="370" />
+<infoparam name="value " value="Mapping_2" />
 </SUBCOMPONENT>
 <SUBCOMPONENT type="6005" id="15" >
 <father id="23" num="1" />
@@ -83,11 +83,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="6005" id="16" >
 <father id="23" num="2" />
-<cdparam x="605" y="370" />
+<cdparam x="605" y="340" />
 <sizeparam width="10" height="10" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="605" maxX="605" minY="370" maxY="370" />
-<infoparam name="value " value="Mapping_2" />
+<cdrectangleparam minX="605" maxX="605" minY="340" maxY="340" />
+<infoparam name="value " value="Mapping_0" />
 </SUBCOMPONENT>
 
 <COMPONENT type="6001" id="29" >
@@ -171,8 +171,8 @@
 <cdparam x="1952" y="691" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="119" y="76" id="324" />
-<P2  x="125" y="80" id="283" />
+<P1  x="10" y="0" id="335" />
+<P2  x="10" y="0" id="300" />
 <Point x="1770" y="552" />
 <Point x="1770" y="425" />
 <AutomaticDrawing  data="true" />
@@ -197,8 +197,8 @@
 <cdparam x="1951" y="285" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="363" />
-<P2  x="125" y="80" id="287" />
+<P1  x="10" y="0" id="412" />
+<P2  x="10" y="0" id="296" />
 <Point x="1656" y="228" />
 <Point x="1656" y="386" />
 <AutomaticDrawing  data="true" />
@@ -223,8 +223,8 @@
 <cdparam x="1491" y="561" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="242" />
-<P2  x="119" y="76" id="322" />
+<P1  x="10" y="0" id="263" />
+<P2  x="10" y="0" id="337" />
 <Point x="1315" y="448" />
 <Point x="1315" y="550" />
 <AutomaticDrawing  data="true" />
@@ -249,8 +249,8 @@
 <cdparam x="1491" y="511" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="246" />
-<P2  x="1372" y="199" id="389" />
+<P1  x="10" y="0" id="259" />
+<P2  x="10" y="0" id="378" />
 <Point x="1317" y="408" />
 <Point x="1317" y="209" />
 <AutomaticDrawing  data="true" />
@@ -275,7 +275,7 @@
 <cdparam x="1945" y="539" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="115" y="75" id="339" />
+<P1  x="10" y="0" id="320" />
 <P2  x="1740" y="286" id="102" />
 <Point x="1740" y="431" />
 <AutomaticDrawing  data="true" />
@@ -292,48 +292,48 @@
 <cdparam x="1077" y="532" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="207" />
-<P2  x="125" y="80" id="248" />
+<P1  x="10" y="0" id="218" />
+<P2  x="10" y="0" id="257" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="57" >
 <cdparam x="1074" y="384" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="126" y="73" id="222" />
-<P2  x="116" y="74" id="263" />
+<P1  x="10" y="0" id="203" />
+<P2  x="10" y="0" id="242" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="58" >
 <cdparam x="661" y="525" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="168" />
-<P2  x="125" y="80" id="205" />
+<P1  x="10" y="0" id="179" />
+<P2  x="10" y="0" id="220" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="59" >
 <cdparam x="660" y="383" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="126" y="76" id="183" />
-<P2  x="126" y="73" id="220" />
+<P1  x="10" y="0" id="164" />
+<P2  x="10" y="0" id="205" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="60" >
 <cdparam x="262" y="524" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="131" />
-<P2  x="125" y="80" id="166" />
+<P1  x="10" y="0" id="142" />
+<P2  x="10" y="0" id="181" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="61" >
 <cdparam x="265" y="373" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="128" y="72" id="144" />
-<P2  x="126" y="76" id="181" />
+<P1  x="10" y="0" id="129" />
+<P2  x="10" y="0" id="166" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="62" >
@@ -341,14 +341,14 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
 <P1  x="1753" y="280" id="97" />
-<P2  x="126" y="77" id="300" />
+<P2  x="10" y="0" id="283" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="64" >
 <cdparam x="1944" y="125" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="120" y="78" id="378" />
+<P1  x="10" y="0" id="397" />
 <P2  x="1740" y="274" id="100" />
 <Point x="1740" y="100" />
 <AutomaticDrawing  data="true" />
@@ -366,7 +366,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
 <P1  x="1296" y="300" id="114" />
-<P2  x="115" y="75" id="337" />
+<P2  x="10" y="0" id="322" />
 <Point x="1344" y="301" />
 <Point x="1344" y="425" />
 <AutomaticDrawing  data="true" />
@@ -391,8 +391,8 @@
 <cdparam x="1729" y="262" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1372" y="219" id="394" />
-<P2  x="125" y="80" id="361" />
+<P1  x="10" y="20" id="383" />
+<P2  x="10" y="0" id="414" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="70" >
@@ -400,7 +400,7 @@
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
 <P1  x="1291" y="294" id="116" />
-<P2  x="1372" y="84" id="408" />
+<P2  x="10" y="0" id="359" />
 <Point x="1292" y="95" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="69" >
@@ -416,15 +416,15 @@
 <cdparam x="1729" y="119" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="1372" y="104" id="413" />
-<P2  x="120" y="78" id="376" />
+<P1  x="10" y="20" id="364" />
+<P2  x="10" y="0" id="399" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="72" >
 <cdparam x="1485" y="363" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="116" y="74" id="261" />
+<P1  x="10" y="0" id="244" />
 <P2  x="1279" y="300" id="113" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
@@ -432,61 +432,61 @@
 <cdparam x="2385" y="443" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="285" />
-<P2  x="126" y="77" id="298" />
+<P1  x="10" y="0" id="298" />
+<P2  x="10" y="0" id="285" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="74" >
 <cdparam x="1911" y="211" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="359" />
-<P2  x="120" y="78" id="374" />
+<P1  x="10" y="0" id="416" />
+<P2  x="10" y="0" id="401" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="75" >
 <cdparam x="1912" y="621" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="119" y="76" id="320" />
-<P2  x="115" y="75" id="335" />
+<P1  x="10" y="0" id="339" />
+<P2  x="10" y="0" id="324" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="76" >
 <cdparam x="1457" y="435" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="244" />
-<P2  x="116" y="74" id="259" />
+<P1  x="10" y="0" id="261" />
+<P2  x="10" y="0" id="246" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="77" >
 <cdparam x="1041" y="456" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="203" />
-<P2  x="126" y="73" id="218" />
+<P1  x="10" y="0" id="222" />
+<P2  x="10" y="0" id="207" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="78" >
 <cdparam x="630" y="455" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="164" />
-<P2  x="126" y="76" id="179" />
+<P1  x="10" y="0" id="183" />
+<P2  x="10" y="0" id="168" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="79" >
 <cdparam x="215" y="452" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="Connector between ports" />
-<P1  x="125" y="80" id="129" />
-<P2  x="110" y="72" id="142" />
+<P1  x="10" y="0" id="144" />
+<P2  x="10" y="0" id="131" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="301" id="96" >
-<cdparam x="53" y="97" />
-<sizeparam width="345" height="43" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="0" y="0" />
+<sizeparam width="197" height="43" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="9" minY="0" maxY="6" />
 <infoparam name="UML Note" value="In this model THE PARAMETER SIZE
@@ -585,10 +585,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="141" >
 <father id="163" num="0" />
 <cdparam x="0" y="0" />
-<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="128" height="82" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
-<infoparam name="Primitive component" value="F_Source" />
+<cdrectangleparam minX="0" maxX="104" minY="0" maxY="174" />
+<infoparam name="Primitive component" value="X_Source" />
 <TGConnectingPoint num="0" id="133" />
 <TGConnectingPoint num="1" id="134" />
 <TGConnectingPoint num="2" id="135" />
@@ -598,20 +598,20 @@ processing tasks
 <TGConnectingPoint num="6" id="139" />
 <TGConnectingPoint num="7" id="140" />
 <extraparam>
-<Attribute access="2" id="size" value="127" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="130" >
 <father id="141" num="0" />
-<cdparam x="115" y="80" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Request source_req" />
+<cdrectangleparam minX="-10" maxX="118" minY="-10" maxY="72" />
+<infoparam name="Primitive port" value="Channel Source_ch_out" />
 <TGConnectingPoint num="0" id="129" />
 <extraparam>
-<Prop commName="source_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="Source_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="true" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="Source_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -620,14 +620,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="132" >
 <father id="141" num="1" />
-<cdparam x="115" y="80" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event Source_evt_out" />
+<cdrectangleparam minX="-10" maxX="118" minY="-10" maxY="72" />
+<infoparam name="Primitive port" value="Request source_req" />
 <TGConnectingPoint num="0" id="131" />
 <extraparam>
-<Prop commName="Source_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="source_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -638,10 +638,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="154" >
 <father id="163" num="1" />
 <cdparam x="0" y="0" />
-<sizeparam width="128" height="82" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="104" minY="0" maxY="174" />
-<infoparam name="Primitive component" value="X_Source" />
+<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
+<infoparam name="Primitive component" value="F_Source" />
 <TGConnectingPoint num="0" id="146" />
 <TGConnectingPoint num="1" id="147" />
 <TGConnectingPoint num="2" id="148" />
@@ -651,19 +651,19 @@ processing tasks
 <TGConnectingPoint num="6" id="152" />
 <TGConnectingPoint num="7" id="153" />
 <extraparam>
-<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="127" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="143" >
 <father id="154" num="0" />
-<cdparam x="100" y="72" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="118" minY="-10" maxY="72" />
-<infoparam name="Primitive port" value="Request source_req" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event Source_evt_out" />
 <TGConnectingPoint num="0" id="142" />
 <extraparam>
-<Prop commName="source_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="Source_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -673,15 +673,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="145" >
 <father id="154" num="1" />
-<cdparam x="118" y="72" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="118" minY="-10" maxY="72" />
-<infoparam name="Primitive port" value="Channel Source_ch_out" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Request source_req" />
 <TGConnectingPoint num="0" id="144" />
 <extraparam>
-<Prop commName="Source_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="true" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="Source_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="source_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -710,10 +710,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="178" >
 <father id="202" num="0" />
 <cdparam x="0" y="0" />
-<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="126" height="86" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
-<infoparam name="Primitive component" value="F_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="106" minY="0" maxY="170" />
+<infoparam name="Primitive component" value="X_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="170" />
 <TGConnectingPoint num="1" id="171" />
 <TGConnectingPoint num="2" id="172" />
@@ -728,15 +728,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="165" >
 <father id="178" num="0" />
-<cdparam x="115" y="80" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Request bit2chip_req" />
+<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="76" />
+<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_out" />
 <TGConnectingPoint num="0" id="164" />
 <extraparam>
-<Prop commName="bit2chip_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="symbol2ChipSeq_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -745,15 +745,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="167" >
 <father id="178" num="1" />
-<cdparam x="115" y="80" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event bit2symbol_evt_in" />
+<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="76" />
+<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_in" />
 <TGConnectingPoint num="0" id="166" />
 <extraparam>
-<Prop commName="bit2symbol_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="symbol2ChipSeq_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -762,14 +762,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="169" >
 <father id="178" num="2" />
-<cdparam x="115" y="80" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event bit2symbol_evt_out" />
+<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="76" />
+<infoparam name="Primitive port" value="Request bit2chip_req" />
 <TGConnectingPoint num="0" id="168" />
 <extraparam>
-<Prop commName="bit2symbol_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="bit2chip_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -780,10 +780,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="193" >
 <father id="202" num="1" />
 <cdparam x="0" y="0" />
-<sizeparam width="126" height="86" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="106" minY="0" maxY="170" />
-<infoparam name="Primitive component" value="X_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
+<infoparam name="Primitive component" value="F_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="185" />
 <TGConnectingPoint num="1" id="186" />
 <TGConnectingPoint num="2" id="187" />
@@ -798,14 +798,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="180" >
 <father id="193" num="0" />
-<cdparam x="116" y="76" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="76" />
-<infoparam name="Primitive port" value="Request bit2chip_req" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event bit2symbol_evt_out" />
 <TGConnectingPoint num="0" id="179" />
 <extraparam>
-<Prop commName="bit2chip_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="bit2symbol_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -815,15 +815,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="182" >
 <father id="193" num="1" />
-<cdparam x="116" y="76" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="76" />
-<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_in" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event bit2symbol_evt_in" />
 <TGConnectingPoint num="0" id="181" />
 <extraparam>
-<Prop commName="symbol2ChipSeq_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="bit2symbol_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -832,15 +832,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="184" >
 <father id="193" num="2" />
-<cdparam x="116" y="76" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="76" />
-<infoparam name="Primitive port" value="Channel symbol2ChipSeq_ch_out" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Request bit2chip_req" />
 <TGConnectingPoint num="0" id="183" />
 <extraparam>
-<Prop commName="symbol2ChipSeq_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="bit2chip_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="bit2chip_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -869,10 +869,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="217" >
 <father id="241" num="0" />
 <cdparam x="0" y="0" />
-<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="126" height="83" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
-<infoparam name="Primitive component" value="F_Chip_to_Octet" />
+<cdrectangleparam minX="0" maxX="106" minY="0" maxY="173" />
+<infoparam name="Primitive component" value="X_Chip_to_Octet" />
 <TGConnectingPoint num="0" id="209" />
 <TGConnectingPoint num="1" id="210" />
 <TGConnectingPoint num="2" id="211" />
@@ -887,15 +887,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="204" >
 <father id="217" num="0" />
-<cdparam x="115" y="80" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Request chip2octet_req" />
+<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="73" />
+<infoparam name="Primitive port" value="Channel chip2octet_ch_out" />
 <TGConnectingPoint num="0" id="203" />
 <extraparam>
-<Prop commName="chip2octet_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="chip2octet_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -904,15 +904,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="206" >
 <father id="217" num="1" />
-<cdparam x="115" y="80" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event chip2octet_evt_in" />
+<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="73" />
+<infoparam name="Primitive port" value="Channel chip2octet_ch_in" />
 <TGConnectingPoint num="0" id="205" />
 <extraparam>
-<Prop commName="chip2octet_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="chip2octet_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -921,14 +921,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="208" >
 <father id="217" num="2" />
-<cdparam x="115" y="80" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event chip2octet_evt_out" />
+<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="73" />
+<infoparam name="Primitive port" value="Request chip2octet_req" />
 <TGConnectingPoint num="0" id="207" />
 <extraparam>
-<Prop commName="chip2octet_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="chip2octet_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -939,10 +939,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="232" >
 <father id="241" num="1" />
 <cdparam x="0" y="0" />
-<sizeparam width="126" height="83" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="106" minY="0" maxY="173" />
-<infoparam name="Primitive component" value="X_Chip_to_Octet" />
+<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
+<infoparam name="Primitive component" value="F_Chip_to_Octet" />
 <TGConnectingPoint num="0" id="224" />
 <TGConnectingPoint num="1" id="225" />
 <TGConnectingPoint num="2" id="226" />
@@ -957,14 +957,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="219" >
 <father id="232" num="0" />
-<cdparam x="116" y="73" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="73" />
-<infoparam name="Primitive port" value="Request chip2octet_req" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event chip2octet_evt_out" />
 <TGConnectingPoint num="0" id="218" />
 <extraparam>
-<Prop commName="chip2octet_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="chip2octet_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -974,15 +974,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="221" >
 <father id="232" num="1" />
-<cdparam x="116" y="73" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="73" />
-<infoparam name="Primitive port" value="Channel chip2octet_ch_in" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event chip2octet_evt_in" />
 <TGConnectingPoint num="0" id="220" />
 <extraparam>
-<Prop commName="chip2octet_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="chip2octet_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -991,15 +991,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="223" >
 <father id="232" num="2" />
-<cdparam x="116" y="73" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="73" />
-<infoparam name="Primitive port" value="Channel chip2octet_ch_out" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Request chip2octet_req" />
 <TGConnectingPoint num="0" id="222" />
 <extraparam>
-<Prop commName="chip2octet_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="chip2octet_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="chip2octet_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1025,36 +1025,36 @@ processing tasks
 <info hiddeni="false" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1202" id="258" >
+<SUBCOMPONENT type="1202" id="256" >
 <father id="282" num="0" />
 <cdparam x="0" y="0" />
-<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="116" height="84" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
-<infoparam name="Primitive component" value="F_CWL" />
-<TGConnectingPoint num="0" id="250" />
-<TGConnectingPoint num="1" id="251" />
-<TGConnectingPoint num="2" id="252" />
-<TGConnectingPoint num="3" id="253" />
-<TGConnectingPoint num="4" id="254" />
-<TGConnectingPoint num="5" id="255" />
-<TGConnectingPoint num="6" id="256" />
-<TGConnectingPoint num="7" id="257" />
+<cdrectangleparam minX="0" maxX="116" minY="0" maxY="172" />
+<infoparam name="Primitive component" value="X_CWL" />
+<TGConnectingPoint num="0" id="248" />
+<TGConnectingPoint num="1" id="249" />
+<TGConnectingPoint num="2" id="250" />
+<TGConnectingPoint num="3" id="251" />
+<TGConnectingPoint num="4" id="252" />
+<TGConnectingPoint num="5" id="253" />
+<TGConnectingPoint num="6" id="254" />
+<TGConnectingPoint num="7" id="255" />
 <extraparam>
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="243" >
-<father id="258" num="0" />
-<cdparam x="115" y="80" />
+<father id="256" num="0" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event cwl_evt_out_1" />
+<cdrectangleparam minX="-10" maxX="106" minY="-10" maxY="74" />
+<infoparam name="Primitive port" value="Channel cwl_ch_in" />
 <TGConnectingPoint num="0" id="242" />
 <extraparam>
-<Prop commName="cwl_evt_out_1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="cwl_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1062,16 +1062,16 @@ processing tasks
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="245" >
-<father id="258" num="1" />
-<cdparam x="115" y="80" />
+<father id="256" num="1" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Request cwl_req" />
+<cdrectangleparam minX="-10" maxX="106" minY="-10" maxY="74" />
+<infoparam name="Primitive port" value="Channel cwl_ch_out" />
 <TGConnectingPoint num="0" id="244" />
 <extraparam>
-<Prop commName="cwl_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="cwl_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1079,32 +1079,15 @@ processing tasks
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="247" >
-<father id="258" num="2" />
-<cdparam x="115" y="80" />
+<father id="256" num="2" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event cwl_evt_out" />
+<cdrectangleparam minX="-10" maxX="106" minY="-10" maxY="74" />
+<infoparam name="Primitive port" value="Request cwl_req" />
 <TGConnectingPoint num="0" id="246" />
 <extraparam>
-<Prop commName="cwl_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="249" >
-<father id="258" num="3" />
-<cdparam x="115" y="80" />
-<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event cwl_evt_in" />
-<TGConnectingPoint num="0" id="248" />
-<extraparam>
-<Prop commName="cwl_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="cwl_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1115,10 +1098,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="273" >
 <father id="282" num="1" />
 <cdparam x="0" y="0" />
-<sizeparam width="116" height="84" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="116" minY="0" maxY="172" />
-<infoparam name="Primitive component" value="X_CWL" />
+<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
+<infoparam name="Primitive component" value="F_CWL" />
 <TGConnectingPoint num="0" id="265" />
 <TGConnectingPoint num="1" id="266" />
 <TGConnectingPoint num="2" id="267" />
@@ -1131,16 +1114,16 @@ processing tasks
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="260" >
+<SUBCOMPONENT type="1203" id="258" >
 <father id="273" num="0" />
-<cdparam x="106" y="74" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="106" minY="-10" maxY="74" />
-<infoparam name="Primitive port" value="Request cwl_req" />
-<TGConnectingPoint num="0" id="259" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event cwl_evt_in" />
+<TGConnectingPoint num="0" id="257" />
 <extraparam>
-<Prop commName="cwl_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="cwl_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1148,34 +1131,51 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="262" >
+<SUBCOMPONENT type="1203" id="260" >
 <father id="273" num="1" />
-<cdparam x="106" y="74" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="106" minY="-10" maxY="74" />
-<infoparam name="Primitive port" value="Channel cwl_ch_out" />
-<TGConnectingPoint num="0" id="261" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event cwl_evt_out" />
+<TGConnectingPoint num="0" id="259" />
 <extraparam>
-<Prop commName="cwl_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_out" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="cwl_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="262" >
+<father id="273" num="2" />
+<cdparam x="0" y="0" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Request cwl_req" />
+<TGConnectingPoint num="0" id="261" />
+<extraparam>
+<Prop commName="cwl_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="264" >
-<father id="273" num="2" />
-<cdparam x="106" y="74" />
+<father id="273" num="3" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="106" minY="-10" maxY="74" />
-<infoparam name="Primitive port" value="Channel cwl_ch_in" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event cwl_evt_out_1" />
 <TGConnectingPoint num="0" id="263" />
 <extraparam>
-<Prop commName="cwl_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="cwl_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="cwl_evt_out_1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1201,37 +1201,36 @@ processing tasks
 <info hiddeni="false" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1202" id="297" >
+<SUBCOMPONENT type="1202" id="295" >
 <father id="319" num="0" />
 <cdparam x="0" y="0" />
-<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="126" height="87" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="107" minY="0" maxY="171" />
-<infoparam name="Primitive component" value="F_Sink" />
-<TGConnectingPoint num="0" id="289" />
-<TGConnectingPoint num="1" id="290" />
-<TGConnectingPoint num="2" id="291" />
-<TGConnectingPoint num="3" id="292" />
-<TGConnectingPoint num="4" id="293" />
-<TGConnectingPoint num="5" id="294" />
-<TGConnectingPoint num="6" id="295" />
-<TGConnectingPoint num="7" id="296" />
+<cdrectangleparam minX="0" maxX="106" minY="0" maxY="174" />
+<infoparam name="Primitive component" value="X_Sink" />
+<TGConnectingPoint num="0" id="287" />
+<TGConnectingPoint num="1" id="288" />
+<TGConnectingPoint num="2" id="289" />
+<TGConnectingPoint num="3" id="290" />
+<TGConnectingPoint num="4" id="291" />
+<TGConnectingPoint num="5" id="292" />
+<TGConnectingPoint num="6" id="293" />
+<TGConnectingPoint num="7" id="294" />
 <extraparam>
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
-<Attribute access="2" id="size_1" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="284" >
-<father id="297" num="0" />
-<cdparam x="115" y="80" />
+<father id="295" num="0" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event sink_evt_in_1" />
+<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="77" />
+<infoparam name="Primitive port" value="Channel sink_ch_in" />
 <TGConnectingPoint num="0" id="283" />
 <extraparam>
-<Prop commName="sink_evt_in_1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="sink_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="true" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="sink_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1239,32 +1238,15 @@ processing tasks
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="286" >
-<father id="297" num="1" />
-<cdparam x="115" y="80" />
+<father id="295" num="1" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="77" />
 <infoparam name="Primitive port" value="Request sink_req" />
 <TGConnectingPoint num="0" id="285" />
 <extraparam>
-<Prop commName="sink_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-<Type type="0" typeOther="" />
-</extraparam>
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="288" >
-<father id="297" num="2" />
-<cdparam x="115" y="80" />
-<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event sink_evt_in" />
-<TGConnectingPoint num="0" id="287" />
-<extraparam>
-<Prop commName="sink_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="sink_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1275,10 +1257,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="310" >
 <father id="319" num="1" />
 <cdparam x="0" y="0" />
-<sizeparam width="126" height="87" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="106" minY="0" maxY="174" />
-<infoparam name="Primitive component" value="X_Sink" />
+<cdrectangleparam minX="0" maxX="107" minY="0" maxY="171" />
+<infoparam name="Primitive component" value="F_Sink" />
 <TGConnectingPoint num="0" id="302" />
 <TGConnectingPoint num="1" id="303" />
 <TGConnectingPoint num="2" id="304" />
@@ -1289,18 +1271,36 @@ processing tasks
 <TGConnectingPoint num="7" id="309" />
 <extraparam>
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="size_1" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="299" >
+<SUBCOMPONENT type="1203" id="297" >
 <father id="310" num="0" />
-<cdparam x="116" y="77" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="77" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event sink_evt_in" />
+<TGConnectingPoint num="0" id="296" />
+<extraparam>
+<Prop commName="sink_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+<Type type="0" typeOther="" />
+</extraparam>
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1203" id="299" >
+<father id="310" num="1" />
+<cdparam x="0" y="0" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
 <infoparam name="Primitive port" value="Request sink_req" />
 <TGConnectingPoint num="0" id="298" />
 <extraparam>
-<Prop commName="sink_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="sink_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1309,16 +1309,16 @@ processing tasks
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="301" >
-<father id="310" num="1" />
-<cdparam x="116" y="77" />
+<father id="310" num="2" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="116" minY="-10" maxY="77" />
-<infoparam name="Primitive port" value="Channel sink_ch_in" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event sink_evt_in_1" />
 <TGConnectingPoint num="0" id="300" />
 <extraparam>
-<Prop commName="sink_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="true" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="sink_evt_in" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="sink_evt_in_1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1347,10 +1347,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="334" >
 <father id="358" num="0" />
 <cdparam x="0" y="0" />
-<sizeparam width="119" height="86" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="115" height="85" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="113" minY="0" maxY="170" />
-<infoparam name="Primitive component" value="F_CWP_Q" />
+<cdrectangleparam minX="0" maxX="117" minY="0" maxY="171" />
+<infoparam name="Primitive component" value="X_CWP_Q" />
 <TGConnectingPoint num="0" id="326" />
 <TGConnectingPoint num="1" id="327" />
 <TGConnectingPoint num="2" id="328" />
@@ -1365,15 +1365,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="321" >
 <father id="334" num="0" />
-<cdparam x="109" y="76" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="109" minY="-10" maxY="76" />
-<infoparam name="Primitive port" value="Request cwpQ_req" />
+<cdrectangleparam minX="-10" maxX="105" minY="-10" maxY="75" />
+<infoparam name="Primitive port" value="Channel cwpQ_ch_out" />
 <TGConnectingPoint num="0" id="320" />
 <extraparam>
-<Prop commName="cwpQ_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="cwpQ_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1382,15 +1382,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="323" >
 <father id="334" num="1" />
-<cdparam x="109" y="76" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="109" minY="-10" maxY="76" />
-<infoparam name="Primitive port" value="Event cwpQ_evt_in" />
+<cdrectangleparam minX="-10" maxX="105" minY="-10" maxY="75" />
+<infoparam name="Primitive port" value="Channel cwpQ_ch_in" />
 <TGConnectingPoint num="0" id="322" />
 <extraparam>
-<Prop commName="cwpQ_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="cwpQ_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1399,14 +1399,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="325" >
 <father id="334" num="2" />
-<cdparam x="109" y="76" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="109" minY="-10" maxY="76" />
-<infoparam name="Primitive port" value="Event cwpQ_evt_out" />
+<cdrectangleparam minX="-10" maxX="105" minY="-10" maxY="75" />
+<infoparam name="Primitive port" value="Request cwpQ_req" />
 <TGConnectingPoint num="0" id="324" />
 <extraparam>
-<Prop commName="cwpQ_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="cwpQ_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1417,10 +1417,10 @@ processing tasks
 <SUBCOMPONENT type="1202" id="349" >
 <father id="358" num="1" />
 <cdparam x="0" y="0" />
-<sizeparam width="115" height="85" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="119" height="86" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="117" minY="0" maxY="171" />
-<infoparam name="Primitive component" value="X_CWP_Q" />
+<cdrectangleparam minX="0" maxX="113" minY="0" maxY="170" />
+<infoparam name="Primitive component" value="F_CWP_Q" />
 <TGConnectingPoint num="0" id="341" />
 <TGConnectingPoint num="1" id="342" />
 <TGConnectingPoint num="2" id="343" />
@@ -1435,14 +1435,14 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="336" >
 <father id="349" num="0" />
-<cdparam x="105" y="75" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="105" minY="-10" maxY="75" />
-<infoparam name="Primitive port" value="Request cwpQ_req" />
+<cdrectangleparam minX="-10" maxX="109" minY="-10" maxY="76" />
+<infoparam name="Primitive port" value="Event cwpQ_evt_out" />
 <TGConnectingPoint num="0" id="335" />
 <extraparam>
-<Prop commName="cwpQ_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="cwpQ_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1452,15 +1452,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="338" >
 <father id="349" num="1" />
-<cdparam x="105" y="75" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="105" minY="-10" maxY="75" />
-<infoparam name="Primitive port" value="Channel cwpQ_ch_in" />
+<cdrectangleparam minX="-10" maxX="109" minY="-10" maxY="76" />
+<infoparam name="Primitive port" value="Event cwpQ_evt_in" />
 <TGConnectingPoint num="0" id="337" />
 <extraparam>
-<Prop commName="cwpQ_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="cwpQ_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1469,15 +1469,15 @@ processing tasks
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="340" >
 <father id="349" num="2" />
-<cdparam x="105" y="75" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="105" minY="-10" maxY="75" />
-<infoparam name="Primitive port" value="Channel cwpQ_ch_out" />
+<cdrectangleparam minX="-10" maxX="109" minY="-10" maxY="76" />
+<infoparam name="Primitive port" value="Request cwpQ_req" />
 <TGConnectingPoint num="0" id="339" />
 <extraparam>
-<Prop commName="cwpQ_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="cwpQ_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1503,69 +1503,121 @@ processing tasks
 <info hiddeni="false" />
 </extraparam>
 </COMPONENT>
-<SUBCOMPONENT type="1202" id="373" >
+<SUBCOMPONENT type="1201" id="377" >
 <father id="435" num="0" />
 <cdparam x="0" y="0" />
-<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="20" height="20" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
-<infoparam name="Primitive component" value="F_CWP_I" />
-<TGConnectingPoint num="0" id="365" />
-<TGConnectingPoint num="1" id="366" />
-<TGConnectingPoint num="2" id="367" />
-<TGConnectingPoint num="3" id="368" />
-<TGConnectingPoint num="4" id="369" />
-<TGConnectingPoint num="5" id="370" />
-<TGConnectingPoint num="6" id="371" />
-<TGConnectingPoint num="7" id="372" />
+<cdrectangleparam minX="-10" maxX="222" minY="-10" maxY="246" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="359" />
+<TGConnectingPoint num="1" id="360" />
+<TGConnectingPoint num="2" id="361" />
+<TGConnectingPoint num="3" id="362" />
+<TGConnectingPoint num="4" id="363" />
+<TGConnectingPoint num="5" id="364" />
+<TGConnectingPoint num="6" id="365" />
+<TGConnectingPoint num="7" id="366" />
+<TGConnectingPoint num="8" id="367" />
+<TGConnectingPoint num="9" id="368" />
+<TGConnectingPoint num="10" id="369" />
+<TGConnectingPoint num="11" id="370" />
+<TGConnectingPoint num="12" id="371" />
+<TGConnectingPoint num="13" id="372" />
+<TGConnectingPoint num="14" id="373" />
+<TGConnectingPoint num="15" id="374" />
+<TGConnectingPoint num="16" id="375" />
+<TGConnectingPoint num="17" id="376" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="396" >
+<father id="435" num="1" />
+<cdparam x="0" y="0" />
+<sizeparam width="20" height="20" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="222" minY="-10" maxY="246" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="378" />
+<TGConnectingPoint num="1" id="379" />
+<TGConnectingPoint num="2" id="380" />
+<TGConnectingPoint num="3" id="381" />
+<TGConnectingPoint num="4" id="382" />
+<TGConnectingPoint num="5" id="383" />
+<TGConnectingPoint num="6" id="384" />
+<TGConnectingPoint num="7" id="385" />
+<TGConnectingPoint num="8" id="386" />
+<TGConnectingPoint num="9" id="387" />
+<TGConnectingPoint num="10" id="388" />
+<TGConnectingPoint num="11" id="389" />
+<TGConnectingPoint num="12" id="390" />
+<TGConnectingPoint num="13" id="391" />
+<TGConnectingPoint num="14" id="392" />
+<TGConnectingPoint num="15" id="393" />
+<TGConnectingPoint num="16" id="394" />
+<TGConnectingPoint num="17" id="395" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="411" >
+<father id="435" num="2" />
+<cdparam x="0" y="0" />
+<sizeparam width="120" height="88" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="112" minY="0" maxY="168" />
+<infoparam name="Primitive component" value="X_CWP_I" />
+<TGConnectingPoint num="0" id="403" />
+<TGConnectingPoint num="1" id="404" />
+<TGConnectingPoint num="2" id="405" />
+<TGConnectingPoint num="3" id="406" />
+<TGConnectingPoint num="4" id="407" />
+<TGConnectingPoint num="5" id="408" />
+<TGConnectingPoint num="6" id="409" />
+<TGConnectingPoint num="7" id="410" />
 <extraparam>
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="360" >
-<father id="373" num="0" />
-<cdparam x="115" y="80" />
+<SUBCOMPONENT type="1203" id="398" >
+<father id="411" num="0" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Request cwpI_req" />
-<TGConnectingPoint num="0" id="359" />
+<cdrectangleparam minX="-10" maxX="110" minY="-10" maxY="78" />
+<infoparam name="Primitive port" value="Channel cwpI_ch_out" />
+<TGConnectingPoint num="0" id="397" />
 <extraparam>
-<Prop commName="cwpI_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="cwpI_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="362" >
-<father id="373" num="1" />
-<cdparam x="115" y="80" />
+<SUBCOMPONENT type="1203" id="400" >
+<father id="411" num="1" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event cwpI_evt_in" />
-<TGConnectingPoint num="0" id="361" />
+<cdrectangleparam minX="-10" maxX="110" minY="-10" maxY="78" />
+<infoparam name="Primitive port" value="Channel cwpI_ch_in" />
+<TGConnectingPoint num="0" id="399" />
 <extraparam>
-<Prop commName="cwpI_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="cwpI_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="364" >
-<father id="373" num="2" />
-<cdparam x="115" y="80" />
+<SUBCOMPONENT type="1203" id="402" >
+<father id="411" num="2" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
-<infoparam name="Primitive port" value="Event cwpI_evt_out" />
-<TGConnectingPoint num="0" id="363" />
+<cdrectangleparam minX="-10" maxX="110" minY="-10" maxY="78" />
+<infoparam name="Primitive port" value="Request cwpI_req" />
+<TGConnectingPoint num="0" id="401" />
 <extraparam>
-<Prop commName="cwpI_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="cwpI_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1573,35 +1625,35 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="388" >
-<father id="435" num="1" />
+<SUBCOMPONENT type="1202" id="426" >
+<father id="435" num="3" />
 <cdparam x="0" y="0" />
-<sizeparam width="120" height="88" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="125" height="90" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="112" minY="0" maxY="168" />
-<infoparam name="Primitive component" value="X_CWP_I" />
-<TGConnectingPoint num="0" id="380" />
-<TGConnectingPoint num="1" id="381" />
-<TGConnectingPoint num="2" id="382" />
-<TGConnectingPoint num="3" id="383" />
-<TGConnectingPoint num="4" id="384" />
-<TGConnectingPoint num="5" id="385" />
-<TGConnectingPoint num="6" id="386" />
-<TGConnectingPoint num="7" id="387" />
+<cdrectangleparam minX="0" maxX="107" minY="0" maxY="166" />
+<infoparam name="Primitive component" value="F_CWP_I" />
+<TGConnectingPoint num="0" id="418" />
+<TGConnectingPoint num="1" id="419" />
+<TGConnectingPoint num="2" id="420" />
+<TGConnectingPoint num="3" id="421" />
+<TGConnectingPoint num="4" id="422" />
+<TGConnectingPoint num="5" id="423" />
+<TGConnectingPoint num="6" id="424" />
+<TGConnectingPoint num="7" id="425" />
 <extraparam>
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="375" >
-<father id="388" num="0" />
-<cdparam x="110" y="78" />
+<SUBCOMPONENT type="1203" id="413" >
+<father id="426" num="0" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="110" minY="-10" maxY="78" />
-<infoparam name="Primitive port" value="Request cwpI_req" />
-<TGConnectingPoint num="0" id="374" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event cwpI_evt_out" />
+<TGConnectingPoint num="0" id="412" />
 <extraparam>
-<Prop commName="cwpI_req" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="cwpI_evt_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -1609,108 +1661,148 @@ processing tasks
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="377" >
-<father id="388" num="1" />
-<cdparam x="110" y="78" />
+<SUBCOMPONENT type="1203" id="415" >
+<father id="426" num="1" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="110" minY="-10" maxY="78" />
-<infoparam name="Primitive port" value="Channel cwpI_ch_in" />
-<TGConnectingPoint num="0" id="376" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Event cwpI_evt_in" />
+<TGConnectingPoint num="0" id="414" />
 <extraparam>
-<Prop commName="cwpI_ch_in" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="cwpI_evt_in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="379" >
-<father id="388" num="2" />
-<cdparam x="110" y="78" />
+<SUBCOMPONENT type="1203" id="417" >
+<father id="426" num="2" />
+<cdparam x="0" y="0" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="110" minY="-10" maxY="78" />
-<infoparam name="Primitive port" value="Channel cwpI_ch_out" />
-<TGConnectingPoint num="0" id="378" />
+<cdrectangleparam minX="-10" maxX="115" minY="-10" maxY="80" />
+<infoparam name="Primitive port" value="Request cwpI_req" />
+<TGConnectingPoint num="0" id="416" />
 <extraparam>
-<Prop commName="cwpI_ch_out" commType="0" origin="true" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="uint_16" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="cwpI_req" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="407" >
-<father id="435" num="2" />
-<cdparam x="1362" y="199" />
-<sizeparam width="20" height="20" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+
+</TMLComponentTaskDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_Source" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1001" id="437" >
+<cdparam x="397" y="338" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="222" minY="-10" maxY="246" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="389" />
-<TGConnectingPoint num="1" id="390" />
-<TGConnectingPoint num="2" id="391" />
-<TGConnectingPoint num="3" id="392" />
-<TGConnectingPoint num="4" id="393" />
-<TGConnectingPoint num="5" id="394" />
-<TGConnectingPoint num="6" id="395" />
-<TGConnectingPoint num="7" id="396" />
-<TGConnectingPoint num="8" id="397" />
-<TGConnectingPoint num="9" id="398" />
-<TGConnectingPoint num="10" id="399" />
-<TGConnectingPoint num="11" id="400" />
-<TGConnectingPoint num="12" id="401" />
-<TGConnectingPoint num="13" id="402" />
-<TGConnectingPoint num="14" id="403" />
-<TGConnectingPoint num="15" id="404" />
-<TGConnectingPoint num="16" id="405" />
-<TGConnectingPoint num="17" id="406" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="426" >
-<father id="435" num="3" />
-<cdparam x="1362" y="84" />
-<sizeparam width="20" height="20" minWidth="10" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="436" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="440" >
+<cdparam x="338" y="262" />
+<sizeparam width="139" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-10" maxX="222" minY="-10" maxY="246" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="408" />
-<TGConnectingPoint num="1" id="409" />
-<TGConnectingPoint num="2" id="410" />
-<TGConnectingPoint num="3" id="411" />
-<TGConnectingPoint num="4" id="412" />
-<TGConnectingPoint num="5" id="413" />
-<TGConnectingPoint num="6" id="414" />
-<TGConnectingPoint num="7" id="415" />
-<TGConnectingPoint num="8" id="416" />
-<TGConnectingPoint num="9" id="417" />
-<TGConnectingPoint num="10" id="418" />
-<TGConnectingPoint num="11" id="419" />
-<TGConnectingPoint num="12" id="420" />
-<TGConnectingPoint num="13" id="421" />
-<TGConnectingPoint num="14" id="422" />
-<TGConnectingPoint num="15" id="423" />
-<TGConnectingPoint num="16" id="424" />
-<TGConnectingPoint num="17" id="425" />
-</SUBCOMPONENT>
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="Source_evt_out(size)" />
+<TGConnectingPoint num="0" id="438" />
+<TGConnectingPoint num="1" id="439" />
+<extraparam>
+<Data eventName="Source_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1007" id="443" >
+<cdparam x="351" y="188" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="source_req(size)" />
+<TGConnectingPoint num="0" id="441" />
+<TGConnectingPoint num="1" id="442" />
+<extraparam>
+<Data requestName="source_req" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
 
+<COMPONENT type="1011" id="446" >
+<cdparam x="370" y="116" />
+<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="action state" value="size = 127" />
+<TGConnectingPoint num="0" id="444" />
+<TGConnectingPoint num="1" id="445" />
+</COMPONENT>
 
-</TMLComponentTaskDiagramPanel>
+<COMPONENT type="1000" id="448" >
+<cdparam x="400" y="50" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="447" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="449" >
+<cdparam x="407" y="70" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="70" id="447" />
+<P2  x="407" y="111" id="444" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="450" >
+<cdparam x="407" y="141" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="141" id="445" />
+<P2  x="407" y="183" id="441" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="451" >
+<cdparam x="407" y="213" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="213" id="442" />
+<P2  x="407" y="257" id="438" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="452" >
+<cdparam x="407" y="287" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="407" y="287" id="439" />
+<P2  x="407" y="333" id="436" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_Source" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="439" >
+<COMPONENT type="1013" id="456" >
 <cdparam x="402" y="189" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="437" />
-<TGConnectingPoint num="1" id="438" />
+<TGConnectingPoint num="0" id="454" />
+<TGConnectingPoint num="1" id="455" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="436" >
-<father id="439" num="0" />
+<SUBCOMPONENT type="-1" id="453" >
+<father id="456" num="0" />
 <cdparam x="417" y="209" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1718,190 +1810,195 @@ processing tasks
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1001" id="441" >
+<COMPONENT type="1001" id="458" >
 <cdparam x="397" y="342" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="440" />
+<TGConnectingPoint num="0" id="457" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="444" >
+<COMPONENT type="1006" id="461" >
 <cdparam x="340" y="270" />
 <sizeparam width="135" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="Source_ch_out(size)" />
-<TGConnectingPoint num="0" id="442" />
-<TGConnectingPoint num="1" id="443" />
+<TGConnectingPoint num="0" id="459" />
+<TGConnectingPoint num="1" id="460" />
 <extraparam>
 <Data channelName="Source_ch_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="447" >
+<COMPONENT type="1034" id="464" >
 <cdparam x="351" y="113" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="445" />
-<TGConnectingPoint num="1" id="446" />
+<TGConnectingPoint num="0" id="462" />
+<TGConnectingPoint num="1" id="463" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="449" >
+<COMPONENT type="1000" id="466" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="448" />
+<TGConnectingPoint num="0" id="465" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="450" >
+<CONNECTOR type="115" id="467" >
 <cdparam x="462" y="222" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="224" id="438" />
-<P2  x="407" y="265" id="442" />
+<P1  x="407" y="224" id="455" />
+<P2  x="407" y="265" id="459" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="451" >
+<CONNECTOR type="115" id="468" >
 <cdparam x="407" y="70" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="70" id="448" />
-<P2  x="407" y="108" id="445" />
+<P1  x="407" y="70" id="465" />
+<P2  x="407" y="108" id="462" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="452" >
+<CONNECTOR type="115" id="469" >
 <cdparam x="402" y="256" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="295" id="443" />
-<P2  x="407" y="337" id="440" />
+<P1  x="407" y="295" id="460" />
+<P2  x="407" y="337" id="457" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="453" >
+<CONNECTOR type="115" id="470" >
 <cdparam x="407" y="155" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="138" id="446" />
-<P2  x="407" y="184" id="437" />
+<P1  x="407" y="138" id="463" />
+<P2  x="407" y="184" id="454" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_Source" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1001" id="455" >
-<cdparam x="397" y="338" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="F_Symbol2ChipSeq" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="473" >
+<cdparam x="317" y="132" />
+<sizeparam width="156" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="454" />
+<infoparam name="wait event" value="bit2symbol_evt_in(size) " />
+<TGConnectingPoint num="0" id="471" />
+<TGConnectingPoint num="1" id="472" />
+<extraparam>
+<Data eventName="bit2symbol_evt_in" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="458" >
-<cdparam x="338" y="262" />
-<sizeparam width="139" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="475" >
+<cdparam x="385" y="354" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="Source_evt_out(size)" />
-<TGConnectingPoint num="0" id="456" />
-<TGConnectingPoint num="1" id="457" />
-<extraparam>
-<Data eventName="Source_evt_out" nbOfParams="5" />
-<Param index="0" value="size" />
-</extraparam>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="474" />
 </COMPONENT>
 
-<COMPONENT type="1007" id="461" >
-<cdparam x="351" y="188" />
-<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="478" >
+<cdparam x="314" y="278" />
+<sizeparam width="162" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="source_req(size)" />
-<TGConnectingPoint num="0" id="459" />
-<TGConnectingPoint num="1" id="460" />
+<infoparam name="send event" value="bit2symbol_evt_out(size)" />
+<TGConnectingPoint num="0" id="476" />
+<TGConnectingPoint num="1" id="477" />
+<accessibility />
 <extraparam>
-<Data requestName="source_req" nbOfParams="5" />
+<Data eventName="bit2symbol_evt_out" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1011" id="464" >
-<cdparam x="370" y="116" />
-<sizeparam width="75" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="481" >
+<cdparam x="335" y="204" />
+<sizeparam width="120" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="action state" value="size = 127" />
-<TGConnectingPoint num="0" id="462" />
-<TGConnectingPoint num="1" id="463" />
+<infoparam name="send request" value="bit2chip_req(size)" />
+<TGConnectingPoint num="0" id="479" />
+<TGConnectingPoint num="1" id="480" />
+<extraparam>
+<Data requestName="bit2chip_req" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="466" >
-<cdparam x="400" y="50" />
+<COMPONENT type="1000" id="483" >
+<cdparam x="388" y="66" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="465" />
+<TGConnectingPoint num="0" id="482" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="467" >
-<cdparam x="407" y="70" />
+<CONNECTOR type="115" id="484" >
+<cdparam x="395" y="229" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="70" id="465" />
-<P2  x="407" y="111" id="462" />
+<P1  x="395" y="229" id="480" />
+<P2  x="395" y="273" id="476" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="468" >
-<cdparam x="407" y="141" />
+<CONNECTOR type="115" id="485" >
+<cdparam x="395" y="303" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="141" id="463" />
-<P2  x="407" y="183" id="459" />
+<P1  x="395" y="303" id="477" />
+<P2  x="395" y="349" id="474" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="469" >
-<cdparam x="407" y="213" />
+<CONNECTOR type="115" id="486" >
+<cdparam x="395" y="86" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="213" id="460" />
-<P2  x="407" y="257" id="456" />
+<P1  x="395" y="86" id="482" />
+<P2  x="395" y="127" id="471" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="470" >
-<cdparam x="407" y="287" />
+<CONNECTOR type="115" id="487" >
+<cdparam x="435" y="149" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="287" id="457" />
-<P2  x="407" y="333" id="454" />
+<P1  x="395" y="157" id="472" />
+<P2  x="395" y="199" id="479" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_Symbol2ChipSeq" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1021" id="474" >
+<COMPONENT type="1021" id="491" >
 <cdparam x="393" y="289" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execC" value="null" />
-<TGConnectingPoint num="0" id="472" />
-<TGConnectingPoint num="1" id="473" />
+<TGConnectingPoint num="0" id="489" />
+<TGConnectingPoint num="1" id="490" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="471" >
-<father id="474" num="0" />
+<SUBCOMPONENT type="-1" id="488" >
+<father id="491" num="0" />
 <cdparam x="408" y="309" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -1909,216 +2006,215 @@ processing tasks
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1009" id="477" >
+<COMPONENT type="1009" id="494" >
 <cdparam x="305" y="213" />
 <sizeparam width="187" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="symbol2ChipSeq_ch_in(size) " />
-<TGConnectingPoint num="0" id="475" />
-<TGConnectingPoint num="1" id="476" />
+<TGConnectingPoint num="0" id="492" />
+<TGConnectingPoint num="1" id="493" />
 <extraparam>
 <Data channelName="symbol2ChipSeq_ch_in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="479" >
+<COMPONENT type="1001" id="496" >
 <cdparam x="388" y="447" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="478" />
+<TGConnectingPoint num="0" id="495" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="482" >
+<COMPONENT type="1006" id="499" >
 <cdparam x="302" y="375" />
 <sizeparam width="193" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="symbol2ChipSeq_ch_out(size)" />
-<TGConnectingPoint num="0" id="480" />
-<TGConnectingPoint num="1" id="481" />
+<TGConnectingPoint num="0" id="497" />
+<TGConnectingPoint num="1" id="498" />
 <extraparam>
 <Data channelName="symbol2ChipSeq_ch_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="485" >
+<COMPONENT type="1034" id="502" >
 <cdparam x="342" y="137" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="483" />
-<TGConnectingPoint num="1" id="484" />
+<TGConnectingPoint num="0" id="500" />
+<TGConnectingPoint num="1" id="501" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="487" >
+<COMPONENT type="1000" id="504" >
 <cdparam x="391" y="74" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="486" />
+<TGConnectingPoint num="0" id="503" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="488" >
+<CONNECTOR type="115" id="505" >
 <cdparam x="541" y="169" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="398" y="238" id="476" />
-<P2  x="398" y="284" id="472" />
+<P1  x="398" y="238" id="493" />
+<P2  x="398" y="284" id="489" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="489" >
+<CONNECTOR type="115" id="506" >
 <cdparam x="453" y="327" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="398" y="324" id="473" />
-<P2  x="398" y="370" id="480" />
+<P1  x="398" y="324" id="490" />
+<P2  x="398" y="370" id="497" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="490" >
+<CONNECTOR type="115" id="507" >
 <cdparam x="398" y="94" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="398" y="94" id="486" />
-<P2  x="398" y="132" id="483" />
+<P1  x="398" y="94" id="503" />
+<P2  x="398" y="132" id="500" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="491" >
+<CONNECTOR type="115" id="508" >
 <cdparam x="393" y="361" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="398" y="400" id="481" />
-<P2  x="398" y="442" id="478" />
+<P1  x="398" y="400" id="498" />
+<P2  x="398" y="442" id="495" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="492" >
+<CONNECTOR type="115" id="509" >
 <cdparam x="398" y="179" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="398" y="162" id="484" />
-<P2  x="398" y="208" id="475" />
+<P1  x="398" y="162" id="501" />
+<P2  x="398" y="208" id="492" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_Symbol2ChipSeq" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1010" id="495" >
-<cdparam x="317" y="132" />
+<TMLActivityDiagramPanel name="F_Chip_to_Octet" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="512" >
+<cdparam x="333" y="128" />
 <sizeparam width="156" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="bit2symbol_evt_in(size) " />
-<TGConnectingPoint num="0" id="493" />
-<TGConnectingPoint num="1" id="494" />
+<infoparam name="wait event" value="chip2octet_evt_in(size) " />
+<TGConnectingPoint num="0" id="510" />
+<TGConnectingPoint num="1" id="511" />
 <extraparam>
-<Data eventName="bit2symbol_evt_in" nbOfParams="5" />
+<Data eventName="chip2octet_evt_in" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="497" >
-<cdparam x="385" y="354" />
+<COMPONENT type="1001" id="514" >
+<cdparam x="401" y="350" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="496" />
+<TGConnectingPoint num="0" id="513" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="500" >
-<cdparam x="314" y="278" />
+<COMPONENT type="1008" id="517" >
+<cdparam x="330" y="274" />
 <sizeparam width="162" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="bit2symbol_evt_out(size)" />
-<TGConnectingPoint num="0" id="498" />
-<TGConnectingPoint num="1" id="499" />
-<accessibility />
+<infoparam name="send event" value="chip2octet_evt_out(size)" />
+<TGConnectingPoint num="0" id="515" />
+<TGConnectingPoint num="1" id="516" />
 <extraparam>
-<Data eventName="bit2symbol_evt_out" nbOfParams="5" />
+<Data eventName="chip2octet_evt_out" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="503" >
-<cdparam x="335" y="204" />
-<sizeparam width="120" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="520" >
+<cdparam x="343" y="200" />
+<sizeparam width="137" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="bit2chip_req(size)" />
-<TGConnectingPoint num="0" id="501" />
-<TGConnectingPoint num="1" id="502" />
+<infoparam name="send request" value="chip2octet_req(size)" />
+<TGConnectingPoint num="0" id="518" />
+<TGConnectingPoint num="1" id="519" />
 <extraparam>
-<Data requestName="bit2chip_req" nbOfParams="5" />
+<Data requestName="chip2octet_req" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="505" >
-<cdparam x="388" y="66" />
+<COMPONENT type="1000" id="522" >
+<cdparam x="404" y="62" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="504" />
+<TGConnectingPoint num="0" id="521" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="506" >
-<cdparam x="395" y="229" />
+<CONNECTOR type="115" id="523" >
+<cdparam x="411" y="225" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="395" y="229" id="502" />
-<P2  x="395" y="273" id="498" />
+<P1  x="411" y="225" id="519" />
+<P2  x="411" y="269" id="515" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="507" >
-<cdparam x="395" y="303" />
+<CONNECTOR type="115" id="524" >
+<cdparam x="411" y="299" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="395" y="303" id="499" />
-<P2  x="395" y="349" id="496" />
+<P1  x="411" y="299" id="516" />
+<P2  x="411" y="345" id="513" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="508" >
-<cdparam x="395" y="86" />
+<CONNECTOR type="115" id="525" >
+<cdparam x="411" y="82" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="395" y="86" id="504" />
-<P2  x="395" y="127" id="493" />
+<P1  x="411" y="82" id="521" />
+<P2  x="411" y="123" id="510" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="509" >
-<cdparam x="435" y="149" />
+<CONNECTOR type="115" id="526" >
+<cdparam x="451" y="145" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="395" y="157" id="494" />
-<P2  x="395" y="199" id="501" />
+<P1  x="411" y="153" id="511" />
+<P2  x="411" y="195" id="518" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_Chip_to_Octet" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1021" id="513" >
+<COMPONENT type="1021" id="530" >
 <cdparam x="377" y="300" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execC" value="null" />
-<TGConnectingPoint num="0" id="511" />
-<TGConnectingPoint num="1" id="512" />
+<TGConnectingPoint num="0" id="528" />
+<TGConnectingPoint num="1" id="529" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="510" >
-<father id="513" num="0" />
+<SUBCOMPONENT type="-1" id="527" >
+<father id="530" num="0" />
 <cdparam x="392" y="320" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2126,215 +2222,237 @@ processing tasks
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1009" id="516" >
+<COMPONENT type="1009" id="533" >
 <cdparam x="306" y="215" />
 <sizeparam width="152" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="chip2octet_ch_in(size) " />
-<TGConnectingPoint num="0" id="514" />
-<TGConnectingPoint num="1" id="515" />
+<TGConnectingPoint num="0" id="531" />
+<TGConnectingPoint num="1" id="532" />
 <extraparam>
 <Data channelName="chip2octet_ch_in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="518" >
+<COMPONENT type="1001" id="535" >
 <cdparam x="372" y="449" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="517" />
+<TGConnectingPoint num="0" id="534" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="521" >
+<COMPONENT type="1006" id="538" >
 <cdparam x="303" y="377" />
 <sizeparam width="158" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="chip2octet_ch_out(size)" />
-<TGConnectingPoint num="0" id="519" />
-<TGConnectingPoint num="1" id="520" />
+<TGConnectingPoint num="0" id="536" />
+<TGConnectingPoint num="1" id="537" />
 <extraparam>
 <Data channelName="chip2octet_ch_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="524" >
+<COMPONENT type="1034" id="541" >
 <cdparam x="326" y="139" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="522" />
-<TGConnectingPoint num="1" id="523" />
+<TGConnectingPoint num="0" id="539" />
+<TGConnectingPoint num="1" id="540" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="526" >
+<COMPONENT type="1000" id="543" >
 <cdparam x="375" y="76" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="525" />
+<TGConnectingPoint num="0" id="542" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="527" >
+<CONNECTOR type="115" id="544" >
 <cdparam x="525" y="171" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="382" y="240" id="515" />
-<P2  x="382" y="295" id="511" />
+<P1  x="382" y="240" id="532" />
+<P2  x="382" y="295" id="528" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="528" >
+<CONNECTOR type="115" id="545" >
 <cdparam x="437" y="329" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="382" y="335" id="512" />
-<P2  x="382" y="372" id="519" />
+<P1  x="382" y="335" id="529" />
+<P2  x="382" y="372" id="536" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="529" >
+<CONNECTOR type="115" id="546" >
 <cdparam x="382" y="96" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="382" y="96" id="525" />
-<P2  x="382" y="134" id="522" />
+<P1  x="382" y="96" id="542" />
+<P2  x="382" y="134" id="539" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="530" >
+<CONNECTOR type="115" id="547" >
 <cdparam x="377" y="363" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="382" y="402" id="520" />
-<P2  x="382" y="444" id="517" />
+<P1  x="382" y="402" id="537" />
+<P2  x="382" y="444" id="534" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="531" >
+<CONNECTOR type="115" id="548" >
 <cdparam x="382" y="181" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="382" y="164" id="523" />
-<P2  x="382" y="210" id="514" />
+<P1  x="382" y="164" id="540" />
+<P2  x="382" y="210" id="531" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_Chip_to_Octet" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1010" id="534" >
-<cdparam x="333" y="128" />
-<sizeparam width="156" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="F_CWL" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="551" >
+<cdparam x="360" y="134" />
+<sizeparam width="108" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="chip2octet_evt_in(size) " />
-<TGConnectingPoint num="0" id="532" />
-<TGConnectingPoint num="1" id="533" />
+<infoparam name="wait event" value="cwl_evt_in(size) " />
+<TGConnectingPoint num="0" id="549" />
+<TGConnectingPoint num="1" id="550" />
 <extraparam>
-<Data eventName="chip2octet_evt_in" nbOfParams="5" />
+<Data eventName="cwl_evt_in" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="536" >
-<cdparam x="401" y="350" />
+<COMPONENT type="1001" id="553" >
+<cdparam x="407" y="397" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="535" />
+<TGConnectingPoint num="0" id="552" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="539" >
-<cdparam x="330" y="274" />
-<sizeparam width="162" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="556" >
+<cdparam x="370" y="206" />
+<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="chip2octet_evt_out(size)" />
-<TGConnectingPoint num="0" id="537" />
-<TGConnectingPoint num="1" id="538" />
+<infoparam name="send request" value="cwl_req(size)" />
+<TGConnectingPoint num="0" id="554" />
+<TGConnectingPoint num="1" id="555" />
 <extraparam>
-<Data eventName="chip2octet_evt_out" nbOfParams="5" />
+<Data requestName="cwl_req" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="542" >
-<cdparam x="343" y="200" />
-<sizeparam width="137" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1000" id="558" >
+<cdparam x="407" y="68" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="chip2octet_req(size)" />
-<TGConnectingPoint num="0" id="540" />
-<TGConnectingPoint num="1" id="541" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="557" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="561" >
+<cdparam x="352" y="333" />
+<sizeparam width="128" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="cwl_evt_out_1(size)" />
+<TGConnectingPoint num="0" id="559" />
+<TGConnectingPoint num="1" id="560" />
 <extraparam>
-<Data requestName="chip2octet_req" nbOfParams="5" />
+<Data eventName="cwl_evt_out_1" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="544" >
-<cdparam x="404" y="62" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="564" >
+<cdparam x="357" y="280" />
+<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="543" />
+<infoparam name="send event" value="cwl_evt_out(size)" />
+<TGConnectingPoint num="0" id="562" />
+<TGConnectingPoint num="1" id="563" />
+<extraparam>
+<Data eventName="cwl_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
 </COMPONENT>
 
-<CONNECTOR type="115" id="545" >
-<cdparam x="411" y="225" />
+<CONNECTOR type="115" id="565" >
+<cdparam x="416" y="358" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="411" y="225" id="541" />
-<P2  x="411" y="269" id="537" />
+<P1  x="416" y="358" id="560" />
+<P2  x="417" y="392" id="552" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="546" >
-<cdparam x="411" y="299" />
+<CONNECTOR type="115" id="566" >
+<cdparam x="414" y="231" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="411" y="299" id="538" />
-<P2  x="411" y="345" id="535" />
+<P1  x="414" y="231" id="555" />
+<P2  x="414" y="275" id="562" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="547" >
-<cdparam x="411" y="82" />
+<CONNECTOR type="115" id="567" >
+<cdparam x="414" y="305" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="411" y="82" id="543" />
-<P2  x="411" y="123" id="532" />
+<P1  x="414" y="305" id="563" />
+<P2  x="416" y="328" id="559" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="548" >
-<cdparam x="451" y="145" />
+<CONNECTOR type="115" id="568" >
+<cdparam x="414" y="88" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="414" y="88" id="557" />
+<P2  x="414" y="129" id="549" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="569" >
+<cdparam x="454" y="151" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="411" y="153" id="533" />
-<P2  x="411" y="195" id="540" />
+<P1  x="414" y="159" id="550" />
+<P2  x="414" y="201" id="554" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_CWL" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="552" >
+<COMPONENT type="1013" id="573" >
 <cdparam x="402" y="277" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="550" />
-<TGConnectingPoint num="1" id="551" />
+<TGConnectingPoint num="0" id="571" />
+<TGConnectingPoint num="1" id="572" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="549" >
-<father id="552" num="0" />
+<SUBCOMPONENT type="-1" id="570" >
+<father id="573" num="0" />
 <cdparam x="417" y="297" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2342,237 +2460,215 @@ processing tasks
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1009" id="555" >
+<COMPONENT type="1009" id="576" >
 <cdparam x="355" y="196" />
 <sizeparam width="104" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="cwl_ch_in(size) " />
-<TGConnectingPoint num="0" id="553" />
-<TGConnectingPoint num="1" id="554" />
+<TGConnectingPoint num="0" id="574" />
+<TGConnectingPoint num="1" id="575" />
 <extraparam>
 <Data channelName="cwl_ch_in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="557" >
+<COMPONENT type="1001" id="578" >
 <cdparam x="397" y="430" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="556" />
+<TGConnectingPoint num="0" id="577" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="560" >
+<COMPONENT type="1006" id="581" >
 <cdparam x="352" y="358" />
 <sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="cwl_ch_out(size)" />
-<TGConnectingPoint num="0" id="558" />
-<TGConnectingPoint num="1" id="559" />
+<TGConnectingPoint num="0" id="579" />
+<TGConnectingPoint num="1" id="580" />
 <extraparam>
 <Data channelName="cwl_ch_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="563" >
+<COMPONENT type="1034" id="584" >
 <cdparam x="351" y="120" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="561" />
-<TGConnectingPoint num="1" id="562" />
+<TGConnectingPoint num="0" id="582" />
+<TGConnectingPoint num="1" id="583" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="565" >
+<COMPONENT type="1000" id="586" >
 <cdparam x="400" y="57" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="564" />
+<TGConnectingPoint num="0" id="585" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="566" >
+<CONNECTOR type="115" id="587" >
 <cdparam x="550" y="152" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="221" id="554" />
-<P2  x="407" y="272" id="550" />
+<P1  x="407" y="221" id="575" />
+<P2  x="407" y="272" id="571" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="567" >
+<CONNECTOR type="115" id="588" >
 <cdparam x="462" y="310" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="312" id="551" />
-<P2  x="407" y="353" id="558" />
+<P1  x="407" y="312" id="572" />
+<P2  x="407" y="353" id="579" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="568" >
+<CONNECTOR type="115" id="589" >
 <cdparam x="407" y="77" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="77" id="564" />
-<P2  x="407" y="115" id="561" />
+<P1  x="407" y="77" id="585" />
+<P2  x="407" y="115" id="582" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="569" >
+<CONNECTOR type="115" id="590" >
 <cdparam x="402" y="344" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="383" id="559" />
-<P2  x="407" y="425" id="556" />
+<P1  x="407" y="383" id="580" />
+<P2  x="407" y="425" id="577" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="570" >
+<CONNECTOR type="115" id="591" >
 <cdparam x="407" y="162" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="145" id="562" />
-<P2  x="407" y="191" id="553" />
+<P1  x="407" y="145" id="583" />
+<P2  x="407" y="191" id="574" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_CWL" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1010" id="573" >
-<cdparam x="360" y="134" />
-<sizeparam width="108" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="cwl_evt_in(size) " />
-<TGConnectingPoint num="0" id="571" />
-<TGConnectingPoint num="1" id="572" />
-<extraparam>
-<Data eventName="cwl_evt_in" nbOfParams="5" />
-<Param index="0" value="size" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="575" >
-<cdparam x="407" y="397" />
+<TMLActivityDiagramPanel name="F_Sink" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1001" id="593" >
+<cdparam x="396" y="355" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="574" />
+<TGConnectingPoint num="0" id="592" />
 </COMPONENT>
 
-<COMPONENT type="1007" id="578" >
-<cdparam x="370" y="206" />
-<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="596" >
+<cdparam x="331" y="265" />
+<sizeparam width="150" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="cwl_req(size)" />
-<TGConnectingPoint num="0" id="576" />
-<TGConnectingPoint num="1" id="577" />
+<infoparam name="send request" value="sink_req(size + size_1)" />
+<TGConnectingPoint num="0" id="594" />
+<TGConnectingPoint num="1" id="595" />
 <extraparam>
-<Data requestName="cwl_req" nbOfParams="5" />
-<Param index="0" value="size" />
+<Data requestName="sink_req" nbOfParams="5" />
+<Param index="0" value="size + size_1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="580" >
-<cdparam x="407" y="68" />
+<COMPONENT type="1000" id="598" >
+<cdparam x="400" y="73" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="579" />
+<TGConnectingPoint num="0" id="597" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="583" >
-<cdparam x="352" y="333" />
-<sizeparam width="128" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="601" >
+<cdparam x="336" y="187" />
+<sizeparam width="142" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="cwl_evt_out_1(size)" />
-<TGConnectingPoint num="0" id="581" />
-<TGConnectingPoint num="1" id="582" />
+<infoparam name="wait event" value="sink_evt_in_1(size_1) " />
+<TGConnectingPoint num="0" id="599" />
+<TGConnectingPoint num="1" id="600" />
 <extraparam>
-<Data eventName="cwl_evt_out_1" nbOfParams="5" />
-<Param index="0" value="size" />
+<Data eventName="sink_evt_in_1" nbOfParams="5" />
+<Param index="0" value="size_1" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1008" id="586" >
-<cdparam x="357" y="280" />
+<COMPONENT type="1010" id="604" >
+<cdparam x="350" y="139" />
 <sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="cwl_evt_out(size)" />
-<TGConnectingPoint num="0" id="584" />
-<TGConnectingPoint num="1" id="585" />
+<infoparam name="wait event" value="sink_evt_in(size) " />
+<TGConnectingPoint num="0" id="602" />
+<TGConnectingPoint num="1" id="603" />
 <extraparam>
-<Data eventName="cwl_evt_out" nbOfParams="5" />
+<Data eventName="sink_evt_in" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<CONNECTOR type="115" id="587" >
-<cdparam x="416" y="358" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="416" y="358" id="582" />
-<P2  x="417" y="392" id="574" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="588" >
-<cdparam x="414" y="231" />
+<CONNECTOR type="115" id="605" >
+<cdparam x="407" y="212" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="414" y="231" id="577" />
-<P2  x="414" y="275" id="584" />
+<P1  x="407" y="212" id="600" />
+<P2  x="406" y="260" id="594" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="589" >
-<cdparam x="414" y="305" />
+<CONNECTOR type="115" id="606" >
+<cdparam x="406" y="290" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="414" y="305" id="585" />
-<P2  x="416" y="328" id="581" />
+<P1  x="406" y="290" id="595" />
+<P2  x="406" y="350" id="592" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="590" >
-<cdparam x="414" y="88" />
+<CONNECTOR type="115" id="607" >
+<cdparam x="407" y="93" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="414" y="88" id="579" />
-<P2  x="414" y="129" id="571" />
+<P1  x="407" y="93" id="597" />
+<P2  x="407" y="134" id="602" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="591" >
-<cdparam x="454" y="151" />
+<CONNECTOR type="115" id="608" >
+<cdparam x="447" y="156" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="414" y="159" id="572" />
-<P2  x="414" y="201" id="576" />
+<P1  x="407" y="164" id="603" />
+<P2  x="407" y="182" id="599" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_Sink" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="595" >
+<COMPONENT type="1013" id="612" >
 <cdparam x="445" y="298" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="593" />
-<TGConnectingPoint num="1" id="594" />
+<TGConnectingPoint num="0" id="610" />
+<TGConnectingPoint num="1" id="611" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="592" >
-<father id="595" num="0" />
+<SUBCOMPONENT type="-1" id="609" >
+<father id="612" num="0" />
 <cdparam x="460" y="318" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2580,194 +2676,194 @@ processing tasks
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1009" id="598" >
+<COMPONENT type="1009" id="615" >
 <cdparam x="395" y="217" />
 <sizeparam width="110" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="sink_ch_in(size) " />
-<TGConnectingPoint num="0" id="596" />
-<TGConnectingPoint num="1" id="597" />
+<TGConnectingPoint num="0" id="613" />
+<TGConnectingPoint num="1" id="614" />
 <extraparam>
 <Data channelName="sink_ch_in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="600" >
+<COMPONENT type="1001" id="617" >
 <cdparam x="440" y="384" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="599" />
+<TGConnectingPoint num="0" id="616" />
 </COMPONENT>
 
-<COMPONENT type="1034" id="603" >
+<COMPONENT type="1034" id="620" >
 <cdparam x="394" y="141" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="601" />
-<TGConnectingPoint num="1" id="602" />
+<TGConnectingPoint num="0" id="618" />
+<TGConnectingPoint num="1" id="619" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="605" >
+<COMPONENT type="1000" id="622" >
 <cdparam x="443" y="78" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="604" />
+<TGConnectingPoint num="0" id="621" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="606" >
+<CONNECTOR type="115" id="623" >
 <cdparam x="450" y="333" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="450" y="333" id="594" />
-<P2  x="450" y="379" id="599" />
+<P1  x="450" y="333" id="611" />
+<P2  x="450" y="379" id="616" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="607" >
+<CONNECTOR type="115" id="624" >
 <cdparam x="593" y="173" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="450" y="242" id="597" />
-<P2  x="450" y="293" id="593" />
+<P1  x="450" y="242" id="614" />
+<P2  x="450" y="293" id="610" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="608" >
+<CONNECTOR type="115" id="625" >
 <cdparam x="450" y="98" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="450" y="98" id="604" />
-<P2  x="450" y="136" id="601" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="609" >
-<cdparam x="450" y="183" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="450" y="166" id="602" />
-<P2  x="450" y="212" id="596" />
+<P1  x="450" y="98" id="621" />
+<P2  x="450" y="136" id="618" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="626" >
+<cdparam x="450" y="183" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<P1  x="450" y="166" id="619" />
+<P2  x="450" y="212" id="613" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="F_Sink" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1001" id="611" >
-<cdparam x="396" y="355" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="610" />
-</COMPONENT>
-
-<COMPONENT type="1007" id="614" >
-<cdparam x="331" y="265" />
-<sizeparam width="150" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_CWP_Q" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="629" >
+<cdparam x="342" y="117" />
+<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="sink_req(size + size_1)" />
-<TGConnectingPoint num="0" id="612" />
-<TGConnectingPoint num="1" id="613" />
+<infoparam name="wait event" value="cwpQ_evt_in(size) " />
+<TGConnectingPoint num="0" id="627" />
+<TGConnectingPoint num="1" id="628" />
 <extraparam>
-<Data requestName="sink_req" nbOfParams="5" />
-<Param index="0" value="size + size_1" />
+<Data eventName="cwpQ_evt_in" nbOfParams="5" />
+<Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="616" >
-<cdparam x="400" y="73" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1001" id="631" >
+<cdparam x="393" y="339" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="615" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="630" />
 </COMPONENT>
 
-<COMPONENT type="1010" id="619" >
-<cdparam x="336" y="187" />
-<sizeparam width="142" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="634" >
+<cdparam x="339" y="263" />
+<sizeparam width="128" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="sink_evt_in_1(size_1) " />
-<TGConnectingPoint num="0" id="617" />
-<TGConnectingPoint num="1" id="618" />
+<infoparam name="send event" value="cwpQ_evt_out(size)" />
+<TGConnectingPoint num="0" id="632" />
+<TGConnectingPoint num="1" id="633" />
 <extraparam>
-<Data eventName="sink_evt_in_1" nbOfParams="5" />
-<Param index="0" value="size_1" />
+<Data eventName="cwpQ_evt_out" nbOfParams="5" />
+<Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="622" >
-<cdparam x="350" y="139" />
-<sizeparam width="114" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="637" >
+<cdparam x="352" y="189" />
+<sizeparam width="103" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="sink_evt_in(size) " />
-<TGConnectingPoint num="0" id="620" />
-<TGConnectingPoint num="1" id="621" />
+<infoparam name="send request" value="cwpQ_req(size)" />
+<TGConnectingPoint num="0" id="635" />
+<TGConnectingPoint num="1" id="636" />
 <extraparam>
-<Data eventName="sink_evt_in" nbOfParams="5" />
+<Data requestName="cwpQ_req" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<CONNECTOR type="115" id="623" >
-<cdparam x="407" y="212" />
+<COMPONENT type="1000" id="639" >
+<cdparam x="396" y="51" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="638" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="640" >
+<cdparam x="403" y="214" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="212" id="618" />
-<P2  x="406" y="260" id="612" />
+<P1  x="403" y="214" id="636" />
+<P2  x="403" y="258" id="632" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="624" >
-<cdparam x="406" y="290" />
+<CONNECTOR type="115" id="641" >
+<cdparam x="403" y="288" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="406" y="290" id="613" />
-<P2  x="406" y="350" id="610" />
+<P1  x="403" y="288" id="633" />
+<P2  x="403" y="334" id="630" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="625" >
-<cdparam x="407" y="93" />
+<CONNECTOR type="115" id="642" >
+<cdparam x="403" y="71" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="93" id="615" />
-<P2  x="407" y="134" id="620" />
+<P1  x="403" y="71" id="638" />
+<P2  x="403" y="112" id="627" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="626" >
-<cdparam x="447" y="156" />
+<CONNECTOR type="115" id="643" >
+<cdparam x="443" y="134" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="407" y="164" id="621" />
-<P2  x="407" y="182" id="617" />
+<P1  x="403" y="142" id="628" />
+<P2  x="403" y="184" id="635" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_CWP_Q" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="630" >
+<COMPONENT type="1013" id="647" >
 <cdparam x="365" y="275" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="628" />
-<TGConnectingPoint num="1" id="629" />
+<TGConnectingPoint num="0" id="645" />
+<TGConnectingPoint num="1" id="646" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="627" >
-<father id="630" num="0" />
+<SUBCOMPONENT type="-1" id="644" >
+<father id="647" num="0" />
 <cdparam x="380" y="295" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2775,215 +2871,215 @@ processing tasks
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1009" id="633" >
+<COMPONENT type="1009" id="650" >
 <cdparam x="311" y="194" />
 <sizeparam width="118" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="cwpQ_ch_in(size) " />
-<TGConnectingPoint num="0" id="631" />
-<TGConnectingPoint num="1" id="632" />
+<TGConnectingPoint num="0" id="648" />
+<TGConnectingPoint num="1" id="649" />
 <extraparam>
 <Data channelName="cwpQ_ch_in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="635" >
+<COMPONENT type="1001" id="652" >
 <cdparam x="360" y="428" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="634" />
+<TGConnectingPoint num="0" id="651" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="638" >
+<COMPONENT type="1006" id="655" >
 <cdparam x="308" y="356" />
 <sizeparam width="124" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="cwpQ_ch_out(size)" />
-<TGConnectingPoint num="0" id="636" />
-<TGConnectingPoint num="1" id="637" />
+<TGConnectingPoint num="0" id="653" />
+<TGConnectingPoint num="1" id="654" />
 <extraparam>
 <Data channelName="cwpQ_ch_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="641" >
+<COMPONENT type="1034" id="658" >
 <cdparam x="314" y="118" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="639" />
-<TGConnectingPoint num="1" id="640" />
+<TGConnectingPoint num="0" id="656" />
+<TGConnectingPoint num="1" id="657" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="643" >
+<COMPONENT type="1000" id="660" >
 <cdparam x="363" y="55" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="642" />
+<TGConnectingPoint num="0" id="659" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="644" >
+<CONNECTOR type="115" id="661" >
 <cdparam x="513" y="150" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="370" y="219" id="632" />
-<P2  x="370" y="270" id="628" />
+<P1  x="370" y="219" id="649" />
+<P2  x="370" y="270" id="645" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="645" >
+<CONNECTOR type="115" id="662" >
 <cdparam x="425" y="308" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="370" y="310" id="629" />
-<P2  x="370" y="351" id="636" />
+<P1  x="370" y="310" id="646" />
+<P2  x="370" y="351" id="653" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="646" >
+<CONNECTOR type="115" id="663" >
 <cdparam x="370" y="75" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="370" y="75" id="642" />
-<P2  x="370" y="113" id="639" />
+<P1  x="370" y="75" id="659" />
+<P2  x="370" y="113" id="656" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="647" >
+<CONNECTOR type="115" id="664" >
 <cdparam x="365" y="342" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="370" y="381" id="637" />
-<P2  x="370" y="423" id="634" />
+<P1  x="370" y="381" id="654" />
+<P2  x="370" y="423" id="651" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="648" >
+<CONNECTOR type="115" id="665" >
 <cdparam x="370" y="160" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="370" y="143" id="640" />
-<P2  x="370" y="189" id="631" />
+<P1  x="370" y="143" id="657" />
+<P2  x="370" y="189" id="648" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_CWP_Q" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1010" id="651" >
-<cdparam x="342" y="117" />
-<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="F_CWP_I" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1010" id="668" >
+<cdparam x="321" y="132" />
+<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="cwpQ_evt_in(size) " />
-<TGConnectingPoint num="0" id="649" />
-<TGConnectingPoint num="1" id="650" />
+<infoparam name="wait event" value="cwpI_evt_in(size) " />
+<TGConnectingPoint num="0" id="666" />
+<TGConnectingPoint num="1" id="667" />
 <extraparam>
-<Data eventName="cwpQ_evt_in" nbOfParams="5" />
+<Data eventName="cwpI_evt_in" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="653" >
-<cdparam x="393" y="339" />
+<COMPONENT type="1001" id="670" >
+<cdparam x="369" y="354" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="652" />
+<TGConnectingPoint num="0" id="669" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="656" >
-<cdparam x="339" y="263" />
-<sizeparam width="128" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="673" >
+<cdparam x="318" y="278" />
+<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="cwpQ_evt_out(size)" />
-<TGConnectingPoint num="0" id="654" />
-<TGConnectingPoint num="1" id="655" />
+<infoparam name="send event" value="cwpI_evt_out(size)" />
+<TGConnectingPoint num="0" id="671" />
+<TGConnectingPoint num="1" id="672" />
 <extraparam>
-<Data eventName="cwpQ_evt_out" nbOfParams="5" />
+<Data eventName="cwpI_evt_out" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1007" id="659" >
-<cdparam x="352" y="189" />
-<sizeparam width="103" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1007" id="676" >
+<cdparam x="331" y="204" />
+<sizeparam width="97" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="cwpQ_req(size)" />
-<TGConnectingPoint num="0" id="657" />
-<TGConnectingPoint num="1" id="658" />
+<infoparam name="send request" value="cwpI_req(size)" />
+<TGConnectingPoint num="0" id="674" />
+<TGConnectingPoint num="1" id="675" />
 <extraparam>
-<Data requestName="cwpQ_req" nbOfParams="5" />
+<Data requestName="cwpI_req" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="661" >
-<cdparam x="396" y="51" />
+<COMPONENT type="1000" id="678" >
+<cdparam x="372" y="66" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="660" />
+<TGConnectingPoint num="0" id="677" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="662" >
-<cdparam x="403" y="214" />
+<CONNECTOR type="115" id="679" >
+<cdparam x="379" y="229" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="403" y="214" id="658" />
-<P2  x="403" y="258" id="654" />
+<P1  x="379" y="229" id="675" />
+<P2  x="379" y="273" id="671" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="663" >
-<cdparam x="403" y="288" />
+<CONNECTOR type="115" id="680" >
+<cdparam x="379" y="303" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="403" y="288" id="655" />
-<P2  x="403" y="334" id="652" />
+<P1  x="379" y="303" id="672" />
+<P2  x="379" y="349" id="669" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="664" >
-<cdparam x="403" y="71" />
+<CONNECTOR type="115" id="681" >
+<cdparam x="379" y="86" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="403" y="71" id="660" />
-<P2  x="403" y="112" id="649" />
+<P1  x="379" y="86" id="677" />
+<P2  x="379" y="127" id="666" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="665" >
-<cdparam x="443" y="134" />
+<CONNECTOR type="115" id="682" >
+<cdparam x="419" y="149" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="403" y="142" id="650" />
-<P2  x="403" y="184" id="657" />
+<P1  x="379" y="157" id="667" />
+<P2  x="379" y="199" id="674" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_CWP_I" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="669" >
+<COMPONENT type="1013" id="686" >
 <cdparam x="369" y="290" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="667" />
-<TGConnectingPoint num="1" id="668" />
+<TGConnectingPoint num="0" id="684" />
+<TGConnectingPoint num="1" id="685" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="666" >
-<father id="669" num="0" />
+<SUBCOMPONENT type="-1" id="683" >
+<father id="686" num="0" />
 <cdparam x="384" y="310" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -2991,198 +3087,102 @@ processing tasks
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1009" id="672" >
+<COMPONENT type="1009" id="689" >
 <cdparam x="318" y="209" />
 <sizeparam width="112" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="cwpI_ch_in(size) " />
-<TGConnectingPoint num="0" id="670" />
-<TGConnectingPoint num="1" id="671" />
+<TGConnectingPoint num="0" id="687" />
+<TGConnectingPoint num="1" id="688" />
 <extraparam>
 <Data channelName="cwpI_ch_in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="674" >
+<COMPONENT type="1001" id="691" >
 <cdparam x="364" y="443" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="673" />
+<TGConnectingPoint num="0" id="690" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="677" >
+<COMPONENT type="1006" id="694" >
 <cdparam x="315" y="371" />
 <sizeparam width="118" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="cwpI_ch_out(size)" />
-<TGConnectingPoint num="0" id="675" />
-<TGConnectingPoint num="1" id="676" />
+<TGConnectingPoint num="0" id="692" />
+<TGConnectingPoint num="1" id="693" />
 <extraparam>
 <Data channelName="cwpI_ch_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="680" >
+<COMPONENT type="1034" id="697" >
 <cdparam x="318" y="133" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="678" />
-<TGConnectingPoint num="1" id="679" />
+<TGConnectingPoint num="0" id="695" />
+<TGConnectingPoint num="1" id="696" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="682" >
+<COMPONENT type="1000" id="699" >
 <cdparam x="367" y="70" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="681" />
+<TGConnectingPoint num="0" id="698" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="683" >
+<CONNECTOR type="115" id="700" >
 <cdparam x="517" y="165" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="374" y="234" id="671" />
-<P2  x="374" y="285" id="667" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="684" >
-<cdparam x="429" y="323" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="374" y="325" id="668" />
-<P2  x="374" y="366" id="675" />
+<P1  x="374" y="234" id="688" />
+<P2  x="374" y="285" id="684" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="685" >
-<cdparam x="374" y="90" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="374" y="90" id="681" />
-<P2  x="374" y="128" id="678" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="686" >
-<cdparam x="369" y="357" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="374" y="396" id="676" />
-<P2  x="374" y="438" id="673" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="687" >
-<cdparam x="374" y="175" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<P1  x="374" y="158" id="679" />
-<P2  x="374" y="204" id="670" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-
-</TMLActivityDiagramPanel>
-
-<TMLActivityDiagramPanel name="F_CWP_I" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1010" id="690" >
-<cdparam x="321" y="132" />
-<sizeparam width="116" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="cwpI_evt_in(size) " />
-<TGConnectingPoint num="0" id="688" />
-<TGConnectingPoint num="1" id="689" />
-<extraparam>
-<Data eventName="cwpI_evt_in" nbOfParams="5" />
-<Param index="0" value="size" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="692" >
-<cdparam x="369" y="354" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="691" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="695" >
-<cdparam x="318" y="278" />
-<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="cwpI_evt_out(size)" />
-<TGConnectingPoint num="0" id="693" />
-<TGConnectingPoint num="1" id="694" />
-<extraparam>
-<Data eventName="cwpI_evt_out" nbOfParams="5" />
-<Param index="0" value="size" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1007" id="698" >
-<cdparam x="331" y="204" />
-<sizeparam width="97" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="cwpI_req(size)" />
-<TGConnectingPoint num="0" id="696" />
-<TGConnectingPoint num="1" id="697" />
-<extraparam>
-<Data requestName="cwpI_req" nbOfParams="5" />
-<Param index="0" value="size" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1000" id="700" >
-<cdparam x="372" y="66" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="699" />
-</COMPONENT>
-
 <CONNECTOR type="115" id="701" >
-<cdparam x="379" y="229" />
+<cdparam x="429" y="323" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="379" y="229" id="697" />
-<P2  x="379" y="273" id="693" />
+<P1  x="374" y="325" id="685" />
+<P2  x="374" y="366" id="692" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="115" id="702" >
-<cdparam x="379" y="303" />
+<cdparam x="374" y="90" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="379" y="303" id="694" />
-<P2  x="379" y="349" id="691" />
+<P1  x="374" y="90" id="698" />
+<P2  x="374" y="128" id="695" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="115" id="703" >
-<cdparam x="379" y="86" />
+<cdparam x="369" y="357" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="379" y="86" id="699" />
-<P2  x="379" y="127" id="688" />
+<P1  x="374" y="396" id="693" />
+<P2  x="374" y="438" id="690" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="115" id="704" >
-<cdparam x="419" y="149" />
+<cdparam x="374" y="175" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<P1  x="379" y="157" id="689" />
-<P2  x="379" y="199" id="696" />
+<P1  x="374" y="158" id="696" />
+<P2  x="374" y="204" id="687" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
@@ -3220,7 +3220,7 @@ processing tasks
 
 <COMPONENT type="301" id="727" >
 <cdparam x="559" y="109" />
-<sizeparam width="387" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="354" height="39" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="UML Note" value="Some parameters are mapping dependent:
@@ -3853,7 +3853,7 @@ processing tasks
 
 <COMPONENT type="301" id="1111" >
 <cdparam x="606" y="40" />
-<sizeparam width="358" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="313" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="UML Note" value="Some parameters are mapping dependent:
@@ -4874,7 +4874,7 @@ CPU via interrupts (no polling messages)
 
 <COMPONENT type="301" id="1743" >
 <cdparam x="448" y="98" />
-<sizeparam width="429" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="396" height="75" minWidth="50" minHeight="20" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="UML Note" value="Some parameters are mapping dependent:
@@ -8311,7 +8311,7 @@ sequence diagram.
 </COMPONENT>
 
 <COMPONENT type="1105" id="3756" >
-<cdparam x="354" y="243" />
+<cdparam x="377" y="225" />
 <sizeparam width="200" height="152" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
@@ -8347,7 +8347,7 @@ sequence diagram.
 </COMPONENT>
 
 <COMPONENT type="1100" id="3790" >
-<cdparam x="29" y="215" />
+<cdparam x="90" y="201" />
 <sizeparam width="252" height="181" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
@@ -8383,7 +8383,7 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="3765" >
 <father id="3790" num="0" />
-<cdparam x="48" y="315" />
+<cdparam x="109" y="301" />
 <sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="106" minY="0" maxY="141" />
@@ -8510,11 +8510,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="3849" >
 <father id="3937" num="0" />
-<cdparam x="1686" y="522" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1465" y="339" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
 <TGConnectingPoint num="0" id="3841" />
 <TGConnectingPoint num="1" id="3842" />
 <TGConnectingPoint num="2" id="3843" />
@@ -8524,16 +8524,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="3847" />
 <TGConnectingPoint num="7" id="3848" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="3858" >
 <father id="3937" num="1" />
-<cdparam x="1685" y="459" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="395" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
 <TGConnectingPoint num="0" id="3850" />
 <TGConnectingPoint num="1" id="3851" />
 <TGConnectingPoint num="2" id="3852" />
@@ -8543,16 +8543,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="3856" />
 <TGConnectingPoint num="7" id="3857" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="3867" >
 <father id="3937" num="2" />
-<cdparam x="1691" y="345" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="456" />
+<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="3859" />
 <TGConnectingPoint num="1" id="3860" />
 <TGConnectingPoint num="2" id="3861" />
@@ -8562,16 +8562,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="3865" />
 <TGConnectingPoint num="7" id="3866" />
 <extraparam>
-<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="3876" >
 <father id="3937" num="3" />
-<cdparam x="1688" y="405" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="518" />
+<sizeparam width="206" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<cdrectangleparam minX="0" maxX="211" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Chip_to_Octet" />
 <TGConnectingPoint num="0" id="3868" />
 <TGConnectingPoint num="1" id="3869" />
 <TGConnectingPoint num="2" id="3870" />
@@ -8581,16 +8581,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="3874" />
 <TGConnectingPoint num="7" id="3875" />
 <extraparam>
-<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Chip_to_Octet" taskName="F_Chip_to_Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip_to_Octet" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="3885" >
 <father id="3937" num="4" />
-<cdparam x="1466" y="518" />
-<sizeparam width="206" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1688" y="405" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="211" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Chip_to_Octet" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
 <TGConnectingPoint num="0" id="3877" />
 <TGConnectingPoint num="1" id="3878" />
 <TGConnectingPoint num="2" id="3879" />
@@ -8600,16 +8600,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="3883" />
 <TGConnectingPoint num="7" id="3884" />
 <extraparam>
-<info value="Zigbee_TX::F_Chip_to_Octet" taskName="F_Chip_to_Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip_to_Octet" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="3894" >
 <father id="3937" num="5" />
-<cdparam x="1466" y="456" />
-<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1691" y="345" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
 <TGConnectingPoint num="0" id="3886" />
 <TGConnectingPoint num="1" id="3887" />
 <TGConnectingPoint num="2" id="3888" />
@@ -8619,16 +8619,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="3892" />
 <TGConnectingPoint num="7" id="3893" />
 <extraparam>
-<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="3903" >
 <father id="3937" num="6" />
-<cdparam x="1466" y="395" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<cdparam x="1685" y="459" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
 <TGConnectingPoint num="0" id="3895" />
 <TGConnectingPoint num="1" id="3896" />
 <TGConnectingPoint num="2" id="3897" />
@@ -8638,16 +8638,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="3901" />
 <TGConnectingPoint num="7" id="3902" />
 <extraparam>
-<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="3912" >
 <father id="3937" num="7" />
-<cdparam x="1465" y="339" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1686" y="522" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
 <TGConnectingPoint num="0" id="3904" />
 <TGConnectingPoint num="1" id="3905" />
 <TGConnectingPoint num="2" id="3906" />
@@ -8657,7 +8657,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="3910" />
 <TGConnectingPoint num="7" id="3911" />
 <extraparam>
-<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -8734,7 +8734,7 @@ sequence diagram.
 </COMPONENT>
 
 <COMPONENT type="1102" id="4012" >
-<cdparam x="231" y="635" />
+<cdparam x="354" y="618" />
 <sizeparam width="845" height="50" minWidth="100" minHeight="50" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
@@ -9005,7 +9005,7 @@ sequence diagram.
 </COMPONENT>
 
 <COMPONENT type="1105" id="4196" >
-<cdparam x="895" y="193" />
+<cdparam x="991" y="187" />
 <sizeparam width="255" height="183" minWidth="100" minHeight="35" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
@@ -9041,7 +9041,7 @@ sequence diagram.
 </COMPONENT>
 
 <COMPONENT type="1100" id="4248" >
-<cdparam x="619" y="199" />
+<cdparam x="680" y="193" />
 <sizeparam width="238" height="185" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
@@ -9077,11 +9077,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="4205" >
 <father id="4248" num="0" />
-<cdparam x="639" y="239" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="732" y="283" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
 <TGConnectingPoint num="0" id="4197" />
 <TGConnectingPoint num="1" id="4198" />
 <TGConnectingPoint num="2" id="4199" />
@@ -9091,12 +9091,12 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4203" />
 <TGConnectingPoint num="7" id="4204" />
 <extraparam>
-<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4214" >
 <father id="4248" num="1" />
-<cdparam x="640" y="335" />
+<cdparam x="701" y="329" />
 <sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="76" minY="0" maxY="145" />
@@ -9115,11 +9115,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4223" >
 <father id="4248" num="2" />
-<cdparam x="671" y="289" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="700" y="233" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
 <TGConnectingPoint num="0" id="4215" />
 <TGConnectingPoint num="1" id="4216" />
 <TGConnectingPoint num="2" id="4217" />
@@ -9129,7 +9129,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4221" />
 <TGConnectingPoint num="7" id="4222" />
 <extraparam>
-<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -9206,7 +9206,7 @@ sequence diagram.
 </COMPONENT>
 
 <COMPONENT type="1100" id="4323" >
-<cdparam x="1174" y="850" />
+<cdparam x="1141" y="748" />
 <sizeparam width="150" height="100" minWidth="150" minHeight="100" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1900" minY="10" maxY="1900" />
@@ -9419,8 +9419,19 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4448" />
 <TGConnectingPoint num="7" id="4449" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, MAPPER_Bridge, MAPPER_Bus" />
+<mappedAttributes type="int" name="destinationAddress" value="123" />
+<mappedAttributes type="int" name="sourceAddress" value="123" />
+<mappedAttributes type="int" name="counter" value="1" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="4441" >
@@ -9458,8 +9469,17 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4466" />
 <TGConnectingPoint num="7" id="4467" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+<mappedAttributes type="int" name="counter" value="1" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="4459" >
@@ -9497,8 +9517,26 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4484" />
 <TGConnectingPoint num="7" id="4485" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_sink" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" />
+<attributes reference="Double_DMA_transfer" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappedAttributes type="int" name="counter1" value="2" />
+<mappedAttributes type="int" name="counter2" value="2" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="4477" >
@@ -9536,13 +9574,21 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4502" />
 <TGConnectingPoint num="7" id="4503" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" />
+<attributes reference="CP_Memory_Copy" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="CPU_Controller" architectureUnit="MainCPU" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Src_Storage_Instance" architectureUnit="DDR" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Dst_Storage_Instance" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance_1" architectureUnit="MainBus" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappedAttributes type="addr" name="sourceAddress" value="0x123" />
+<mappedAttributes type="addr" name="destinationAddress" value="0x456" />
+<mappedAttributes type="int" name="counter" value="8" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="4495" >
 <father id="4504" num="0" />
-<cdparam x="280" y="1181" />
+<cdparam x="157" y="1179" />
 <sizeparam width="247" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="174" minY="0" maxY="45" />
@@ -9565,7 +9611,7 @@ sequence diagram.
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
 <P1  x="1367" y="660" id="3966" />
-<P2  x="1076" y="660" id="3992" />
+<P2  x="1199" y="643" id="3992" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9577,7 +9623,7 @@ sequence diagram.
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
 <P1  x="1147" y="508" id="4152" />
-<P2  x="1076" y="635" id="3990" />
+<P2  x="1199" y="618" id="3990" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9588,8 +9634,8 @@ sequence diagram.
 <cdparam x="1298" y="875" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="1249" y="850" id="4300" />
-<P2  x="1076" y="685" id="3995" />
+<P1  x="1216" y="748" id="4300" />
+<P2  x="1199" y="668" id="3995" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9601,7 +9647,7 @@ sequence diagram.
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
 <P1  x="970" y="780" id="4325" />
-<P2  x="864" y="685" id="4003" />
+<P2  x="987" y="668" id="4003" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9613,7 +9659,7 @@ sequence diagram.
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
 <P1  x="960" y="566" id="4255" />
-<P2  x="864" y="635" id="3997" />
+<P2  x="987" y="618" id="3997" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9649,7 +9695,7 @@ sequence diagram.
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
 <P1  x="560" y="807" id="3682" />
-<P2  x="442" y="685" id="4002" />
+<P2  x="565" y="668" id="4002" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9697,7 +9743,7 @@ sequence diagram.
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
 <P1  x="356" y="580" id="3797" />
-<P2  x="231" y="635" id="3988" />
+<P2  x="354" y="618" id="3988" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9721,7 +9767,7 @@ sequence diagram.
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
 <P1  x="543" y="522" id="3712" />
-<P2  x="442" y="635" id="3996" />
+<P2  x="565" y="618" id="3996" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9744,7 +9790,7 @@ sequence diagram.
 <cdparam x="549" y="337" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="454" y="395" id="3738" />
+<P1  x="477" y="377" id="3738" />
 <P2  x="418" y="447" id="4131" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -9756,7 +9802,7 @@ sequence diagram.
 <cdparam x="155" y="323" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="155" y="396" id="3772" />
+<P1  x="216" y="382" id="3772" />
 <P2  x="293" y="447" id="4130" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -9769,7 +9815,7 @@ sequence diagram.
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
 <P1  x="356" y="737" id="4014" />
-<P2  x="231" y="685" id="3993" />
+<P2  x="354" y="668" id="3993" />
 <AutomaticDrawing  data="true" />
 <extraparam>
 <info priority="0" />
@@ -9828,7 +9874,7 @@ sequence diagram.
 <cdparam x="1189" y="374" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="1022" y="376" id="4178" />
+<P1  x="1118" y="370" id="4178" />
 <P2  x="1022" y="433" id="4283" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -9840,7 +9886,7 @@ sequence diagram.
 <cdparam x="795" y="360" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="738" y="384" id="4230" />
+<P1  x="799" y="378" id="4230" />
 <P2  x="897" y="433" id="4282" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -9864,7 +9910,7 @@ sequence diagram.
 <cdparam x="1173" y="906" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="{info}" />
-<P1  x="1174" y="900" id="4302" />
+<P1  x="1141" y="798" id="4302" />
 <P2  x="1095" y="900" id="4412" />
 <AutomaticDrawing  data="true" />
 <extraparam>
@@ -10178,11 +10224,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="4700" >
 <father id="4788" num="0" />
-<cdparam x="1465" y="339" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1686" y="522" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
 <TGConnectingPoint num="0" id="4692" />
 <TGConnectingPoint num="1" id="4693" />
 <TGConnectingPoint num="2" id="4694" />
@@ -10192,16 +10238,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4698" />
 <TGConnectingPoint num="7" id="4699" />
 <extraparam>
-<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4709" >
 <father id="4788" num="1" />
-<cdparam x="1466" y="395" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1685" y="459" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
 <TGConnectingPoint num="0" id="4701" />
 <TGConnectingPoint num="1" id="4702" />
 <TGConnectingPoint num="2" id="4703" />
@@ -10211,16 +10257,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4707" />
 <TGConnectingPoint num="7" id="4708" />
 <extraparam>
-<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4718" >
 <father id="4788" num="2" />
-<cdparam x="1466" y="456" />
-<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1691" y="345" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
 <TGConnectingPoint num="0" id="4710" />
 <TGConnectingPoint num="1" id="4711" />
 <TGConnectingPoint num="2" id="4712" />
@@ -10230,16 +10276,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4716" />
 <TGConnectingPoint num="7" id="4717" />
 <extraparam>
-<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4727" >
 <father id="4788" num="3" />
-<cdparam x="1466" y="518" />
-<sizeparam width="206" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1688" y="405" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="211" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Chip_to_Octet" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
 <TGConnectingPoint num="0" id="4719" />
 <TGConnectingPoint num="1" id="4720" />
 <TGConnectingPoint num="2" id="4721" />
@@ -10249,16 +10295,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4725" />
 <TGConnectingPoint num="7" id="4726" />
 <extraparam>
-<info value="Zigbee_TX::F_Chip_to_Octet" taskName="F_Chip_to_Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip_to_Octet" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4736" >
 <father id="4788" num="4" />
-<cdparam x="1688" y="405" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="518" />
+<sizeparam width="206" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<cdrectangleparam minX="0" maxX="211" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Chip_to_Octet" />
 <TGConnectingPoint num="0" id="4728" />
 <TGConnectingPoint num="1" id="4729" />
 <TGConnectingPoint num="2" id="4730" />
@@ -10268,16 +10314,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4734" />
 <TGConnectingPoint num="7" id="4735" />
 <extraparam>
-<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Chip_to_Octet" taskName="F_Chip_to_Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip_to_Octet" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4745" >
 <father id="4788" num="5" />
-<cdparam x="1691" y="345" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="456" />
+<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="4737" />
 <TGConnectingPoint num="1" id="4738" />
 <TGConnectingPoint num="2" id="4739" />
@@ -10287,16 +10333,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4743" />
 <TGConnectingPoint num="7" id="4744" />
 <extraparam>
-<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4754" >
 <father id="4788" num="6" />
-<cdparam x="1685" y="459" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="395" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
 <TGConnectingPoint num="0" id="4746" />
 <TGConnectingPoint num="1" id="4747" />
 <TGConnectingPoint num="2" id="4748" />
@@ -10306,16 +10352,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4752" />
 <TGConnectingPoint num="7" id="4753" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="4763" >
 <father id="4788" num="7" />
-<cdparam x="1686" y="522" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1465" y="339" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
 <TGConnectingPoint num="0" id="4755" />
 <TGConnectingPoint num="1" id="4756" />
 <TGConnectingPoint num="2" id="4757" />
@@ -10325,7 +10371,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="4761" />
 <TGConnectingPoint num="7" id="4762" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -10745,11 +10791,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="5056" >
 <father id="5099" num="0" />
-<cdparam x="671" y="289" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="639" y="239" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
 <TGConnectingPoint num="0" id="5048" />
 <TGConnectingPoint num="1" id="5049" />
 <TGConnectingPoint num="2" id="5050" />
@@ -10759,7 +10805,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5054" />
 <TGConnectingPoint num="7" id="5055" />
 <extraparam>
-<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5065" >
@@ -10783,11 +10829,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5074" >
 <father id="5099" num="2" />
-<cdparam x="639" y="239" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="671" y="289" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
 <TGConnectingPoint num="0" id="5066" />
 <TGConnectingPoint num="1" id="5067" />
 <TGConnectingPoint num="2" id="5068" />
@@ -10797,7 +10843,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5072" />
 <TGConnectingPoint num="7" id="5073" />
 <extraparam>
-<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -11087,8 +11133,19 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5299" />
 <TGConnectingPoint num="7" id="5300" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="ADAIF_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="ADAIF_Bridge, MainBus, MainBridge, Crossbar, ADAIF_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="ADAIF_Bridge, MainBus, MainBridge, Crossbar, ADAIF_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, INTL_Bridge, INTL_Bus, ADAIF_Bus" />
+<mappedAttributes type="int" name="destinationAddress" value="123" />
+<mappedAttributes type="int" name="sourceAddress" value="123" />
+<mappedAttributes type="int" name="counter" value="123" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="5292" >
@@ -11126,8 +11183,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5317" />
 <TGConnectingPoint num="7" id="5318" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="5310" >
@@ -11165,8 +11230,24 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5335" />
 <TGConnectingPoint num="7" id="5336" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_sink" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" />
+<attributes reference="Double_DMA_transfer" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="5328" >
@@ -11204,8 +11285,14 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5353" />
 <TGConnectingPoint num="7" id="5354" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" />
+<attributes reference="CP_Memory_Copy" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Dst_Storage_Instance" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Src_Storage_Instance" architectureUnit="DDR" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="CPU_Controller" architectureUnit="MainCPU" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance_1" architectureUnit="MainBus" />
+<mappingInfo CPname="CP_Memory_Copy" instanceName="Transfer_Instance2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappedAttributes type="addr" name="sourceAddress" value="0x123" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="5346" >
@@ -11846,11 +11933,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="5551" >
 <father id="5639" num="0" />
-<cdparam x="1686" y="522" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1465" y="339" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
 <TGConnectingPoint num="0" id="5543" />
 <TGConnectingPoint num="1" id="5544" />
 <TGConnectingPoint num="2" id="5545" />
@@ -11860,16 +11947,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5549" />
 <TGConnectingPoint num="7" id="5550" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5560" >
 <father id="5639" num="1" />
-<cdparam x="1685" y="459" />
-<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="395" />
+<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
+<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
 <TGConnectingPoint num="0" id="5552" />
 <TGConnectingPoint num="1" id="5553" />
 <TGConnectingPoint num="2" id="5554" />
@@ -11879,16 +11966,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5558" />
 <TGConnectingPoint num="7" id="5559" />
 <extraparam>
-<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
+<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5569" >
 <father id="5639" num="2" />
-<cdparam x="1691" y="345" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="456" />
+<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
+<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
 <TGConnectingPoint num="0" id="5561" />
 <TGConnectingPoint num="1" id="5562" />
 <TGConnectingPoint num="2" id="5563" />
@@ -11898,16 +11985,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5567" />
 <TGConnectingPoint num="7" id="5568" />
 <extraparam>
-<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5578" >
 <father id="5639" num="3" />
-<cdparam x="1688" y="405" />
-<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1466" y="518" />
+<sizeparam width="206" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
+<cdrectangleparam minX="0" maxX="211" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Chip_to_Octet" />
 <TGConnectingPoint num="0" id="5570" />
 <TGConnectingPoint num="1" id="5571" />
 <TGConnectingPoint num="2" id="5572" />
@@ -11917,16 +12004,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5576" />
 <TGConnectingPoint num="7" id="5577" />
 <extraparam>
-<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Chip_to_Octet" taskName="F_Chip_to_Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip_to_Octet" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5587" >
 <father id="5639" num="4" />
-<cdparam x="1466" y="518" />
-<sizeparam width="206" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1688" y="405" />
+<sizeparam width="146" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="211" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Chip_to_Octet" />
+<cdrectangleparam minX="0" maxX="271" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_Sink" />
 <TGConnectingPoint num="0" id="5579" />
 <TGConnectingPoint num="1" id="5580" />
 <TGConnectingPoint num="2" id="5581" />
@@ -11936,16 +12023,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5585" />
 <TGConnectingPoint num="7" id="5586" />
 <extraparam>
-<info value="Zigbee_TX::F_Chip_to_Octet" taskName="F_Chip_to_Octet" referenceTaskName="Zigbee_TX" priority="0" operation="F_Chip_to_Octet" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_Sink" taskName="F_Sink" referenceTaskName="Zigbee_TX" priority="0" operation="F_Sink" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5596" >
 <father id="5639" num="5" />
-<cdparam x="1466" y="456" />
-<sizeparam width="223" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1691" y="345" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="194" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Symbol2ChipSeq" />
+<cdrectangleparam minX="0" maxX="272" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWL" />
 <TGConnectingPoint num="0" id="5588" />
 <TGConnectingPoint num="1" id="5589" />
 <TGConnectingPoint num="2" id="5590" />
@@ -11955,16 +12042,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5594" />
 <TGConnectingPoint num="7" id="5595" />
 <extraparam>
-<info value="Zigbee_TX::F_Symbol2ChipSeq" taskName="F_Symbol2ChipSeq" referenceTaskName="Zigbee_TX" priority="0" operation="F_Symbol2ChipSeq" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWL" taskName="F_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWL" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5605" >
 <father id="5639" num="6" />
-<cdparam x="1466" y="395" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1685" y="459" />
+<sizeparam width="162" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_Source" />
+<cdrectangleparam minX="0" maxX="255" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_Q" />
 <TGConnectingPoint num="0" id="5597" />
 <TGConnectingPoint num="1" id="5598" />
 <TGConnectingPoint num="2" id="5599" />
@@ -11974,16 +12061,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5603" />
 <TGConnectingPoint num="7" id="5604" />
 <extraparam>
-<info value="Zigbee_TX::X_Source" taskName="X_Source" referenceTaskName="Zigbee_TX" priority="0" operation="X_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_Q" taskName="F_CWP_Q" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_Q" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5614" >
 <father id="5639" num="7" />
-<cdparam x="1465" y="339" />
-<sizeparam width="164" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="1686" y="522" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="253" minY="0" maxY="253" />
-<infoparam name="TGComponent" value="Zigbee_TX::F_Source" />
+<cdrectangleparam minX="0" maxX="261" minY="0" maxY="253" />
+<infoparam name="TGComponent" value="Zigbee_TX::F_CWP_I" />
 <TGConnectingPoint num="0" id="5606" />
 <TGConnectingPoint num="1" id="5607" />
 <TGConnectingPoint num="2" id="5608" />
@@ -11993,7 +12080,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5612" />
 <TGConnectingPoint num="7" id="5613" />
 <extraparam>
-<info value="Zigbee_TX::F_Source" taskName="F_Source" referenceTaskName="Zigbee_TX" priority="0" operation="F_Source" fatherComponentMECType="0" />
+<info value="Zigbee_TX::F_CWP_I" taskName="F_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="F_CWP_I" fatherComponentMECType="0" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -12413,11 +12500,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1101" id="5907" >
 <father id="5950" num="0" />
-<cdparam x="639" y="239" />
-<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="671" y="289" />
+<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
+<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
 <TGConnectingPoint num="0" id="5899" />
 <TGConnectingPoint num="1" id="5900" />
 <TGConnectingPoint num="2" id="5901" />
@@ -12427,7 +12514,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5905" />
 <TGConnectingPoint num="7" id="5906" />
 <extraparam>
-<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5916" >
@@ -12451,11 +12538,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1101" id="5925" >
 <father id="5950" num="2" />
-<cdparam x="671" y="289" />
-<sizeparam width="156" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="639" y="239" />
+<sizeparam width="145" height="40" minWidth="75" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="82" minY="0" maxY="145" />
-<infoparam name="TGComponent" value="Zigbee_TX::X_CWP_I" />
+<cdrectangleparam minX="0" maxX="93" minY="0" maxY="145" />
+<infoparam name="TGComponent" value="Zigbee_TX::X_CWL" />
 <TGConnectingPoint num="0" id="5917" />
 <TGConnectingPoint num="1" id="5918" />
 <TGConnectingPoint num="2" id="5919" />
@@ -12465,7 +12552,7 @@ sequence diagram.
 <TGConnectingPoint num="6" id="5923" />
 <TGConnectingPoint num="7" id="5924" />
 <extraparam>
-<info value="Zigbee_TX::X_CWP_I" taskName="X_CWP_I" referenceTaskName="Zigbee_TX" priority="0" operation="CWP" fatherComponentMECType="1" />
+<info value="Zigbee_TX::X_CWL" taskName="X_CWL" referenceTaskName="Zigbee_TX" priority="0" operation="CWL" fatherComponentMECType="1" />
 </extraparam>
 </SUBCOMPONENT>
 
@@ -12755,8 +12842,19 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6150" />
 <TGConnectingPoint num="7" id="6151" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Symbol2ChipSeq_Chips2Octet" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, MAPPER_Bridge, MAPPER_Bus" />
+<mappedAttributes type="int" name="destinationAddress" value="123" />
+<mappedAttributes type="int" name="sourceAddress" value="123" />
+<mappedAttributes type="int" name="counter" value="123" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="6143" >
@@ -12794,8 +12892,16 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6168" />
 <TGConnectingPoint num="7" id="6169" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Chip2Octet_CWL" cpMEC="Single DMA" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="INTL_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="INTL_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="Crossbar, INTL_Bridge, INTL_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, INTL_Bridge, INTL_Bus" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="6161" >
@@ -12833,8 +12939,24 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6186" />
 <TGConnectingPoint num="7" id="6187" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_sink" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_sink" cpMEC="Double DMA" transferType1="0" transferType2="0" />
+<attributes reference="Double_DMA_transfer" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Src_Storage_Instance_2" architectureUnit="FEP_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="DMA_Controller_2" architectureUnit="FEP_DMA" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_2" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="ADAIF_MSS" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="CPU_Controller_2" architectureUnit="MainCPU" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_6" architectureUnit="FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_5" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_8" architectureUnit="MainBus, MainBridge, Crossbar, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
+<mappingInfo CPname="Double_DMA_transfer" instanceName="Transfer_Instance_7" architectureUnit="ADAIF_Bridge, Crossbar, ADAIF_Bus, FEP_Bridge, FEP_Bus" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="6179" >
@@ -12872,8 +12994,17 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6204" />
 <TGConnectingPoint num="7" id="6205" />
 <extraparam>
-<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="VOID" transferType1="-1" transferType2="-1" />
-<attributes reference="" />
+<info stereotype="CP" nodeName="CP_Source_to_Bits2Symbol" cpMEC="Memory Copy" transferType1="0" transferType2="0" />
+<attributes reference="DMA_transfer" />
+<mappingInfo CPname="DMA_transfer" instanceName="Src_Storage_Instance_1" architectureUnit="DDR" />
+<mappingInfo CPname="DMA_transfer" instanceName="Dst_Storage_Instance_1" architectureUnit="MAPPER_MSS" />
+<mappingInfo CPname="DMA_transfer" instanceName="DMA_Controller_1" architectureUnit="MAPPER_DMA" />
+<mappingInfo CPname="DMA_transfer" instanceName="CPU_Controller_1" architectureUnit="MainCPU" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_1" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_4" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_3" architectureUnit="MAPPER_Bus" />
+<mappingInfo CPname="DMA_transfer" instanceName="Transfer_Instance_2" architectureUnit="MainBus, MainBridge, Crossbar, MAPPER_Bridge, MAPPER_Bus" />
+<mappedAttributes type="addr" name="sourceAddress" value="0x123" />
 </extraparam>
 </COMPONENT>
 <SUBCOMPONENT type="1110" id="6197" >
@@ -13246,16 +13377,16 @@ sequence diagram.
 <cdparam x="1029" y="409" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="1029" y="409" id="7088" />
-<P2  x="1044" y="406" id="7123" />
+<P1  x="1029" y="409" id="7175" />
+<P2  x="1044" y="406" id="7142" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6240" >
 <cdparam x="16" y="272" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="241" y="448" id="6376" />
-<P2  x="541" y="448" id="6399" />
+<P1  x="241" y="448" id="6382" />
+<P2  x="541" y="448" id="6401" />
 <Point x="220" y="526" />
 <Point x="220" y="560" />
 <Point x="570" y="560" />
@@ -13298,8 +13429,8 @@ sequence diagram.
 <cdparam x="207" y="242" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="541" y="448" id="6397" />
-<P2  x="241" y="448" id="6378" />
+<P1  x="541" y="448" id="6403" />
+<P2  x="241" y="448" id="6380" />
 <Point x="587" y="478" />
 <Point x="587" y="578" />
 <Point x="208" y="578" />
@@ -13342,8 +13473,8 @@ sequence diagram.
 <cdparam x="487" y="102" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="994" y="242" id="6357" />
-<P2  x="241" y="448" id="6374" />
+<P1  x="994" y="242" id="6359" />
+<P2  x="241" y="448" id="6384" />
 <Point x="1005" y="242" />
 <Point x="1005" y="282" />
 <Point x="201" y="282" />
@@ -13386,8 +13517,8 @@ sequence diagram.
 <cdparam x="487" y="88" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="994" y="218" id="6355" />
-<P2  x="241" y="448" id="6384" />
+<P1  x="994" y="218" id="6361" />
+<P2  x="241" y="448" id="6374" />
 <Point x="1020" y="220" />
 <Point x="1020" y="291" />
 <Point x="215" y="291" />
@@ -13430,120 +13561,120 @@ sequence diagram.
 <cdparam x="1124" y="324" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="1064" y="465" id="7156" />
-<P2  x="1113" y="457" id="7208" />
+<P1  x="1064" y="465" id="7099" />
+<P2  x="1113" y="457" id="7210" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6257" >
 <cdparam x="1124" y="303" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="1064" y="406" id="7118" />
-<P2  x="1113" y="419" id="7210" />
+<P1  x="1064" y="406" id="7137" />
+<P2  x="1113" y="419" id="7208" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6258" >
 <cdparam x="987" y="323" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="912" y="442" id="7071" />
-<P2  x="936" y="442" id="7137" />
+<P1  x="912" y="442" id="7069" />
+<P2  x="936" y="442" id="7118" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6259" >
 <cdparam x="987" y="303" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="912" y="420" id="7069" />
-<P2  x="936" y="415" id="7099" />
+<P1  x="912" y="420" id="7071" />
+<P2  x="936" y="415" id="7156" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6260" >
 <cdparam x="869" y="320" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="793" y="441" id="7024" />
-<P2  x="821" y="441" id="7067" />
+<P1  x="793" y="441" id="6967" />
+<P2  x="821" y="441" id="7073" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6261" >
 <cdparam x="869" y="299" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="793" y="420" id="6986" />
-<P2  x="821" y="420" id="7073" />
+<P1  x="793" y="420" id="7005" />
+<P2  x="821" y="420" id="7067" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6262" >
 <cdparam x="734" y="300" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="658" y="420" id="6418" />
-<P2  x="683" y="420" id="6967" />
+<P1  x="658" y="420" id="6420" />
+<P2  x="683" y="420" id="7024" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6263" >
 <cdparam x="734" y="321" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="658" y="441" id="6420" />
-<P2  x="683" y="441" id="7005" />
+<P1  x="658" y="441" id="6418" />
+<P2  x="683" y="441" id="6986" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6264" >
 <cdparam x="617" y="298" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="541" y="420" id="6401" />
-<P2  x="567" y="420" id="6422" />
+<P1  x="541" y="420" id="6399" />
+<P2  x="567" y="420" id="6416" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6265" >
 <cdparam x="617" y="320" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="541" y="440" id="6403" />
-<P2  x="567" y="440" id="6416" />
+<P1  x="541" y="440" id="6397" />
+<P2  x="567" y="440" id="6422" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6266" >
 <cdparam x="519" y="353" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="441" y="448" id="6924" />
-<P2  x="470" y="448" id="6395" />
+<P1  x="441" y="448" id="6795" />
+<P2  x="470" y="448" id="6405" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6267" >
 <cdparam x="519" y="333" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="441" y="448" id="6795" />
-<P2  x="470" y="448" id="6405" />
+<P1  x="441" y="448" id="6924" />
+<P2  x="470" y="448" id="6395" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6268" >
 <cdparam x="389" y="379" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="312" y="448" id="6382" />
-<P2  x="333" y="448" id="6814" />
+<P1  x="312" y="448" id="6376" />
+<P2  x="333" y="448" id="6905" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6269" >
 <cdparam x="389" y="359" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="312" y="448" id="6380" />
-<P2  x="333" y="448" id="6833" />
+<P1  x="312" y="448" id="6378" />
+<P2  x="333" y="448" id="6886" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6274" >
 <cdparam x="782" y="137" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="994" y="170" id="6359" />
-<P2  x="333" y="395" id="6852" />
+<P1  x="994" y="170" id="6357" />
+<P2  x="333" y="395" id="6867" />
 <Point x="1058" y="170" />
 <Point x="1058" y="328" />
 <Point x="302" y="328" />
@@ -13586,8 +13717,8 @@ sequence diagram.
 <cdparam x="782" y="159" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="994" y="190" id="6361" />
-<P2  x="333" y="416" id="6871" />
+<P1  x="994" y="190" id="6355" />
+<P2  x="333" y="416" id="6848" />
 <Point x="1047" y="189" />
 <Point x="1047" y="321" />
 <Point x="288" y="321" />
@@ -13630,344 +13761,344 @@ sequence diagram.
 <cdparam x="693" y="193" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="890" y="221" id="6752" />
-<P2  x="923" y="221" id="6353" />
+<P1  x="890" y="221" id="6695" />
+<P2  x="923" y="221" id="6363" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6281" >
 <cdparam x="693" y="172" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="890" y="199" id="6714" />
-<P2  x="923" y="199" id="6363" />
+<P1  x="890" y="199" id="6733" />
+<P2  x="923" y="199" id="6353" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6282" >
 <cdparam x="557" y="191" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Composite port" value="Connector between ports" />
-<P1  x="753" y="219" id="6522" />
-<P2  x="780" y="219" id="6733" />
+<P1  x="753" y="219" id="6465" />
+<P2  x="780" y="219" id="6714" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6283" >
 <cdparam x="557" y="170" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Composite port" value="Connector between ports" />
-<P1  x="753" y="199" id="6484" />
-<P2  x="780" y="199" id="6695" />
+<P1  x="753" y="199" id="6503" />
+<P2  x="780" y="199" id="6752" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6284" >
 <cdparam x="427" y="190" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="635" y="199" id="6340" />
-<P2  x="643" y="199" id="6503" />
+<P1  x="635" y="199" id="6338" />
+<P2  x="643" y="199" id="6484" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6285" >
 <cdparam x="427" y="170" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="635" y="219" id="6338" />
-<P2  x="643" y="219" id="6465" />
+<P1  x="635" y="219" id="6340" />
+<P2  x="643" y="219" id="6522" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6286" >
 <cdparam x="320" y="186" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="513" y="205" id="6637" />
-<P2  x="534" y="215" id="6336" />
+<P1  x="513" y="205" id="6580" />
+<P2  x="534" y="215" id="6342" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6287" >
 <cdparam x="320" y="166" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="513" y="176" id="6599" />
-<P2  x="534" y="195" id="6342" />
+<P1  x="513" y="176" id="6618" />
+<P2  x="534" y="195" id="6336" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6288" >
 <cdparam x="188" y="186" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="322" y="216" id="6437" />
-<P2  x="348" y="212" id="6618" />
+<P1  x="322" y="216" id="6435" />
+<P2  x="348" y="212" id="6599" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6289" >
 <cdparam x="188" y="166" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="322" y="195" id="6435" />
-<P2  x="348" y="178" id="6580" />
+<P1  x="322" y="195" id="6437" />
+<P2  x="348" y="178" id="6637" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6290" >
 <cdparam x="67" y="336" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="195" y="213" id="6323" />
-<P2  x="221" y="215" id="6433" />
+<P1  x="195" y="213" id="6325" />
+<P2  x="221" y="215" id="6439" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6291" >
 <cdparam x="67" y="304" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="195" y="193" id="6325" />
-<P2  x="221" y="195" id="6439" />
+<P1  x="195" y="193" id="6323" />
+<P2  x="221" y="195" id="6433" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6292" >
 <cdparam x="480" y="337" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="480" y="223" id="6660" />
-<P2  x="493" y="205" id="6642" />
+<P1  x="480" y="223" id="6565" />
+<P2  x="493" y="205" id="6585" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6293" >
 <cdparam x="484" y="239" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="450" y="173" id="6569" />
-<P2  x="493" y="176" id="6604" />
+<P1  x="450" y="173" id="6656" />
+<P2  x="493" y="176" id="6623" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6294" >
 <cdparam x="403" y="300" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="368" y="212" id="6623" />
-<P2  x="389" y="223" id="6658" />
+<P1  x="368" y="212" id="6604" />
+<P2  x="389" y="223" id="6567" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6295" >
 <cdparam x="403" y="274" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="368" y="178" id="6585" />
-<P2  x="381" y="170" id="6567" />
+<P1  x="368" y="178" id="6642" />
+<P2  x="381" y="170" id="6658" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6296" >
 <cdparam x="469" y="378" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="410" y="191" id="6565" />
-<P2  x="416" y="191" id="6656" />
+<P1  x="410" y="191" id="6660" />
+<P2  x="416" y="191" id="6569" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6297" >
 <cdparam x="756" y="327" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="727" y="248" id="6541" />
-<P2  x="733" y="219" id="6527" />
+<P1  x="727" y="248" id="6454" />
+<P2  x="733" y="219" id="6470" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6298" >
 <cdparam x="760" y="229" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="728" y="176" id="6450" />
-<P2  x="733" y="199" id="6489" />
+<P1  x="728" y="176" id="6545" />
+<P2  x="733" y="199" id="6508" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6299" >
 <cdparam x="679" y="290" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="663" y="199" id="6508" />
-<P2  x="668" y="248" id="6543" />
+<P1  x="663" y="199" id="6489" />
+<P2  x="668" y="248" id="6452" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6300" >
 <cdparam x="679" y="264" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="663" y="219" id="6470" />
-<P2  x="667" y="173" id="6452" />
+<P1  x="663" y="219" id="6527" />
+<P2  x="667" y="173" id="6543" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6301" >
 <cdparam x="745" y="368" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="696" y="194" id="6454" />
-<P2  x="697" y="213" id="6545" />
+<P1  x="696" y="194" id="6541" />
+<P2  x="697" y="213" id="6450" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6302" >
 <cdparam x="928" y="350" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="868" y="249" id="6775" />
-<P2  x="870" y="221" id="6757" />
+<P1  x="868" y="249" id="6680" />
+<P2  x="870" y="221" id="6700" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6303" >
 <cdparam x="932" y="252" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="864" y="180" id="6684" />
-<P2  x="870" y="199" id="6719" />
+<P1  x="864" y="180" id="6771" />
+<P2  x="870" y="199" id="6738" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6304" >
 <cdparam x="851" y="313" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="800" y="219" id="6738" />
-<P2  x="802" y="249" id="6773" />
+<P1  x="800" y="219" id="6719" />
+<P2  x="802" y="249" id="6682" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6305" >
 <cdparam x="851" y="287" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="800" y="199" id="6700" />
-<P2  x="802" y="176" id="6682" />
+<P1  x="800" y="199" id="6757" />
+<P2  x="802" y="176" id="6773" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6306" >
 <cdparam x="917" y="391" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="829" y="200" id="6680" />
-<P2  x="833" y="215" id="6771" />
+<P1  x="829" y="200" id="6775" />
+<P2  x="833" y="215" id="6684" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6307" >
 <cdparam x="698" y="478" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="420" y="484" id="6890" />
-<P2  x="421" y="448" id="6929" />
+<P1  x="420" y="484" id="6837" />
+<P2  x="421" y="448" id="6800" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6308" >
 <cdparam x="696" y="390" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="418" y="433" id="6907" />
-<P2  x="421" y="448" id="6800" />
+<P1  x="418" y="433" id="6820" />
+<P2  x="421" y="448" id="6929" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6309" >
 <cdparam x="619" y="480" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="353" y="448" id="6819" />
-<P2  x="362" y="493" id="6896" />
+<P1  x="353" y="448" id="6910" />
+<P2  x="362" y="493" id="6831" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6310" >
 <cdparam x="619" y="386" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="353" y="416" id="6876" />
-<P2  x="362" y="476" id="6894" />
+<P1  x="353" y="416" id="6853" />
+<P2  x="362" y="476" id="6833" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6311" >
 <cdparam x="619" y="453" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="353" y="448" id="6838" />
-<P2  x="360" y="438" id="6913" />
+<P1  x="353" y="448" id="6891" />
+<P2  x="360" y="438" id="6814" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6312" >
 <cdparam x="619" y="360" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="353" y="395" id="6857" />
-<P2  x="360" y="421" id="6911" />
+<P1  x="353" y="395" id="6872" />
+<P2  x="360" y="421" id="6816" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6313" >
 <cdparam x="571" y="583" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="389" y="453" id="6909" />
-<P2  x="390" y="467" id="6892" />
+<P1  x="389" y="453" id="6818" />
+<P2  x="390" y="467" id="6835" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6314" >
 <cdparam x="918" y="409" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="768" y="435" id="7047" />
-<P2  x="773" y="441" id="7029" />
+<P1  x="768" y="435" id="6952" />
+<P2  x="773" y="441" id="6972" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6315" >
 <cdparam x="922" y="311" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="770" y="398" id="6956" />
-<P2  x="773" y="420" id="6991" />
+<P1  x="770" y="398" id="7043" />
+<P2  x="773" y="420" id="7010" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6316" >
 <cdparam x="841" y="372" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="703" y="441" id="7010" />
-<P2  x="705" y="435" id="7045" />
+<P1  x="703" y="441" id="6991" />
+<P2  x="705" y="435" id="6954" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6317" >
 <cdparam x="841" y="346" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="703" y="420" id="6972" />
-<P2  x="704" y="394" id="6954" />
+<P1  x="703" y="420" id="7029" />
+<P2  x="704" y="394" id="7045" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6318" >
 <cdparam x="907" y="450" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="733" y="423" id="6952" />
-<P2  x="733" y="406" id="7043" />
+<P1  x="733" y="423" id="7047" />
+<P2  x="733" y="406" id="6956" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6319" >
 <cdparam x="1272" y="373" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Composite port" value="Connector between ports" />
-<P1  x="1033" y="469" id="7179" />
-<P2  x="1044" y="465" id="7161" />
+<P1  x="1033" y="469" id="7084" />
+<P2  x="1044" y="465" id="7104" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6320" >
 <cdparam x="1195" y="336" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="956" y="442" id="7142" />
-<P2  x="970" y="473" id="7177" />
+<P1  x="956" y="442" id="7123" />
+<P2  x="970" y="473" id="7086" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6321" >
 <cdparam x="1195" y="310" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Composite port to Primitive port" value="Connector between ports" />
-<P1  x="956" y="415" id="7104" />
-<P2  x="963" y="408" id="7086" />
+<P1  x="956" y="415" id="7161" />
+<P2  x="963" y="408" id="7177" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <CONNECTOR type="126" id="6322" >
 <cdparam x="1261" y="414" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from Primitive port to Primitive port" value="Connector between ports" />
-<P1  x="992" y="434" id="7084" />
-<P2  x="1004" y="448" id="7175" />
+<P1  x="992" y="434" id="7179" />
+<P2  x="1004" y="448" id="7088" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 <COMPONENT type="1202" id="6335" >
@@ -13991,15 +14122,15 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="6324" >
 <father id="6335" num="0" />
-<cdparam x="174" y="203" />
+<cdparam x="174" y="183" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="72" minY="-10" maxY="45" />
-<infoparam name="Primitive port" value="Event src_out" />
+<infoparam name="Primitive port" value="Channel src_out" />
 <TGConnectingPoint num="0" id="6323" />
 <extraparam>
-<Prop commName="src_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="src_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14008,15 +14139,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6326" >
 <father id="6335" num="1" />
-<cdparam x="174" y="183" />
+<cdparam x="174" y="203" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="72" minY="-10" maxY="45" />
-<infoparam name="Primitive port" value="Channel src_out" />
+<infoparam name="Primitive port" value="Event src_out" />
 <TGConnectingPoint num="0" id="6325" />
 <extraparam>
-<Prop commName="src_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="src_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14049,15 +14180,15 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="6337" >
 <father id="6352" num="0" />
-<cdparam x="534" y="205" />
+<cdparam x="534" y="185" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="70" minY="-10" maxY="45" />
-<infoparam name="Primitive port" value="Event in" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="6336" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14066,15 +14197,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6339" >
 <father id="6352" num="1" />
-<cdparam x="614" y="209" />
+<cdparam x="614" y="189" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="70" minY="-10" maxY="45" />
-<infoparam name="Primitive port" value="Channel ovlp_out" />
+<infoparam name="Primitive port" value="Event ovlp_out" />
 <TGConnectingPoint num="0" id="6338" />
 <extraparam>
-<Prop commName="ovlp_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="ovlp_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14083,15 +14214,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6341" >
 <father id="6352" num="2" />
-<cdparam x="614" y="189" />
+<cdparam x="614" y="209" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="70" minY="-10" maxY="45" />
-<infoparam name="Primitive port" value="Event ovlp_out" />
+<infoparam name="Primitive port" value="Channel ovlp_out" />
 <TGConnectingPoint num="0" id="6340" />
 <extraparam>
-<Prop commName="ovlp_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="ovlp_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14100,15 +14231,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6343" >
 <father id="6352" num="3" />
-<cdparam x="534" y="185" />
+<cdparam x="534" y="205" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="70" minY="-10" maxY="45" />
-<infoparam name="Primitive port" value="Channel in" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6342" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14137,15 +14268,15 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="6354" >
 <father id="6373" num="0" />
-<cdparam x="923" y="211" />
+<cdparam x="923" y="189" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event in" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="6353" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14154,15 +14285,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6356" >
 <father id="6373" num="1" />
-<cdparam x="973" y="208" />
+<cdparam x="973" y="180" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel dmx_out2" />
+<infoparam name="Primitive port" value="Event dmx_out1" />
 <TGConnectingPoint num="0" id="6355" />
 <extraparam>
-<Prop commName="dmx_out2" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="dmx_out1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14171,15 +14302,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6358" >
 <father id="6373" num="2" />
-<cdparam x="973" y="232" />
+<cdparam x="973" y="160" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event dmx_out2" />
+<infoparam name="Primitive port" value="Channel dmx_out1" />
 <TGConnectingPoint num="0" id="6357" />
 <extraparam>
-<Prop commName="dmx_out2" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="dmx_out1" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14188,15 +14319,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6360" >
 <father id="6373" num="3" />
-<cdparam x="973" y="160" />
+<cdparam x="973" y="232" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel dmx_out1" />
+<infoparam name="Primitive port" value="Event dmx_out2" />
 <TGConnectingPoint num="0" id="6359" />
 <extraparam>
-<Prop commName="dmx_out1" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="dmx_out2" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14205,15 +14336,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6362" >
 <father id="6373" num="4" />
-<cdparam x="973" y="180" />
+<cdparam x="973" y="208" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event dmx_out1" />
+<infoparam name="Primitive port" value="Channel dmx_out2" />
 <TGConnectingPoint num="0" id="6361" />
 <extraparam>
-<Prop commName="dmx_out1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="dmx_out2" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14222,15 +14353,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6364" >
 <father id="6373" num="5" />
-<cdparam x="923" y="189" />
+<cdparam x="923" y="211" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel in" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6363" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14263,11 +14394,11 @@ sequence diagram.
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event in1" />
+<infoparam name="Primitive port" value="Channel dmx_out2" />
 <TGConnectingPoint num="0" id="6374" />
 <extraparam>
-<Prop commName="in1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="dmx_out2" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14276,14 +14407,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6377" >
 <father id="6394" num="1" />
-<cdparam x="241" y="438" />
+<cdparam x="291" y="438" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event in2" />
+<infoparam name="Primitive port" value="Event mx_out" />
 <TGConnectingPoint num="0" id="6376" />
 <extraparam>
-<Prop commName="in2" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="mx_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14293,14 +14424,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6379" >
 <father id="6394" num="2" />
-<cdparam x="241" y="438" />
+<cdparam x="291" y="438" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel in2" />
+<infoparam name="Primitive port" value="Channel mx_out" />
 <TGConnectingPoint num="0" id="6378" />
 <extraparam>
-<Prop commName="in2" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="mx_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14310,14 +14441,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6381" >
 <father id="6394" num="3" />
-<cdparam x="291" y="438" />
+<cdparam x="241" y="438" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel mx_out" />
+<infoparam name="Primitive port" value="Channel in2" />
 <TGConnectingPoint num="0" id="6380" />
 <extraparam>
-<Prop commName="mx_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="in2" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14327,14 +14458,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6383" >
 <father id="6394" num="4" />
-<cdparam x="291" y="438" />
+<cdparam x="241" y="438" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event mx_out" />
+<infoparam name="Primitive port" value="Event in2" />
 <TGConnectingPoint num="0" id="6382" />
 <extraparam>
-<Prop commName="mx_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="in2" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14348,11 +14479,11 @@ sequence diagram.
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel dmx_out2" />
+<infoparam name="Primitive port" value="Event in1" />
 <TGConnectingPoint num="0" id="6384" />
 <extraparam>
-<Prop commName="dmx_out2" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14386,11 +14517,11 @@ sequence diagram.
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event in" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="6395" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14399,15 +14530,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6398" >
 <father id="6415" num="1" />
-<cdparam x="520" y="438" />
+<cdparam x="520" y="430" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel dmx1_out2" />
+<infoparam name="Primitive port" value="Event dmx1_out1" />
 <TGConnectingPoint num="0" id="6397" />
 <extraparam>
-<Prop commName="dmx1_out2" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="dmx1_out1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14416,15 +14547,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6400" >
 <father id="6415" num="2" />
-<cdparam x="520" y="438" />
+<cdparam x="520" y="410" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event dmx1_out2" />
+<infoparam name="Primitive port" value="Channel dmx1_out1" />
 <TGConnectingPoint num="0" id="6399" />
 <extraparam>
-<Prop commName="dmx1_out2" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="dmx1_out1" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14433,15 +14564,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6402" >
 <father id="6415" num="3" />
-<cdparam x="520" y="410" />
+<cdparam x="520" y="438" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel dmx1_out1" />
+<infoparam name="Primitive port" value="Event dmx1_out2" />
 <TGConnectingPoint num="0" id="6401" />
 <extraparam>
-<Prop commName="dmx1_out1" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="dmx1_out2" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14450,15 +14581,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6404" >
 <father id="6415" num="4" />
-<cdparam x="520" y="430" />
+<cdparam x="520" y="438" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Event dmx1_out1" />
+<infoparam name="Primitive port" value="Channel dmx1_out2" />
 <TGConnectingPoint num="0" id="6403" />
 <extraparam>
-<Prop commName="dmx1_out1" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="dmx1_out2" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14471,11 +14602,11 @@ sequence diagram.
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="40" minY="-10" maxY="97" />
-<infoparam name="Primitive port" value="Channel in" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6405" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14506,15 +14637,15 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="6417" >
 <father id="6432" num="0" />
-<cdparam x="567" y="430" />
+<cdparam x="567" y="410" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Event in" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="6416" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14523,15 +14654,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6419" >
 <father id="6432" num="1" />
-<cdparam x="637" y="410" />
+<cdparam x="637" y="431" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Channel rep_out" />
+<infoparam name="Primitive port" value="Event rep_out" />
 <TGConnectingPoint num="0" id="6418" />
 <extraparam>
-<Prop commName="rep_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="rep_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14540,15 +14671,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6421" >
 <father id="6432" num="2" />
-<cdparam x="637" y="431" />
+<cdparam x="637" y="410" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Event rep_out" />
+<infoparam name="Primitive port" value="Channel rep_out" />
 <TGConnectingPoint num="0" id="6420" />
 <extraparam>
-<Prop commName="rep_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="rep_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14557,15 +14688,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6423" >
 <father id="6432" num="3" />
-<cdparam x="567" y="410" />
+<cdparam x="567" y="430" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Channel in" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6422" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14595,15 +14726,15 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="6434" >
 <father id="6449" num="0" />
-<cdparam x="221" y="205" />
+<cdparam x="221" y="185" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="70" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Event in" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="6433" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14612,15 +14743,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6436" >
 <father id="6449" num="1" />
-<cdparam x="301" y="185" />
+<cdparam x="301" y="206" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="70" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Channel feed_out" />
+<infoparam name="Primitive port" value="Event feed_out" />
 <TGConnectingPoint num="0" id="6435" />
 <extraparam>
-<Prop commName="feed_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="feed_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14629,15 +14760,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6438" >
 <father id="6449" num="2" />
-<cdparam x="301" y="206" />
+<cdparam x="301" y="185" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="70" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Event feed_out" />
+<infoparam name="Primitive port" value="Channel feed_out" />
 <TGConnectingPoint num="0" id="6437" />
 <extraparam>
-<Prop commName="feed_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="feed_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14646,15 +14777,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6440" >
 <father id="6449" num="3" />
-<cdparam x="221" y="185" />
+<cdparam x="221" y="205" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="70" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Channel in" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6439" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14682,11 +14813,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1202" id="6464" >
 <father id="6564" num="0" />
-<cdparam x="675" y="150" />
-<sizeparam width="45" height="36" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="676" y="221" />
+<sizeparam width="43" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="45" minY="0" maxY="114" />
-<infoparam name="Primitive component" value="X_fft" />
+<cdrectangleparam minX="0" maxX="47" minY="0" maxY="110" />
+<infoparam name="Primitive component" value="F_fft" />
 <TGConnectingPoint num="0" id="6456" />
 <TGConnectingPoint num="1" id="6457" />
 <TGConnectingPoint num="2" id="6458" />
@@ -14701,15 +14832,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6451" >
 <father id="6464" num="0" />
-<cdparam x="712" y="168" />
+<cdparam x="689" y="213" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="37" minY="-8" maxY="28" />
-<infoparam name="Primitive port" value="Channel fft_out" />
+<cdrectangleparam minX="-8" maxX="35" minY="-8" maxY="32" />
+<infoparam name="Primitive port" value="Request r_fft" />
 <TGConnectingPoint num="0" id="6450" />
 <extraparam>
-<Prop commName="fft_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="r_fft" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14718,15 +14849,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6453" >
 <father id="6464" num="1" />
-<cdparam x="667" y="165" />
+<cdparam x="668" y="240" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="37" minY="-8" maxY="28" />
-<infoparam name="Primitive port" value="Channel in" />
+<cdrectangleparam minX="-8" maxX="35" minY="-8" maxY="32" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6452" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14735,14 +14866,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6455" >
 <father id="6464" num="2" />
-<cdparam x="688" y="178" />
+<cdparam x="711" y="240" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="37" minY="-8" maxY="28" />
-<infoparam name="Primitive port" value="Request r_fft" />
+<cdrectangleparam minX="-8" maxX="35" minY="-8" maxY="32" />
+<infoparam name="Primitive port" value="Event fft_out" />
 <TGConnectingPoint num="0" id="6454" />
 <extraparam>
-<Prop commName="r_fft" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="fft_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14752,7 +14883,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6483" >
 <father id="6564" num="1" />
-<cdparam x="643" y="209" />
+<cdparam x="733" y="209" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -14778,7 +14909,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6502" >
 <father id="6564" num="2" />
-<cdparam x="733" y="189" />
+<cdparam x="643" y="189" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -14804,7 +14935,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6521" >
 <father id="6564" num="3" />
-<cdparam x="643" y="189" />
+<cdparam x="733" y="189" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -14830,7 +14961,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6540" >
 <father id="6564" num="4" />
-<cdparam x="733" y="209" />
+<cdparam x="643" y="209" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -14856,11 +14987,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="6555" >
 <father id="6564" num="5" />
-<cdparam x="676" y="221" />
-<sizeparam width="43" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="675" y="150" />
+<sizeparam width="45" height="36" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="47" minY="0" maxY="110" />
-<infoparam name="Primitive component" value="F_fft" />
+<cdrectangleparam minX="0" maxX="45" minY="0" maxY="114" />
+<infoparam name="Primitive component" value="X_fft" />
 <TGConnectingPoint num="0" id="6547" />
 <TGConnectingPoint num="1" id="6548" />
 <TGConnectingPoint num="2" id="6549" />
@@ -14875,14 +15006,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6542" >
 <father id="6555" num="0" />
-<cdparam x="711" y="240" />
+<cdparam x="688" y="178" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="35" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Event fft_out" />
+<cdrectangleparam minX="-8" maxX="37" minY="-8" maxY="28" />
+<infoparam name="Primitive port" value="Request r_fft" />
 <TGConnectingPoint num="0" id="6541" />
 <extraparam>
-<Prop commName="fft_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="r_fft" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14892,15 +15023,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6544" >
 <father id="6555" num="1" />
-<cdparam x="668" y="240" />
+<cdparam x="667" y="165" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="35" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Event in" />
+<cdrectangleparam minX="-8" maxX="37" minY="-8" maxY="28" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="6543" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14909,15 +15040,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6546" >
 <father id="6555" num="2" />
-<cdparam x="689" y="213" />
+<cdparam x="712" y="168" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="35" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Request r_fft" />
+<cdrectangleparam minX="-8" maxX="37" minY="-8" maxY="28" />
+<infoparam name="Primitive port" value="Channel fft_out" />
 <TGConnectingPoint num="0" id="6545" />
 <extraparam>
-<Prop commName="r_fft" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="fft_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14945,11 +15076,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1202" id="6579" >
 <father id="6679" num="0" />
-<cdparam x="389" y="147" />
-<sizeparam width="53" height="36" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="397" y="199" />
+<sizeparam width="75" height="61" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="92" minY="0" maxY="117" />
-<infoparam name="Primitive component" value="X_dma" />
+<cdrectangleparam minX="0" maxX="70" minY="0" maxY="92" />
+<infoparam name="Primitive component" value="F_dma" />
 <TGConnectingPoint num="0" id="6571" />
 <TGConnectingPoint num="1" id="6572" />
 <TGConnectingPoint num="2" id="6573" />
@@ -14959,19 +15090,19 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6577" />
 <TGConnectingPoint num="7" id="6578" />
 <extraparam>
-<Attribute access="2" id="size" value="" type="0" typeOther="" />
+<Attribute access="2" id="size" value="0" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6566" >
 <father id="6579" num="0" />
-<cdparam x="402" y="175" />
+<cdparam x="464" y="215" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="45" minY="-8" maxY="28" />
-<infoparam name="Primitive port" value="Request r_dma" />
+<cdrectangleparam minX="-8" maxX="67" minY="-8" maxY="53" />
+<infoparam name="Primitive port" value="Event dma_out" />
 <TGConnectingPoint num="0" id="6565" />
 <extraparam>
-<Prop commName="r_dma" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="dma_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14981,15 +15112,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6568" >
 <father id="6579" num="1" />
-<cdparam x="381" y="162" />
+<cdparam x="389" y="215" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="45" minY="-8" maxY="28" />
-<infoparam name="Primitive port" value="Channel in" />
+<cdrectangleparam minX="-8" maxX="67" minY="-8" maxY="53" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6567" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -14998,15 +15129,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6570" >
 <father id="6579" num="2" />
-<cdparam x="434" y="165" />
+<cdparam x="408" y="191" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="45" minY="-8" maxY="28" />
-<infoparam name="Primitive port" value="Channel dma_out" />
+<cdrectangleparam minX="-8" maxX="67" minY="-8" maxY="53" />
+<infoparam name="Primitive port" value="Request r_dma" />
 <TGConnectingPoint num="0" id="6569" />
 <extraparam>
-<Prop commName="dma_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="r_dma" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15015,7 +15146,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6598" >
 <father id="6679" num="1" />
-<cdparam x="348" y="168" />
+<cdparam x="493" y="195" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="135" minY="-10" maxY="143" />
@@ -15041,7 +15172,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6617" >
 <father id="6679" num="2" />
-<cdparam x="493" y="166" />
+<cdparam x="348" y="202" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="135" minY="-10" maxY="143" />
@@ -15067,7 +15198,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6636" >
 <father id="6679" num="3" />
-<cdparam x="348" y="202" />
+<cdparam x="493" y="166" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="135" minY="-10" maxY="143" />
@@ -15093,7 +15224,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6655" >
 <father id="6679" num="4" />
-<cdparam x="493" y="195" />
+<cdparam x="348" y="168" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="135" minY="-10" maxY="143" />
@@ -15119,11 +15250,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="6670" >
 <father id="6679" num="5" />
-<cdparam x="397" y="199" />
-<sizeparam width="75" height="61" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="389" y="147" />
+<sizeparam width="53" height="36" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="70" minY="0" maxY="92" />
-<infoparam name="Primitive component" value="F_dma" />
+<cdrectangleparam minX="0" maxX="92" minY="0" maxY="117" />
+<infoparam name="Primitive component" value="X_dma" />
 <TGConnectingPoint num="0" id="6662" />
 <TGConnectingPoint num="1" id="6663" />
 <TGConnectingPoint num="2" id="6664" />
@@ -15133,20 +15264,20 @@ sequence diagram.
 <TGConnectingPoint num="6" id="6668" />
 <TGConnectingPoint num="7" id="6669" />
 <extraparam>
-<Attribute access="2" id="size" value="0" type="0" typeOther="" />
+<Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6657" >
 <father id="6670" num="0" />
-<cdparam x="408" y="191" />
+<cdparam x="434" y="165" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="67" minY="-8" maxY="53" />
-<infoparam name="Primitive port" value="Request r_dma" />
+<cdrectangleparam minX="-8" maxX="45" minY="-8" maxY="28" />
+<infoparam name="Primitive port" value="Channel dma_out" />
 <TGConnectingPoint num="0" id="6656" />
 <extraparam>
-<Prop commName="r_dma" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="dma_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15155,15 +15286,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6659" >
 <father id="6670" num="1" />
-<cdparam x="389" y="215" />
+<cdparam x="381" y="162" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="67" minY="-8" maxY="53" />
-<infoparam name="Primitive port" value="Event in" />
+<cdrectangleparam minX="-8" maxX="45" minY="-8" maxY="28" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="6658" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15172,14 +15303,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6661" >
 <father id="6670" num="2" />
-<cdparam x="464" y="215" />
+<cdparam x="402" y="175" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="67" minY="-8" maxY="53" />
-<infoparam name="Primitive port" value="Event dma_out" />
+<cdrectangleparam minX="-8" maxX="45" minY="-8" maxY="28" />
+<infoparam name="Primitive port" value="Request r_dma" />
 <TGConnectingPoint num="0" id="6660" />
 <extraparam>
-<Prop commName="dma_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="r_dma" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15208,11 +15339,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1202" id="6694" >
 <father id="6794" num="0" />
-<cdparam x="810" y="154" />
-<sizeparam width="46" height="38" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="810" y="223" />
+<sizeparam width="50" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="44" minY="0" maxY="112" />
-<infoparam name="Primitive component" value="X_cwm" />
+<cdrectangleparam minX="0" maxX="40" minY="0" maxY="110" />
+<infoparam name="Primitive component" value="F_cwm" />
 <TGConnectingPoint num="0" id="6686" />
 <TGConnectingPoint num="1" id="6687" />
 <TGConnectingPoint num="2" id="6688" />
@@ -15227,14 +15358,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6681" >
 <father id="6694" num="0" />
-<cdparam x="821" y="184" />
+<cdparam x="852" y="241" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="38" minY="-8" maxY="30" />
-<infoparam name="Primitive port" value="Request r_cwm" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="32" />
+<infoparam name="Primitive port" value="Event cwm_out" />
 <TGConnectingPoint num="0" id="6680" />
 <extraparam>
-<Prop commName="r_cwm" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="cwm_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15244,15 +15375,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6683" >
 <father id="6694" num="1" />
-<cdparam x="802" y="168" />
+<cdparam x="802" y="241" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="38" minY="-8" maxY="30" />
-<infoparam name="Primitive port" value="Channel in" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="32" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6682" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15261,15 +15392,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6685" >
 <father id="6694" num="2" />
-<cdparam x="848" y="172" />
+<cdparam x="825" y="215" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="38" minY="-8" maxY="30" />
-<infoparam name="Primitive port" value="Channel cwm_out" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="32" />
+<infoparam name="Primitive port" value="Request r_cwm" />
 <TGConnectingPoint num="0" id="6684" />
 <extraparam>
-<Prop commName="cwm_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="r_cwm" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15278,7 +15409,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6713" >
 <father id="6794" num="1" />
-<cdparam x="780" y="189" />
+<cdparam x="870" y="211" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -15304,7 +15435,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6732" >
 <father id="6794" num="2" />
-<cdparam x="870" y="189" />
+<cdparam x="780" y="209" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -15330,7 +15461,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6751" >
 <father id="6794" num="3" />
-<cdparam x="780" y="209" />
+<cdparam x="870" y="189" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -15356,7 +15487,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6770" >
 <father id="6794" num="4" />
-<cdparam x="870" y="211" />
+<cdparam x="780" y="189" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -15382,11 +15513,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="6785" >
 <father id="6794" num="5" />
-<cdparam x="810" y="223" />
-<sizeparam width="50" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="810" y="154" />
+<sizeparam width="46" height="38" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="40" minY="0" maxY="110" />
-<infoparam name="Primitive component" value="F_cwm" />
+<cdrectangleparam minX="0" maxX="44" minY="0" maxY="112" />
+<infoparam name="Primitive component" value="X_cwm" />
 <TGConnectingPoint num="0" id="6777" />
 <TGConnectingPoint num="1" id="6778" />
 <TGConnectingPoint num="2" id="6779" />
@@ -15401,15 +15532,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6772" >
 <father id="6785" num="0" />
-<cdparam x="825" y="215" />
+<cdparam x="848" y="172" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Request r_cwm" />
+<cdrectangleparam minX="-8" maxX="38" minY="-8" maxY="30" />
+<infoparam name="Primitive port" value="Channel cwm_out" />
 <TGConnectingPoint num="0" id="6771" />
 <extraparam>
-<Prop commName="r_cwm" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="cwm_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15418,15 +15549,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6774" >
 <father id="6785" num="1" />
-<cdparam x="802" y="241" />
+<cdparam x="802" y="168" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Event in" />
+<cdrectangleparam minX="-8" maxX="38" minY="-8" maxY="30" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="6773" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15435,14 +15566,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6776" >
 <father id="6785" num="2" />
-<cdparam x="852" y="241" />
+<cdparam x="821" y="184" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Event cwm_out" />
+<cdrectangleparam minX="-8" maxX="38" minY="-8" maxY="30" />
+<infoparam name="Primitive port" value="Request r_cwm" />
 <TGConnectingPoint num="0" id="6775" />
 <extraparam>
-<Prop commName="cwm_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="r_cwm" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15494,174 +15625,70 @@ sequence diagram.
 <TGConnectingPoint num="15" id="6810" />
 <TGConnectingPoint num="16" id="6811" />
 <TGConnectingPoint num="17" id="6812" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="6832" >
-<father id="6951" num="1" />
-<cdparam x="333" y="438" />
-<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-10" maxX="78" minY="-10" maxY="136" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="6814" />
-<TGConnectingPoint num="1" id="6815" />
-<TGConnectingPoint num="2" id="6816" />
-<TGConnectingPoint num="3" id="6817" />
-<TGConnectingPoint num="4" id="6818" />
-<TGConnectingPoint num="5" id="6819" />
-<TGConnectingPoint num="6" id="6820" />
-<TGConnectingPoint num="7" id="6821" />
-<TGConnectingPoint num="8" id="6822" />
-<TGConnectingPoint num="9" id="6823" />
-<TGConnectingPoint num="10" id="6824" />
-<TGConnectingPoint num="11" id="6825" />
-<TGConnectingPoint num="12" id="6826" />
-<TGConnectingPoint num="13" id="6827" />
-<TGConnectingPoint num="14" id="6828" />
-<TGConnectingPoint num="15" id="6829" />
-<TGConnectingPoint num="16" id="6830" />
-<TGConnectingPoint num="17" id="6831" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="6851" >
-<father id="6951" num="2" />
-<cdparam x="333" y="438" />
-<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-10" maxX="78" minY="-10" maxY="136" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="6833" />
-<TGConnectingPoint num="1" id="6834" />
-<TGConnectingPoint num="2" id="6835" />
-<TGConnectingPoint num="3" id="6836" />
-<TGConnectingPoint num="4" id="6837" />
-<TGConnectingPoint num="5" id="6838" />
-<TGConnectingPoint num="6" id="6839" />
-<TGConnectingPoint num="7" id="6840" />
-<TGConnectingPoint num="8" id="6841" />
-<TGConnectingPoint num="9" id="6842" />
-<TGConnectingPoint num="10" id="6843" />
-<TGConnectingPoint num="11" id="6844" />
-<TGConnectingPoint num="12" id="6845" />
-<TGConnectingPoint num="13" id="6846" />
-<TGConnectingPoint num="14" id="6847" />
-<TGConnectingPoint num="15" id="6848" />
-<TGConnectingPoint num="16" id="6849" />
-<TGConnectingPoint num="17" id="6850" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="6870" >
-<father id="6951" num="3" />
-<cdparam x="333" y="385" />
-<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-10" maxX="78" minY="-10" maxY="136" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="6852" />
-<TGConnectingPoint num="1" id="6853" />
-<TGConnectingPoint num="2" id="6854" />
-<TGConnectingPoint num="3" id="6855" />
-<TGConnectingPoint num="4" id="6856" />
-<TGConnectingPoint num="5" id="6857" />
-<TGConnectingPoint num="6" id="6858" />
-<TGConnectingPoint num="7" id="6859" />
-<TGConnectingPoint num="8" id="6860" />
-<TGConnectingPoint num="9" id="6861" />
-<TGConnectingPoint num="10" id="6862" />
-<TGConnectingPoint num="11" id="6863" />
-<TGConnectingPoint num="12" id="6864" />
-<TGConnectingPoint num="13" id="6865" />
-<TGConnectingPoint num="14" id="6866" />
-<TGConnectingPoint num="15" id="6867" />
-<TGConnectingPoint num="16" id="6868" />
-<TGConnectingPoint num="17" id="6869" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1201" id="6889" >
-<father id="6951" num="4" />
-<cdparam x="333" y="406" />
-<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-10" maxX="78" minY="-10" maxY="136" />
-<infoparam name="Composite port" value="" />
-<TGConnectingPoint num="0" id="6871" />
-<TGConnectingPoint num="1" id="6872" />
-<TGConnectingPoint num="2" id="6873" />
-<TGConnectingPoint num="3" id="6874" />
-<TGConnectingPoint num="4" id="6875" />
-<TGConnectingPoint num="5" id="6876" />
-<TGConnectingPoint num="6" id="6877" />
-<TGConnectingPoint num="7" id="6878" />
-<TGConnectingPoint num="8" id="6879" />
-<TGConnectingPoint num="9" id="6880" />
-<TGConnectingPoint num="10" id="6881" />
-<TGConnectingPoint num="11" id="6882" />
-<TGConnectingPoint num="12" id="6883" />
-<TGConnectingPoint num="13" id="6884" />
-<TGConnectingPoint num="14" id="6885" />
-<TGConnectingPoint num="15" id="6886" />
-<TGConnectingPoint num="16" id="6887" />
-<TGConnectingPoint num="17" id="6888" />
-</SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="6906" >
-<father id="6951" num="5" />
-<cdparam x="370" y="475" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1202" id="6830" >
+<father id="6951" num="1" />
+<cdparam x="368" y="405" />
 <sizeparam width="42" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="46" minY="0" maxY="106" />
-<infoparam name="Primitive component" value="F_cwa" />
-<TGConnectingPoint num="0" id="6898" />
-<TGConnectingPoint num="1" id="6899" />
-<TGConnectingPoint num="2" id="6900" />
-<TGConnectingPoint num="3" id="6901" />
-<TGConnectingPoint num="4" id="6902" />
-<TGConnectingPoint num="5" id="6903" />
-<TGConnectingPoint num="6" id="6904" />
-<TGConnectingPoint num="7" id="6905" />
+<infoparam name="Primitive component" value="X_cwa" />
+<TGConnectingPoint num="0" id="6822" />
+<TGConnectingPoint num="1" id="6823" />
+<TGConnectingPoint num="2" id="6824" />
+<TGConnectingPoint num="3" id="6825" />
+<TGConnectingPoint num="4" id="6826" />
+<TGConnectingPoint num="5" id="6827" />
+<TGConnectingPoint num="6" id="6828" />
+<TGConnectingPoint num="7" id="6829" />
 <extraparam>
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="6891" >
-<father id="6906" num="0" />
-<cdparam x="404" y="476" />
+<SUBCOMPONENT type="1203" id="6815" >
+<father id="6830" num="0" />
+<cdparam x="360" y="430" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-8" maxX="34" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Event cwa_out" />
-<TGConnectingPoint num="0" id="6890" />
+<infoparam name="Primitive port" value="Channel in2" />
+<TGConnectingPoint num="0" id="6814" />
 <extraparam>
-<Prop commName="cwa_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in2" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="6893" >
-<father id="6906" num="1" />
-<cdparam x="382" y="467" />
+<SUBCOMPONENT type="1203" id="6817" >
+<father id="6830" num="1" />
+<cdparam x="360" y="413" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-8" maxX="34" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Request r_cwa" />
-<TGConnectingPoint num="0" id="6892" />
+<infoparam name="Primitive port" value="Channel in1" />
+<TGConnectingPoint num="0" id="6816" />
 <extraparam>
-<Prop commName="r_cwa" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in1" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="6895" >
-<father id="6906" num="2" />
-<cdparam x="362" y="468" />
+<SUBCOMPONENT type="1203" id="6819" >
+<father id="6830" num="2" />
+<cdparam x="381" y="437" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-8" maxX="34" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Event in1" />
-<TGConnectingPoint num="0" id="6894" />
+<infoparam name="Primitive port" value="Request r_cwa" />
+<TGConnectingPoint num="0" id="6818" />
 <extraparam>
-<Prop commName="in1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="r_cwa" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15669,69 +15696,69 @@ sequence diagram.
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="6897" >
-<father id="6906" num="3" />
-<cdparam x="362" y="485" />
+<SUBCOMPONENT type="1203" id="6821" >
+<father id="6830" num="3" />
+<cdparam x="402" y="425" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-8" maxX="34" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Event in2" />
-<TGConnectingPoint num="0" id="6896" />
+<infoparam name="Primitive port" value="Channel cwa_out" />
+<TGConnectingPoint num="0" id="6820" />
 <extraparam>
-<Prop commName="in2" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="cwa_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1202" id="6923" >
-<father id="6951" num="6" />
-<cdparam x="368" y="405" />
+<SUBCOMPONENT type="1202" id="6847" >
+<father id="6951" num="2" />
+<cdparam x="370" y="475" />
 <sizeparam width="42" height="40" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="46" minY="0" maxY="106" />
-<infoparam name="Primitive component" value="X_cwa" />
-<TGConnectingPoint num="0" id="6915" />
-<TGConnectingPoint num="1" id="6916" />
-<TGConnectingPoint num="2" id="6917" />
-<TGConnectingPoint num="3" id="6918" />
-<TGConnectingPoint num="4" id="6919" />
-<TGConnectingPoint num="5" id="6920" />
-<TGConnectingPoint num="6" id="6921" />
-<TGConnectingPoint num="7" id="6922" />
+<infoparam name="Primitive component" value="F_cwa" />
+<TGConnectingPoint num="0" id="6839" />
+<TGConnectingPoint num="1" id="6840" />
+<TGConnectingPoint num="2" id="6841" />
+<TGConnectingPoint num="3" id="6842" />
+<TGConnectingPoint num="4" id="6843" />
+<TGConnectingPoint num="5" id="6844" />
+<TGConnectingPoint num="6" id="6845" />
+<TGConnectingPoint num="7" id="6846" />
 <extraparam>
 <Attribute access="2" id="size" value="" type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="6908" >
-<father id="6923" num="0" />
-<cdparam x="402" y="425" />
+<SUBCOMPONENT type="1203" id="6832" >
+<father id="6847" num="0" />
+<cdparam x="362" y="485" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-8" maxX="34" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Channel cwa_out" />
-<TGConnectingPoint num="0" id="6907" />
+<infoparam name="Primitive port" value="Event in2" />
+<TGConnectingPoint num="0" id="6831" />
 <extraparam>
-<Prop commName="cwa_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in2" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="6910" >
-<father id="6923" num="1" />
-<cdparam x="381" y="437" />
+<SUBCOMPONENT type="1203" id="6834" >
+<father id="6847" num="1" />
+<cdparam x="362" y="468" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-8" maxX="34" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Request r_cwa" />
-<TGConnectingPoint num="0" id="6909" />
+<infoparam name="Primitive port" value="Event in1" />
+<TGConnectingPoint num="0" id="6833" />
 <extraparam>
-<Prop commName="r_cwa" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="in1" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15739,40 +15766,144 @@ sequence diagram.
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="6912" >
-<father id="6923" num="2" />
-<cdparam x="360" y="413" />
+<SUBCOMPONENT type="1203" id="6836" >
+<father id="6847" num="2" />
+<cdparam x="382" y="467" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-8" maxX="34" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Channel in1" />
-<TGConnectingPoint num="0" id="6911" />
+<infoparam name="Primitive port" value="Request r_cwa" />
+<TGConnectingPoint num="0" id="6835" />
 <extraparam>
-<Prop commName="in1" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="r_cwa" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
-<SUBCOMPONENT type="1203" id="6914" >
-<father id="6923" num="3" />
-<cdparam x="360" y="430" />
+<SUBCOMPONENT type="1203" id="6838" >
+<father id="6847" num="3" />
+<cdparam x="404" y="476" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-8" maxX="34" minY="-8" maxY="32" />
-<infoparam name="Primitive port" value="Channel in2" />
-<TGConnectingPoint num="0" id="6913" />
+<infoparam name="Primitive port" value="Event cwa_out" />
+<TGConnectingPoint num="0" id="6837" />
 <extraparam>
-<Prop commName="in2" commType="0" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="cwa_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 </extraparam>
 </SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="6866" >
+<father id="6951" num="3" />
+<cdparam x="333" y="406" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="78" minY="-10" maxY="136" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="6848" />
+<TGConnectingPoint num="1" id="6849" />
+<TGConnectingPoint num="2" id="6850" />
+<TGConnectingPoint num="3" id="6851" />
+<TGConnectingPoint num="4" id="6852" />
+<TGConnectingPoint num="5" id="6853" />
+<TGConnectingPoint num="6" id="6854" />
+<TGConnectingPoint num="7" id="6855" />
+<TGConnectingPoint num="8" id="6856" />
+<TGConnectingPoint num="9" id="6857" />
+<TGConnectingPoint num="10" id="6858" />
+<TGConnectingPoint num="11" id="6859" />
+<TGConnectingPoint num="12" id="6860" />
+<TGConnectingPoint num="13" id="6861" />
+<TGConnectingPoint num="14" id="6862" />
+<TGConnectingPoint num="15" id="6863" />
+<TGConnectingPoint num="16" id="6864" />
+<TGConnectingPoint num="17" id="6865" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="6885" >
+<father id="6951" num="4" />
+<cdparam x="333" y="385" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="78" minY="-10" maxY="136" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="6867" />
+<TGConnectingPoint num="1" id="6868" />
+<TGConnectingPoint num="2" id="6869" />
+<TGConnectingPoint num="3" id="6870" />
+<TGConnectingPoint num="4" id="6871" />
+<TGConnectingPoint num="5" id="6872" />
+<TGConnectingPoint num="6" id="6873" />
+<TGConnectingPoint num="7" id="6874" />
+<TGConnectingPoint num="8" id="6875" />
+<TGConnectingPoint num="9" id="6876" />
+<TGConnectingPoint num="10" id="6877" />
+<TGConnectingPoint num="11" id="6878" />
+<TGConnectingPoint num="12" id="6879" />
+<TGConnectingPoint num="13" id="6880" />
+<TGConnectingPoint num="14" id="6881" />
+<TGConnectingPoint num="15" id="6882" />
+<TGConnectingPoint num="16" id="6883" />
+<TGConnectingPoint num="17" id="6884" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="6904" >
+<father id="6951" num="5" />
+<cdparam x="333" y="438" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="78" minY="-10" maxY="136" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="6886" />
+<TGConnectingPoint num="1" id="6887" />
+<TGConnectingPoint num="2" id="6888" />
+<TGConnectingPoint num="3" id="6889" />
+<TGConnectingPoint num="4" id="6890" />
+<TGConnectingPoint num="5" id="6891" />
+<TGConnectingPoint num="6" id="6892" />
+<TGConnectingPoint num="7" id="6893" />
+<TGConnectingPoint num="8" id="6894" />
+<TGConnectingPoint num="9" id="6895" />
+<TGConnectingPoint num="10" id="6896" />
+<TGConnectingPoint num="11" id="6897" />
+<TGConnectingPoint num="12" id="6898" />
+<TGConnectingPoint num="13" id="6899" />
+<TGConnectingPoint num="14" id="6900" />
+<TGConnectingPoint num="15" id="6901" />
+<TGConnectingPoint num="16" id="6902" />
+<TGConnectingPoint num="17" id="6903" />
+</SUBCOMPONENT>
+<SUBCOMPONENT type="1201" id="6923" >
+<father id="6951" num="6" />
+<cdparam x="333" y="438" />
+<sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-10" maxX="78" minY="-10" maxY="136" />
+<infoparam name="Composite port" value="" />
+<TGConnectingPoint num="0" id="6905" />
+<TGConnectingPoint num="1" id="6906" />
+<TGConnectingPoint num="2" id="6907" />
+<TGConnectingPoint num="3" id="6908" />
+<TGConnectingPoint num="4" id="6909" />
+<TGConnectingPoint num="5" id="6910" />
+<TGConnectingPoint num="6" id="6911" />
+<TGConnectingPoint num="7" id="6912" />
+<TGConnectingPoint num="8" id="6913" />
+<TGConnectingPoint num="9" id="6914" />
+<TGConnectingPoint num="10" id="6915" />
+<TGConnectingPoint num="11" id="6916" />
+<TGConnectingPoint num="12" id="6917" />
+<TGConnectingPoint num="13" id="6918" />
+<TGConnectingPoint num="14" id="6919" />
+<TGConnectingPoint num="15" id="6920" />
+<TGConnectingPoint num="16" id="6921" />
+<TGConnectingPoint num="17" id="6922" />
+</SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6942" >
 <father id="6951" num="7" />
 <cdparam x="421" y="438" />
@@ -15820,11 +15951,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1202" id="6966" >
 <father id="7066" num="0" />
-<cdparam x="712" y="372" />
-<sizeparam width="50" height="43" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="713" y="414" />
+<sizeparam width="47" height="43" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="40" minY="0" maxY="107" />
-<infoparam name="Primitive component" value="X_sum" />
+<cdrectangleparam minX="0" maxX="43" minY="0" maxY="107" />
+<infoparam name="Primitive component" value="F_sum" />
 <TGConnectingPoint num="0" id="6958" />
 <TGConnectingPoint num="1" id="6959" />
 <TGConnectingPoint num="2" id="6960" />
@@ -15839,14 +15970,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6953" >
 <father id="6966" num="0" />
-<cdparam x="725" y="407" />
+<cdparam x="752" y="427" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="35" />
-<infoparam name="Primitive port" value="Request r_sum" />
+<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="35" />
+<infoparam name="Primitive port" value="Event sum_out" />
 <TGConnectingPoint num="0" id="6952" />
 <extraparam>
-<Prop commName="r_sum" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="sum_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15856,15 +15987,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6955" >
 <father id="6966" num="1" />
-<cdparam x="704" y="386" />
+<cdparam x="705" y="427" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="35" />
-<infoparam name="Primitive port" value="Channel in" />
+<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="35" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="6954" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15873,15 +16004,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="6957" >
 <father id="6966" num="2" />
-<cdparam x="754" y="390" />
+<cdparam x="725" y="406" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="35" />
-<infoparam name="Primitive port" value="Channel sum_out" />
+<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="35" />
+<infoparam name="Primitive port" value="Request r_sum" />
 <TGConnectingPoint num="0" id="6956" />
 <extraparam>
-<Prop commName="sum_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="r_sum" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -15890,7 +16021,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="6985" >
 <father id="7066" num="1" />
-<cdparam x="683" y="410" />
+<cdparam x="773" y="431" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -15916,7 +16047,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="7004" >
 <father id="7066" num="2" />
-<cdparam x="773" y="410" />
+<cdparam x="683" y="431" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -15942,7 +16073,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="7023" >
 <father id="7066" num="3" />
-<cdparam x="683" y="431" />
+<cdparam x="773" y="410" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -15968,7 +16099,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="7042" >
 <father id="7066" num="4" />
-<cdparam x="773" y="431" />
+<cdparam x="683" y="410" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="80" minY="-10" maxY="140" />
@@ -15994,11 +16125,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="7057" >
 <father id="7066" num="5" />
-<cdparam x="713" y="414" />
-<sizeparam width="47" height="43" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="712" y="372" />
+<sizeparam width="50" height="43" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="43" minY="0" maxY="107" />
-<infoparam name="Primitive component" value="F_sum" />
+<cdrectangleparam minX="0" maxX="40" minY="0" maxY="107" />
+<infoparam name="Primitive component" value="X_sum" />
 <TGConnectingPoint num="0" id="7049" />
 <TGConnectingPoint num="1" id="7050" />
 <TGConnectingPoint num="2" id="7051" />
@@ -16013,15 +16144,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7044" >
 <father id="7057" num="0" />
-<cdparam x="725" y="406" />
+<cdparam x="754" y="390" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="35" />
-<infoparam name="Primitive port" value="Request r_sum" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="35" />
+<infoparam name="Primitive port" value="Channel sum_out" />
 <TGConnectingPoint num="0" id="7043" />
 <extraparam>
-<Prop commName="r_sum" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="sum_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16030,15 +16161,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7046" >
 <father id="7057" num="1" />
-<cdparam x="705" y="427" />
+<cdparam x="704" y="386" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="35" />
-<infoparam name="Primitive port" value="Event in" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="35" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="7045" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16047,14 +16178,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7048" >
 <father id="7057" num="2" />
-<cdparam x="752" y="427" />
+<cdparam x="725" y="407" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="35" />
-<infoparam name="Primitive port" value="Event sum_out" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="35" />
+<infoparam name="Primitive port" value="Request r_sum" />
 <TGConnectingPoint num="0" id="7047" />
 <extraparam>
-<Prop commName="sum_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="r_sum" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16086,15 +16217,15 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="7068" >
 <father id="7083" num="0" />
-<cdparam x="821" y="431" />
+<cdparam x="821" y="410" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Event in" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="7067" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16103,15 +16234,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7070" >
 <father id="7083" num="1" />
-<cdparam x="891" y="410" />
+<cdparam x="891" y="432" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Channel res_out" />
+<infoparam name="Primitive port" value="Event res_out" />
 <TGConnectingPoint num="0" id="7069" />
 <extraparam>
-<Prop commName="res_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="res_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16120,15 +16251,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7072" >
 <father id="7083" num="2" />
-<cdparam x="891" y="432" />
+<cdparam x="891" y="410" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Event res_out" />
+<infoparam name="Primitive port" value="Channel res_out" />
 <TGConnectingPoint num="0" id="7071" />
 <extraparam>
-<Prop commName="res_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="res_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16137,15 +16268,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7074" >
 <father id="7083" num="3" />
-<cdparam x="821" y="410" />
+<cdparam x="821" y="431" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Channel in" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="7073" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16173,11 +16304,11 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1202" id="7098" >
 <father id="7198" num="0" />
-<cdparam x="971" y="388" />
-<sizeparam width="50" height="38" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="978" y="456" />
+<sizeparam width="47" height="41" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="58" minY="0" maxY="128" />
-<infoparam name="Primitive component" value="X_dma1" />
+<cdrectangleparam minX="0" maxX="61" minY="0" maxY="125" />
+<infoparam name="Primitive component" value="F_dma1" />
 <TGConnectingPoint num="0" id="7090" />
 <TGConnectingPoint num="1" id="7091" />
 <TGConnectingPoint num="2" id="7092" />
@@ -16192,14 +16323,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7085" >
 <father id="7098" num="0" />
-<cdparam x="984" y="418" />
+<cdparam x="1017" y="461" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="30" />
-<infoparam name="Primitive port" value="Request r_dma1" />
+<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="33" />
+<infoparam name="Primitive port" value="Event dma1_out" />
 <TGConnectingPoint num="0" id="7084" />
 <extraparam>
-<Prop commName="r_dma1" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="dma1_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16209,15 +16340,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7087" >
 <father id="7098" num="1" />
-<cdparam x="963" y="400" />
+<cdparam x="970" y="465" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="30" />
-<infoparam name="Primitive port" value="Channel in" />
+<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="33" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="7086" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16226,15 +16357,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7089" >
 <father id="7098" num="2" />
-<cdparam x="1013" y="401" />
+<cdparam x="996" y="448" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="30" />
-<infoparam name="Primitive port" value="Channel dma1_out" />
+<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="33" />
+<infoparam name="Primitive port" value="Request r_dma1" />
 <TGConnectingPoint num="0" id="7088" />
 <extraparam>
-<Prop commName="dma1_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="r_dma1" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16243,7 +16374,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="7117" >
 <father id="7198" num="1" />
-<cdparam x="936" y="405" />
+<cdparam x="1044" y="455" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="98" minY="-10" maxY="156" />
@@ -16269,7 +16400,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="7136" >
 <father id="7198" num="2" />
-<cdparam x="1044" y="396" />
+<cdparam x="936" y="432" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="98" minY="-10" maxY="156" />
@@ -16295,7 +16426,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="7155" >
 <father id="7198" num="3" />
-<cdparam x="936" y="432" />
+<cdparam x="1044" y="396" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="98" minY="-10" maxY="156" />
@@ -16321,7 +16452,7 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1201" id="7174" >
 <father id="7198" num="4" />
-<cdparam x="1044" y="455" />
+<cdparam x="936" y="405" />
 <sizeparam width="20" height="20" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="98" minY="-10" maxY="156" />
@@ -16347,11 +16478,11 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1202" id="7189" >
 <father id="7198" num="5" />
-<cdparam x="978" y="456" />
-<sizeparam width="47" height="41" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="971" y="388" />
+<sizeparam width="50" height="38" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="0" maxX="61" minY="0" maxY="125" />
-<infoparam name="Primitive component" value="F_dma1" />
+<cdrectangleparam minX="0" maxX="58" minY="0" maxY="128" />
+<infoparam name="Primitive component" value="X_dma1" />
 <TGConnectingPoint num="0" id="7181" />
 <TGConnectingPoint num="1" id="7182" />
 <TGConnectingPoint num="2" id="7183" />
@@ -16366,15 +16497,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7176" >
 <father id="7189" num="0" />
-<cdparam x="996" y="448" />
+<cdparam x="1013" y="401" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="33" />
-<infoparam name="Primitive port" value="Request r_dma1" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="30" />
+<infoparam name="Primitive port" value="Channel dma1_out" />
 <TGConnectingPoint num="0" id="7175" />
 <extraparam>
-<Prop commName="r_dma1" commType="2" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="dma1_out" commType="0" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16383,15 +16514,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7178" >
 <father id="7189" num="1" />
-<cdparam x="970" y="465" />
+<cdparam x="963" y="400" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="33" />
-<infoparam name="Primitive port" value="Event in" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="30" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="7177" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16400,14 +16531,14 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7180" >
 <father id="7189" num="2" />
-<cdparam x="1017" y="461" />
+<cdparam x="984" y="418" />
 <sizeparam width="16" height="16" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
-<cdrectangleparam minX="-8" maxX="39" minY="-8" maxY="33" />
-<infoparam name="Primitive port" value="Event dma1_out" />
+<cdrectangleparam minX="-8" maxX="42" minY="-8" maxY="30" />
+<infoparam name="Primitive port" value="Request r_dma1" />
 <TGConnectingPoint num="0" id="7179" />
 <extraparam>
-<Prop commName="dma1_out" commType="1" origin="true" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Prop commName="r_dma1" commType="2" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
 <Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16459,15 +16590,15 @@ sequence diagram.
 </COMPONENT>
 <SUBCOMPONENT type="1203" id="7209" >
 <father id="7220" num="0" />
-<cdparam x="1113" y="447" />
+<cdparam x="1113" y="409" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Event in" />
+<infoparam name="Primitive port" value="Channel in" />
 <TGConnectingPoint num="0" id="7208" />
 <extraparam>
-<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="1" typeOther="" />
+<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -16476,15 +16607,15 @@ sequence diagram.
 </SUBCOMPONENT>
 <SUBCOMPONENT type="1203" id="7211" >
 <father id="7220" num="1" />
-<cdparam x="1113" y="409" />
+<cdparam x="1113" y="447" />
 <sizeparam width="21" height="21" minWidth="1" minHeight="1" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="-10" maxX="60" minY="-10" maxY="46" />
-<infoparam name="Primitive port" value="Channel in" />
+<infoparam name="Primitive port" value="Event in" />
 <TGConnectingPoint num="0" id="7210" />
 <extraparam>
-<Prop commName="in" commType="0" origin="false" finite="false" blocking="false" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
-<Type type="0" typeOther="" />
+<Prop commName="in" commType="1" origin="false" finite="false" blocking="true" maxSamples="8" widthSamples="4" isLossy="false" isPrex="false" isPostex="false" lossPercentage="0" maxNbOfLoss="0" dataFlowType="" associatedEvent="" checkConf="false" checkConfStatus="0" checkAuth="false" checkWeakAuthStatus="0" checkStrongAuthStatus="0" />
+<Type type="1" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
 <Type type="0" typeOther="" />
@@ -17952,114 +18083,18 @@ sequence diagram.
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_fft" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1007" id="7523" >
-<cdparam x="440" y="222" />
-<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="r_fft(size)" />
-<TGConnectingPoint num="0" id="7521" />
-<TGConnectingPoint num="1" id="7522" />
-<extraparam>
-<Data requestName="r_fft" nbOfParams="5" />
-<Param index="0" value="size" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1001" id="7525" >
-<cdparam x="463" y="351" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7524" />
-</COMPONENT>
-
-<COMPONENT type="1008" id="7528" >
-<cdparam x="432" y="292" />
-<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="fft_out(size)" />
-<TGConnectingPoint num="0" id="7526" />
-<TGConnectingPoint num="1" id="7527" />
-<extraparam>
-<Data eventName="fft_out" nbOfParams="5" />
-<Param index="0" value="size" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1010" id="7531" >
-<cdparam x="444" y="163" />
-<sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="in(size) " />
-<TGConnectingPoint num="0" id="7529" />
-<TGConnectingPoint num="1" id="7530" />
-<extraparam>
-<Data eventName="in" nbOfParams="5" />
-<Param index="0" value="size" />
-</extraparam>
-</COMPONENT>
-
-<COMPONENT type="1000" id="7533" >
-<cdparam x="466" y="103" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7532" />
-</COMPONENT>
-
-<CONNECTOR type="115" id="7534" >
-<cdparam x="473" y="123" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to wait event" value="null" />
-<P1  x="473" y="123" id="7532" />
-<P2  x="473" y="158" id="7529" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="7535" >
-<cdparam x="473" y="317" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="473" y="317" id="7527" />
-<P2  x="473" y="346" id="7524" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="7536" >
-<cdparam x="473" y="188" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to send request" value="null" />
-<P1  x="473" y="188" id="7530" />
-<P2  x="473" y="217" id="7521" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="7537" >
-<cdparam x="481" y="244" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to send event" value="null" />
-<P1  x="473" y="247" id="7522" />
-<P2  x="473" y="287" id="7526" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-
-</TMLActivityDiagramPanel>
-
 <TMLActivityDiagramPanel name="X_fft" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="7541" >
+<COMPONENT type="1013" id="7524" >
 <cdparam x="539" y="207" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="7539" />
-<TGConnectingPoint num="1" id="7540" />
+<TGConnectingPoint num="0" id="7522" />
+<TGConnectingPoint num="1" id="7523" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="7538" >
-<father id="7541" num="0" />
+<SUBCOMPONENT type="-1" id="7521" >
+<father id="7524" num="0" />
 <cdparam x="554" y="227" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -18067,238 +18102,237 @@ sequence diagram.
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1001" id="7543" >
+<COMPONENT type="1001" id="7526" >
 <cdparam x="535" y="335" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7542" />
+<TGConnectingPoint num="0" id="7525" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="7546" >
+<COMPONENT type="1006" id="7529" >
 <cdparam x="503" y="273" />
 <sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="fft_out(size)" />
-<TGConnectingPoint num="0" id="7544" />
-<TGConnectingPoint num="1" id="7545" />
+<TGConnectingPoint num="0" id="7527" />
+<TGConnectingPoint num="1" id="7528" />
 <extraparam>
 <Data channelName="fft_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="7549" >
+<COMPONENT type="1009" id="7532" >
 <cdparam x="515" y="153" />
 <sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="in(size) " />
-<TGConnectingPoint num="0" id="7547" />
-<TGConnectingPoint num="1" id="7548" />
+<TGConnectingPoint num="0" id="7530" />
+<TGConnectingPoint num="1" id="7531" />
 <extraparam>
 <Data channelName="in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="7552" >
+<COMPONENT type="1034" id="7535" >
 <cdparam x="489" y="100" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="7550" />
-<TGConnectingPoint num="1" id="7551" />
+<TGConnectingPoint num="0" id="7533" />
+<TGConnectingPoint num="1" id="7534" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7554" >
+<COMPONENT type="1000" id="7537" >
 <cdparam x="538" y="57" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7553" />
+<TGConnectingPoint num="0" id="7536" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7555" >
+<CONNECTOR type="115" id="7538" >
 <cdparam x="545" y="77" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to read args" value="null" />
-<P1  x="545" y="77" id="7553" />
-<P2  x="545" y="95" id="7550" />
+<P1  x="545" y="77" id="7536" />
+<P2  x="545" y="95" id="7533" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7556" >
+<CONNECTOR type="115" id="7539" >
 <cdparam x="545" y="125" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read args to read channel" value="null" />
-<P1  x="545" y="125" id="7551" />
-<P2  x="544" y="148" id="7547" />
+<P1  x="545" y="125" id="7534" />
+<P2  x="544" y="148" id="7530" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7557" >
+<CONNECTOR type="115" id="7540" >
 <cdparam x="544" y="178" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to execI" value="null" />
-<P1  x="544" y="178" id="7548" />
-<P2  x="544" y="202" id="7539" />
+<P1  x="544" y="178" id="7531" />
+<P2  x="544" y="202" id="7522" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7558" >
+<CONNECTOR type="115" id="7541" >
 <cdparam x="544" y="242" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="544" y="242" id="7540" />
-<P2  x="544" y="268" id="7544" />
+<P1  x="544" y="242" id="7523" />
+<P2  x="544" y="268" id="7527" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7559" >
+<CONNECTOR type="115" id="7542" >
 <cdparam x="544" y="298" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="544" y="298" id="7545" />
-<P2  x="545" y="330" id="7542" />
+<P1  x="544" y="298" id="7528" />
+<P2  x="545" y="330" id="7525" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_dma" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1007" id="7562" >
-<cdparam x="380" y="223" />
-<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="F_fft" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1007" id="7545" >
+<cdparam x="440" y="222" />
+<sizeparam width="67" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="r_dma(size)" />
-<TGConnectingPoint num="0" id="7560" />
-<TGConnectingPoint num="1" id="7561" />
-<breakpoint />
+<infoparam name="send request" value="r_fft(size)" />
+<TGConnectingPoint num="0" id="7543" />
+<TGConnectingPoint num="1" id="7544" />
 <extraparam>
-<Data requestName="r_dma" nbOfParams="5" />
+<Data requestName="r_fft" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="7564" >
-<cdparam x="410" y="352" />
+<COMPONENT type="1001" id="7547" >
+<cdparam x="463" y="351" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7563" />
+<TGConnectingPoint num="0" id="7546" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="7567" >
-<cdparam x="372" y="293" />
-<sizeparam width="97" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="7550" >
+<cdparam x="432" y="292" />
+<sizeparam width="83" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="dma_out(size)" />
-<TGConnectingPoint num="0" id="7565" />
-<TGConnectingPoint num="1" id="7566" />
+<infoparam name="send event" value="fft_out(size)" />
+<TGConnectingPoint num="0" id="7548" />
+<TGConnectingPoint num="1" id="7549" />
 <extraparam>
-<Data eventName="dma_out" nbOfParams="5" />
+<Data eventName="fft_out" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="7570" >
-<cdparam x="391" y="164" />
+<COMPONENT type="1010" id="7553" >
+<cdparam x="444" y="163" />
 <sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="wait event" value="in(size) " />
-<TGConnectingPoint num="0" id="7568" />
-<TGConnectingPoint num="1" id="7569" />
+<TGConnectingPoint num="0" id="7551" />
+<TGConnectingPoint num="1" id="7552" />
 <extraparam>
 <Data eventName="in" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7572" >
-<cdparam x="413" y="104" />
+<COMPONENT type="1000" id="7555" >
+<cdparam x="466" y="103" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7571" />
+<TGConnectingPoint num="0" id="7554" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7573" >
-<cdparam x="420" y="124" />
+<CONNECTOR type="115" id="7556" >
+<cdparam x="473" y="123" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to wait event" value="null" />
-<P1  x="420" y="124" id="7571" />
-<P2  x="420" y="159" id="7568" />
+<P1  x="473" y="123" id="7554" />
+<P2  x="473" y="158" id="7551" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7574" >
-<cdparam x="420" y="318" />
+<CONNECTOR type="115" id="7557" >
+<cdparam x="473" y="317" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to stop state" value="null" />
-<P1  x="420" y="318" id="7566" />
-<P2  x="420" y="347" id="7563" />
+<P1  x="473" y="317" id="7549" />
+<P2  x="473" y="346" id="7546" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7575" >
-<cdparam x="420" y="189" />
+<CONNECTOR type="115" id="7558" >
+<cdparam x="473" y="188" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to send request" value="null" />
-<P1  x="420" y="189" id="7569" />
-<P2  x="420" y="218" id="7560" />
+<P1  x="473" y="188" id="7552" />
+<P2  x="473" y="217" id="7543" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7576" >
-<cdparam x="428" y="245" />
+<CONNECTOR type="115" id="7559" >
+<cdparam x="481" y="244" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to send event" value="null" />
-<P1  x="420" y="248" id="7561" />
-<P2  x="420" y="288" id="7565" />
+<P1  x="473" y="247" id="7544" />
+<P2  x="473" y="287" id="7548" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_dma" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1001" id="7578" >
+<COMPONENT type="1001" id="7561" >
 <cdparam x="397" y="328" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7577" />
+<TGConnectingPoint num="0" id="7560" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="7581" >
+<COMPONENT type="1006" id="7564" >
 <cdparam x="358" y="266" />
 <sizeparam width="97" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="dma_out(size)" />
-<TGConnectingPoint num="0" id="7579" />
-<TGConnectingPoint num="1" id="7580" />
+<TGConnectingPoint num="0" id="7562" />
+<TGConnectingPoint num="1" id="7563" />
 <extraparam>
 <Data channelName="dma_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1013" id="7585" >
+<COMPONENT type="1013" id="7568" >
 <cdparam x="401" y="200" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="7583" />
-<TGConnectingPoint num="1" id="7584" />
+<TGConnectingPoint num="0" id="7566" />
+<TGConnectingPoint num="1" id="7567" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="7582" >
-<father id="7585" num="0" />
+<SUBCOMPONENT type="-1" id="7565" >
+<father id="7568" num="0" />
 <cdparam x="416" y="220" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -18306,193 +18340,194 @@ sequence diagram.
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1009" id="7588" >
+<COMPONENT type="1009" id="7571" >
 <cdparam x="377" y="146" />
 <sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="in(size) " />
-<TGConnectingPoint num="0" id="7586" />
-<TGConnectingPoint num="1" id="7587" />
+<TGConnectingPoint num="0" id="7569" />
+<TGConnectingPoint num="1" id="7570" />
 <extraparam>
 <Data channelName="in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="7591" >
+<COMPONENT type="1034" id="7574" >
 <cdparam x="351" y="93" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="7589" />
-<TGConnectingPoint num="1" id="7590" />
+<TGConnectingPoint num="0" id="7572" />
+<TGConnectingPoint num="1" id="7573" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7593" >
+<COMPONENT type="1000" id="7576" >
 <cdparam x="400" y="50" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7592" />
+<TGConnectingPoint num="0" id="7575" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7594" >
+<CONNECTOR type="115" id="7577" >
 <cdparam x="407" y="70" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to read args" value="null" />
-<P1  x="407" y="70" id="7592" />
-<P2  x="407" y="88" id="7589" />
+<P1  x="407" y="70" id="7575" />
+<P2  x="407" y="88" id="7572" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7595" >
+<CONNECTOR type="115" id="7578" >
 <cdparam x="407" y="118" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read args to read channel" value="null" />
-<P1  x="407" y="118" id="7590" />
-<P2  x="406" y="141" id="7586" />
+<P1  x="407" y="118" id="7573" />
+<P2  x="406" y="141" id="7569" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7596" >
+<CONNECTOR type="115" id="7579" >
 <cdparam x="406" y="171" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to execI" value="null" />
-<P1  x="406" y="171" id="7587" />
-<P2  x="406" y="195" id="7583" />
+<P1  x="406" y="171" id="7570" />
+<P2  x="406" y="195" id="7566" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7597" >
+<CONNECTOR type="115" id="7580" >
 <cdparam x="406" y="235" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="406" y="235" id="7584" />
-<P2  x="406" y="261" id="7579" />
+<P1  x="406" y="235" id="7567" />
+<P2  x="406" y="261" id="7562" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7598" >
+<CONNECTOR type="115" id="7581" >
 <cdparam x="406" y="291" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="406" y="291" id="7580" />
-<P2  x="407" y="323" id="7577" />
+<P1  x="406" y="291" id="7563" />
+<P2  x="407" y="323" id="7560" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_cwm" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1007" id="7601" >
-<cdparam x="454" y="238" />
-<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="F_dma" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1007" id="7584" >
+<cdparam x="380" y="223" />
+<sizeparam width="81" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="r_cwm(size)" />
-<TGConnectingPoint num="0" id="7599" />
-<TGConnectingPoint num="1" id="7600" />
+<infoparam name="send request" value="r_dma(size)" />
+<TGConnectingPoint num="0" id="7582" />
+<TGConnectingPoint num="1" id="7583" />
+<breakpoint />
 <extraparam>
-<Data requestName="r_cwm" nbOfParams="5" />
+<Data requestName="r_dma" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="7603" >
-<cdparam x="483" y="367" />
+<COMPONENT type="1001" id="7586" >
+<cdparam x="410" y="352" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7602" />
+<TGConnectingPoint num="0" id="7585" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="7606" >
-<cdparam x="448" y="308" />
-<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="7589" >
+<cdparam x="372" y="293" />
+<sizeparam width="97" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="cwm_out(size)" />
-<TGConnectingPoint num="0" id="7604" />
-<TGConnectingPoint num="1" id="7605" />
+<infoparam name="send event" value="dma_out(size)" />
+<TGConnectingPoint num="0" id="7587" />
+<TGConnectingPoint num="1" id="7588" />
 <extraparam>
-<Data eventName="cwm_out" nbOfParams="5" />
+<Data eventName="dma_out" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="7609" >
-<cdparam x="466" y="179" />
-<sizeparam width="55" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="7592" >
+<cdparam x="391" y="164" />
+<sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="wait event" value="in(size) " />
-<TGConnectingPoint num="0" id="7607" />
-<TGConnectingPoint num="1" id="7608" />
+<TGConnectingPoint num="0" id="7590" />
+<TGConnectingPoint num="1" id="7591" />
 <extraparam>
 <Data eventName="in" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7611" >
-<cdparam x="486" y="119" />
+<COMPONENT type="1000" id="7594" >
+<cdparam x="413" y="104" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7610" />
+<TGConnectingPoint num="0" id="7593" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7612" >
-<cdparam x="493" y="139" />
+<CONNECTOR type="115" id="7595" >
+<cdparam x="420" y="124" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to wait event" value="null" />
-<P1  x="493" y="139" id="7610" />
-<P2  x="493" y="174" id="7607" />
+<P1  x="420" y="124" id="7593" />
+<P2  x="420" y="159" id="7590" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7613" >
-<cdparam x="493" y="333" />
+<CONNECTOR type="115" id="7596" >
+<cdparam x="420" y="318" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to stop state" value="null" />
-<P1  x="493" y="333" id="7605" />
-<P2  x="493" y="362" id="7602" />
+<P1  x="420" y="318" id="7588" />
+<P2  x="420" y="347" id="7585" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7614" >
-<cdparam x="493" y="204" />
+<CONNECTOR type="115" id="7597" >
+<cdparam x="420" y="189" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to send request" value="null" />
-<P1  x="493" y="204" id="7608" />
-<P2  x="493" y="233" id="7599" />
+<P1  x="420" y="189" id="7591" />
+<P2  x="420" y="218" id="7582" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7615" >
-<cdparam x="501" y="260" />
+<CONNECTOR type="115" id="7598" >
+<cdparam x="428" y="245" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to send event" value="null" />
-<P1  x="493" y="263" id="7600" />
-<P2  x="493" y="303" id="7604" />
+<P1  x="420" y="248" id="7583" />
+<P2  x="420" y="288" id="7587" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_cwm" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="7619" >
+<COMPONENT type="1013" id="7602" >
 <cdparam x="591" y="239" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="7617" />
-<TGConnectingPoint num="1" id="7618" />
+<TGConnectingPoint num="0" id="7600" />
+<TGConnectingPoint num="1" id="7601" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="7616" >
-<father id="7619" num="0" />
+<SUBCOMPONENT type="-1" id="7599" >
+<father id="7602" num="0" />
 <cdparam x="606" y="259" />
 <sizeparam width="87" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -18500,265 +18535,220 @@ sequence diagram.
 <infoparam name="value of the delay" value="10 * size + 10" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1001" id="7621" >
+<COMPONENT type="1001" id="7604" >
 <cdparam x="587" y="367" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7620" />
+<TGConnectingPoint num="0" id="7603" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="7624" >
+<COMPONENT type="1006" id="7607" >
 <cdparam x="548" y="305" />
 <sizeparam width="97" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="cwm_out(size)" />
-<TGConnectingPoint num="0" id="7622" />
-<TGConnectingPoint num="1" id="7623" />
+<TGConnectingPoint num="0" id="7605" />
+<TGConnectingPoint num="1" id="7606" />
 <extraparam>
 <Data channelName="cwm_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="7627" >
+<COMPONENT type="1009" id="7610" >
 <cdparam x="567" y="185" />
 <sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="in(size) " />
-<TGConnectingPoint num="0" id="7625" />
-<TGConnectingPoint num="1" id="7626" />
+<TGConnectingPoint num="0" id="7608" />
+<TGConnectingPoint num="1" id="7609" />
 <accessibility />
 <extraparam>
 <Data channelName="in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="7630" >
+<COMPONENT type="1034" id="7613" >
 <cdparam x="541" y="132" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="7628" />
-<TGConnectingPoint num="1" id="7629" />
+<TGConnectingPoint num="0" id="7611" />
+<TGConnectingPoint num="1" id="7612" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7632" >
+<COMPONENT type="1000" id="7615" >
 <cdparam x="590" y="89" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7631" />
+<TGConnectingPoint num="0" id="7614" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7633" >
+<CONNECTOR type="115" id="7616" >
 <cdparam x="597" y="109" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to read args" value="null" />
-<P1  x="597" y="109" id="7631" />
-<P2  x="597" y="127" id="7628" />
+<P1  x="597" y="109" id="7614" />
+<P2  x="597" y="127" id="7611" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7634" >
+<CONNECTOR type="115" id="7617" >
 <cdparam x="597" y="157" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read args to read channel" value="null" />
-<P1  x="597" y="157" id="7629" />
-<P2  x="596" y="180" id="7625" />
+<P1  x="597" y="157" id="7612" />
+<P2  x="596" y="180" id="7608" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7635" >
+<CONNECTOR type="115" id="7618" >
 <cdparam x="596" y="210" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to execI" value="null" />
-<P1  x="596" y="210" id="7626" />
-<P2  x="596" y="234" id="7617" />
+<P1  x="596" y="210" id="7609" />
+<P2  x="596" y="234" id="7600" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7636" >
+<CONNECTOR type="115" id="7619" >
 <cdparam x="596" y="274" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="596" y="274" id="7618" />
-<P2  x="596" y="300" id="7622" />
+<P1  x="596" y="274" id="7601" />
+<P2  x="596" y="300" id="7605" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7637" >
+<CONNECTOR type="115" id="7620" >
 <cdparam x="596" y="330" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="596" y="330" id="7623" />
-<P2  x="597" y="362" id="7620" />
+<P1  x="596" y="330" id="7606" />
+<P2  x="597" y="362" id="7603" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="X_cwa" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1009" id="7640" >
-<cdparam x="547" y="267" />
-<sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="F_cwm" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1007" id="7623" >
+<cdparam x="454" y="238" />
+<sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="read channel" value="in2(size) " />
-<TGConnectingPoint num="0" id="7638" />
-<TGConnectingPoint num="1" id="7639" />
+<infoparam name="send request" value="r_cwm(size)" />
+<TGConnectingPoint num="0" id="7621" />
+<TGConnectingPoint num="1" id="7622" />
 <extraparam>
-<Data channelName="in2" nbOfSamples="size" secPattern="" />
+<Data requestName="r_cwm" nbOfParams="5" />
+<Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1013" id="7644" >
-<cdparam x="574" y="317" />
-<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="7642" />
-<TGConnectingPoint num="1" id="7643" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="7641" >
-<father id="7644" num="0" />
-<cdparam x="589" y="337" />
-<sizeparam width="57" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
-<infoparam name="value of the delay" value="size + 10" />
-</SUBCOMPONENT>
-
-<COMPONENT type="1001" id="7646" >
-<cdparam x="568" y="436" />
+<COMPONENT type="1001" id="7625" >
+<cdparam x="483" y="367" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7645" />
-</COMPONENT>
-
-<COMPONENT type="1006" id="7649" >
-<cdparam x="531" y="375" />
-<sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="write channel" value="cwa_out(size)" />
-<TGConnectingPoint num="0" id="7647" />
-<TGConnectingPoint num="1" id="7648" />
-<extraparam>
-<Data channelName="cwa_out" nbOfSamples="size" secPattern="" />
-</extraparam>
+<TGConnectingPoint num="0" id="7624" />
 </COMPONENT>
 
-<COMPONENT type="1009" id="7652" >
-<cdparam x="547" y="232" />
-<sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="7628" >
+<cdparam x="448" y="308" />
+<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="read channel" value="in1(size) " />
-<TGConnectingPoint num="0" id="7650" />
-<TGConnectingPoint num="1" id="7651" />
+<infoparam name="send event" value="cwm_out(size)" />
+<TGConnectingPoint num="0" id="7626" />
+<TGConnectingPoint num="1" id="7627" />
 <extraparam>
-<Data channelName="in1" nbOfSamples="size" secPattern="" />
+<Data eventName="cwm_out" nbOfParams="5" />
+<Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="7655" >
-<cdparam x="525" y="179" />
-<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1010" id="7631" >
+<cdparam x="466" y="179" />
+<sizeparam width="55" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="7653" />
-<TGConnectingPoint num="1" id="7654" />
+<infoparam name="wait event" value="in(size) " />
+<TGConnectingPoint num="0" id="7629" />
+<TGConnectingPoint num="1" id="7630" />
 <extraparam>
-<Data nbOfParams="5" />
+<Data eventName="in" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7657" >
-<cdparam x="574" y="136" />
+<COMPONENT type="1000" id="7633" >
+<cdparam x="486" y="119" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7656" />
+<TGConnectingPoint num="0" id="7632" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7658" >
-<cdparam x="582" y="294" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to execI" value="null" />
-<P1  x="580" y="292" id="7639" />
-<P2  x="579" y="312" id="7642" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="7659" >
-<cdparam x="581" y="156" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to read args" value="null" />
-<P1  x="581" y="156" id="7656" />
-<P2  x="581" y="174" id="7653" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR>
-<CONNECTOR type="115" id="7660" >
-<cdparam x="581" y="204" />
+<CONNECTOR type="115" id="7634" >
+<cdparam x="493" y="139" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read args to read channel" value="null" />
-<P1  x="581" y="204" id="7654" />
-<P2  x="580" y="227" id="7650" />
+<infoparam name="connector from start state to wait event" value="null" />
+<P1  x="493" y="139" id="7632" />
+<P2  x="493" y="174" id="7629" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7661" >
-<cdparam x="577" y="343" />
+<CONNECTOR type="115" id="7635" >
+<cdparam x="493" y="333" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from execI to write channel" value="null" />
-<P1  x="579" y="352" id="7643" />
-<P2  x="578" y="370" id="7647" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="493" y="333" id="7627" />
+<P2  x="493" y="362" id="7624" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7662" >
-<cdparam x="577" y="399" />
+<CONNECTOR type="115" id="7636" >
+<cdparam x="493" y="204" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="578" y="400" id="7648" />
-<P2  x="578" y="431" id="7645" />
+<infoparam name="connector from wait event to send request" value="null" />
+<P1  x="493" y="204" id="7630" />
+<P2  x="493" y="233" id="7621" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7663" >
-<cdparam x="580" y="257" />
+<CONNECTOR type="115" id="7637" >
+<cdparam x="501" y="260" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from read channel to read channel" value="null" />
-<P1  x="580" y="257" id="7651" />
-<P2  x="580" y="262" id="7638" />
+<infoparam name="connector from send request to send event" value="null" />
+<P1  x="493" y="263" id="7622" />
+<P2  x="493" y="303" id="7626" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="F_cwa" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1016" id="7671" >
+<COMPONENT type="1016" id="7645" >
 <cdparam x="487" y="138" />
 <sizeparam width="150" height="5" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="sequence" value="null" />
-<TGConnectingPoint num="0" id="7665" />
-<TGConnectingPoint num="1" id="7666" />
-<TGConnectingPoint num="2" id="7667" />
-<TGConnectingPoint num="3" id="7668" />
-<TGConnectingPoint num="4" id="7669" />
-<TGConnectingPoint num="5" id="7670" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="7664" >
-<father id="7671" num="0" />
+<TGConnectingPoint num="0" id="7639" />
+<TGConnectingPoint num="1" id="7640" />
+<TGConnectingPoint num="2" id="7641" />
+<TGConnectingPoint num="3" id="7642" />
+<TGConnectingPoint num="4" id="7643" />
+<TGConnectingPoint num="5" id="7644" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="7638" >
+<father id="7645" num="0" />
 <cdparam x="641" y="145" />
 <sizeparam width="20" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -18766,39 +18756,39 @@ sequence diagram.
 <infoparam name="Sequence" value="&gt;&gt;" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1001" id="7673" >
+<COMPONENT type="1001" id="7647" >
 <cdparam x="437" y="323" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7672" />
+<TGConnectingPoint num="0" id="7646" />
 </COMPONENT>
 
-<COMPONENT type="1001" id="7675" >
+<COMPONENT type="1001" id="7649" >
 <cdparam x="356" y="319" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7674" />
+<TGConnectingPoint num="0" id="7648" />
 </COMPONENT>
 
-<COMPONENT type="1032" id="7683" >
+<COMPONENT type="1032" id="7657" >
 <cdparam x="342" y="208" />
 <sizeparam width="150" height="5" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="random sequence" value="null" />
-<TGConnectingPoint num="0" id="7677" />
-<TGConnectingPoint num="1" id="7678" />
-<TGConnectingPoint num="2" id="7679" />
-<TGConnectingPoint num="3" id="7680" />
-<TGConnectingPoint num="4" id="7681" />
-<TGConnectingPoint num="5" id="7682" />
-</COMPONENT>
-<SUBCOMPONENT type="-1" id="7676" >
-<father id="7683" num="0" />
+<TGConnectingPoint num="0" id="7651" />
+<TGConnectingPoint num="1" id="7652" />
+<TGConnectingPoint num="2" id="7653" />
+<TGConnectingPoint num="3" id="7654" />
+<TGConnectingPoint num="4" id="7655" />
+<TGConnectingPoint num="5" id="7656" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="7650" >
+<father id="7657" num="0" />
 <cdparam x="496" y="215" />
 <sizeparam width="20" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -18806,263 +18796,308 @@ sequence diagram.
 <infoparam name="Random sequence" value="&lt;&gt;" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1007" id="7686" >
+<COMPONENT type="1007" id="7660" >
 <cdparam x="625" y="206" />
 <sizeparam width="78" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="send request" value="r_cwa(size)" />
-<TGConnectingPoint num="0" id="7684" />
-<TGConnectingPoint num="1" id="7685" />
+<TGConnectingPoint num="0" id="7658" />
+<TGConnectingPoint num="1" id="7659" />
 <extraparam>
 <Data requestName="r_cwa" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="7688" >
+<COMPONENT type="1001" id="7662" >
 <cdparam x="654" y="335" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7687" />
+<TGConnectingPoint num="0" id="7661" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="7691" >
+<COMPONENT type="1008" id="7665" >
 <cdparam x="617" y="276" />
 <sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="send event" value="cwa_out(size)" />
-<TGConnectingPoint num="0" id="7689" />
-<TGConnectingPoint num="1" id="7690" />
+<TGConnectingPoint num="0" id="7663" />
+<TGConnectingPoint num="1" id="7664" />
 <extraparam>
 <Data eventName="cwa_out" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7693" >
+<COMPONENT type="1000" id="7667" >
 <cdparam x="555" y="80" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7692" />
+<TGConnectingPoint num="0" id="7666" />
 </COMPONENT>
 
-<COMPONENT type="1010" id="7696" >
+<COMPONENT type="1010" id="7670" >
 <cdparam x="333" y="259" />
 <sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="wait event" value="in1(size) " />
-<TGConnectingPoint num="0" id="7694" />
-<TGConnectingPoint num="1" id="7695" />
+<TGConnectingPoint num="0" id="7668" />
+<TGConnectingPoint num="1" id="7669" />
 <extraparam>
 <Data eventName="in1" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="7699" >
+<COMPONENT type="1010" id="7673" >
 <cdparam x="414" y="259" />
 <sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="wait event" value="in2(size) " />
-<TGConnectingPoint num="0" id="7697" />
-<TGConnectingPoint num="1" id="7698" />
+<TGConnectingPoint num="0" id="7671" />
+<TGConnectingPoint num="1" id="7672" />
 <extraparam>
 <Data eventName="in2" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<CONNECTOR type="115" id="7700" >
+<CONNECTOR type="115" id="7674" >
 <cdparam x="597" y="144" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from sequence to send request" value="null" />
-<P1  x="587" y="143" id="7669" />
-<P2  x="664" y="201" id="7684" />
+<P1  x="587" y="143" id="7643" />
+<P2  x="664" y="201" id="7658" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7701" >
+<CONNECTOR type="115" id="7675" >
 <cdparam x="522" y="144" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from sequence to random sequence" value="null" />
-<P1  x="512" y="143" id="7666" />
-<P2  x="417" y="208" id="7677" />
+<P1  x="512" y="143" id="7640" />
+<P2  x="417" y="208" id="7651" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7702" >
+<CONNECTOR type="115" id="7676" >
 <cdparam x="391" y="213" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from random sequence to wait event" value="null" />
-<P1  x="391" y="213" id="7679" />
-<P2  x="366" y="254" id="7694" />
+<P1  x="391" y="213" id="7653" />
+<P2  x="366" y="254" id="7668" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7703" >
+<CONNECTOR type="115" id="7677" >
 <cdparam x="391" y="213" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from random sequence to wait event" value="null" />
-<P1  x="442" y="213" id="7681" />
-<P2  x="447" y="254" id="7697" />
+<P1  x="442" y="213" id="7655" />
+<P2  x="447" y="254" id="7671" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7704" >
+<CONNECTOR type="115" id="7678" >
 <cdparam x="664" y="301" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to stop state" value="null" />
-<P1  x="664" y="301" id="7690" />
-<P2  x="664" y="330" id="7687" />
+<P1  x="664" y="301" id="7664" />
+<P2  x="664" y="330" id="7661" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7705" >
+<CONNECTOR type="115" id="7679" >
 <cdparam x="672" y="228" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to send event" value="null" />
-<P1  x="664" y="231" id="7685" />
-<P2  x="664" y="271" id="7689" />
+<P1  x="664" y="231" id="7659" />
+<P2  x="664" y="271" id="7663" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7706" >
+<CONNECTOR type="115" id="7680" >
 <cdparam x="366" y="284" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to stop state" value="null" />
-<P1  x="366" y="284" id="7695" />
-<P2  x="366" y="314" id="7674" />
+<P1  x="366" y="284" id="7669" />
+<P2  x="366" y="314" id="7648" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7707" >
+<CONNECTOR type="115" id="7681" >
 <cdparam x="447" y="284" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to stop state" value="null" />
-<P1  x="447" y="284" id="7698" />
-<P2  x="447" y="318" id="7672" />
+<P1  x="447" y="284" id="7672" />
+<P2  x="447" y="318" id="7646" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7708" >
+<CONNECTOR type="115" id="7682" >
 <cdparam x="572" y="101" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to sequence" value="null" />
-<P1  x="562" y="100" id="7692" />
-<P2  x="562" y="138" id="7665" />
+<P1  x="562" y="100" id="7666" />
+<P2  x="562" y="138" id="7639" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_sum" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1007" id="7711" >
-<cdparam x="473" y="176" />
-<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="X_cwa" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1009" id="7685" >
+<cdparam x="547" y="267" />
+<sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="r_sum(size)" />
-<TGConnectingPoint num="0" id="7709" />
-<TGConnectingPoint num="1" id="7710" />
+<infoparam name="read channel" value="in2(size) " />
+<TGConnectingPoint num="0" id="7683" />
+<TGConnectingPoint num="1" id="7684" />
 <extraparam>
-<Data requestName="r_sum" nbOfParams="5" />
-<Param index="0" value="size" />
+<Data channelName="in2" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="7713" >
-<cdparam x="501" y="305" />
+<COMPONENT type="1013" id="7689" >
+<cdparam x="574" y="317" />
+<sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="execI" value="null" />
+<TGConnectingPoint num="0" id="7687" />
+<TGConnectingPoint num="1" id="7688" />
+</COMPONENT>
+<SUBCOMPONENT type="-1" id="7686" >
+<father id="7689" num="0" />
+<cdparam x="589" y="337" />
+<sizeparam width="57" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="-75" maxX="30" minY="10" maxY="30" />
+<infoparam name="value of the delay" value="size + 10" />
+</SUBCOMPONENT>
+
+<COMPONENT type="1001" id="7691" >
+<cdparam x="568" y="436" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7712" />
+<TGConnectingPoint num="0" id="7690" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="7716" >
-<cdparam x="467" y="246" />
-<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1006" id="7694" >
+<cdparam x="531" y="375" />
+<sizeparam width="94" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="sum_out(size)" />
-<TGConnectingPoint num="0" id="7714" />
-<TGConnectingPoint num="1" id="7715" />
+<infoparam name="write channel" value="cwa_out(size)" />
+<TGConnectingPoint num="0" id="7692" />
+<TGConnectingPoint num="1" id="7693" />
 <extraparam>
-<Data eventName="sum_out" nbOfParams="5" />
-<Param index="0" value="size" />
+<Data channelName="cwa_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="7719" >
-<cdparam x="484" y="117" />
-<sizeparam width="55" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1009" id="7697" >
+<cdparam x="547" y="232" />
+<sizeparam width="66" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="wait event" value="in(size) " />
-<TGConnectingPoint num="0" id="7717" />
-<TGConnectingPoint num="1" id="7718" />
+<infoparam name="read channel" value="in1(size) " />
+<TGConnectingPoint num="0" id="7695" />
+<TGConnectingPoint num="1" id="7696" />
 <extraparam>
-<Data eventName="in" nbOfParams="5" />
+<Data channelName="in1" nbOfSamples="size" secPattern="" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1034" id="7700" >
+<cdparam x="525" y="179" />
+<sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="read args" value="getReqArg (size)" />
+<TGConnectingPoint num="0" id="7698" />
+<TGConnectingPoint num="1" id="7699" />
+<extraparam>
+<Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7721" >
-<cdparam x="504" y="57" />
+<COMPONENT type="1000" id="7702" >
+<cdparam x="574" y="136" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7720" />
+<TGConnectingPoint num="0" id="7701" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7722" >
-<cdparam x="511" y="77" />
+<CONNECTOR type="115" id="7703" >
+<cdparam x="582" y="294" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from start state to wait event" value="null" />
-<P1  x="511" y="77" id="7720" />
-<P2  x="511" y="112" id="7717" />
+<infoparam name="connector from read channel to execI" value="null" />
+<P1  x="580" y="292" id="7684" />
+<P2  x="579" y="312" id="7687" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7723" >
-<cdparam x="511" y="271" />
+<CONNECTOR type="115" id="7704" >
+<cdparam x="581" y="156" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send event to stop state" value="null" />
-<P1  x="511" y="271" id="7715" />
-<P2  x="511" y="300" id="7712" />
+<infoparam name="connector from start state to read args" value="null" />
+<P1  x="581" y="156" id="7701" />
+<P2  x="581" y="174" id="7698" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7724" >
-<cdparam x="511" y="142" />
+<CONNECTOR type="115" id="7705" >
+<cdparam x="581" y="204" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from wait event to send request" value="null" />
-<P1  x="511" y="142" id="7718" />
-<P2  x="511" y="171" id="7709" />
+<infoparam name="connector from read args to read channel" value="null" />
+<P1  x="581" y="204" id="7699" />
+<P2  x="580" y="227" id="7695" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7725" >
-<cdparam x="519" y="198" />
+<CONNECTOR type="115" id="7706" >
+<cdparam x="577" y="343" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector from send request to send event" value="null" />
-<P1  x="511" y="201" id="7710" />
-<P2  x="511" y="241" id="7714" />
+<infoparam name="connector from execI to write channel" value="null" />
+<P1  x="579" y="352" id="7688" />
+<P2  x="578" y="370" id="7692" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="7707" >
+<cdparam x="577" y="399" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from write channel to stop state" value="null" />
+<P1  x="578" y="400" id="7693" />
+<P2  x="578" y="431" id="7690" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="7708" >
+<cdparam x="580" y="257" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from read channel to read channel" value="null" />
+<P1  x="580" y="257" id="7696" />
+<P2  x="580" y="262" id="7683" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_sum" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="7729" >
+<COMPONENT type="1013" id="7712" >
 <cdparam x="563" y="213" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="7727" />
-<TGConnectingPoint num="1" id="7728" />
+<TGConnectingPoint num="0" id="7710" />
+<TGConnectingPoint num="1" id="7711" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="7726" >
-<father id="7729" num="0" />
+<SUBCOMPONENT type="-1" id="7709" >
+<father id="7712" num="0" />
 <cdparam x="578" y="233" />
 <sizeparam width="57" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -19070,215 +19105,215 @@ sequence diagram.
 <infoparam name="value of the delay" value="size + 10" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1001" id="7731" >
+<COMPONENT type="1001" id="7714" >
 <cdparam x="559" y="341" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7730" />
+<TGConnectingPoint num="0" id="7713" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="7734" >
+<COMPONENT type="1006" id="7717" >
 <cdparam x="520" y="279" />
 <sizeparam width="96" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="sum_out(size)" />
-<TGConnectingPoint num="0" id="7732" />
-<TGConnectingPoint num="1" id="7733" />
+<TGConnectingPoint num="0" id="7715" />
+<TGConnectingPoint num="1" id="7716" />
 <extraparam>
 <Data channelName="sum_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="7737" >
+<COMPONENT type="1009" id="7720" >
 <cdparam x="539" y="159" />
 <sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="in(size) " />
-<TGConnectingPoint num="0" id="7735" />
-<TGConnectingPoint num="1" id="7736" />
+<TGConnectingPoint num="0" id="7718" />
+<TGConnectingPoint num="1" id="7719" />
 <extraparam>
 <Data channelName="in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="7740" >
+<COMPONENT type="1034" id="7723" >
 <cdparam x="513" y="106" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="7738" />
-<TGConnectingPoint num="1" id="7739" />
+<TGConnectingPoint num="0" id="7721" />
+<TGConnectingPoint num="1" id="7722" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7742" >
+<COMPONENT type="1000" id="7725" >
 <cdparam x="562" y="63" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7741" />
+<TGConnectingPoint num="0" id="7724" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7743" >
+<CONNECTOR type="115" id="7726" >
 <cdparam x="569" y="83" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to read args" value="null" />
-<P1  x="569" y="83" id="7741" />
-<P2  x="569" y="101" id="7738" />
+<P1  x="569" y="83" id="7724" />
+<P2  x="569" y="101" id="7721" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7744" >
+<CONNECTOR type="115" id="7727" >
 <cdparam x="569" y="131" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read args to read channel" value="null" />
-<P1  x="569" y="131" id="7739" />
-<P2  x="568" y="154" id="7735" />
+<P1  x="569" y="131" id="7722" />
+<P2  x="568" y="154" id="7718" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7745" >
+<CONNECTOR type="115" id="7728" >
 <cdparam x="568" y="184" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to execI" value="null" />
-<P1  x="568" y="184" id="7736" />
-<P2  x="568" y="208" id="7727" />
+<P1  x="568" y="184" id="7719" />
+<P2  x="568" y="208" id="7710" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7746" >
+<CONNECTOR type="115" id="7729" >
 <cdparam x="568" y="248" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="568" y="248" id="7728" />
-<P2  x="568" y="274" id="7732" />
+<P1  x="568" y="248" id="7711" />
+<P2  x="568" y="274" id="7715" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7747" >
+<CONNECTOR type="115" id="7730" >
 <cdparam x="568" y="304" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="568" y="304" id="7733" />
-<P2  x="569" y="336" id="7730" />
+<P1  x="568" y="304" id="7716" />
+<P2  x="569" y="336" id="7713" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
-<TMLActivityDiagramPanel name="F_dma1" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1007" id="7750" >
-<cdparam x="387" y="227" />
-<sizeparam width="86" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<TMLActivityDiagramPanel name="F_sum" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1007" id="7733" >
+<cdparam x="473" y="176" />
+<sizeparam width="76" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send request" value="r_dma1(size)" />
-<TGConnectingPoint num="0" id="7748" />
-<TGConnectingPoint num="1" id="7749" />
+<infoparam name="send request" value="r_sum(size)" />
+<TGConnectingPoint num="0" id="7731" />
+<TGConnectingPoint num="1" id="7732" />
 <extraparam>
-<Data requestName="r_dma1" nbOfParams="5" />
+<Data requestName="r_sum" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1001" id="7752" >
-<cdparam x="420" y="356" />
+<COMPONENT type="1001" id="7735" >
+<cdparam x="501" y="305" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7751" />
+<TGConnectingPoint num="0" id="7734" />
 </COMPONENT>
 
-<COMPONENT type="1008" id="7755" >
-<cdparam x="381" y="297" />
-<sizeparam width="99" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="1008" id="7738" >
+<cdparam x="467" y="246" />
+<sizeparam width="89" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
-<infoparam name="send event" value="dma1_out(size)" />
-<TGConnectingPoint num="0" id="7753" />
-<TGConnectingPoint num="1" id="7754" />
+<infoparam name="send event" value="sum_out(size)" />
+<TGConnectingPoint num="0" id="7736" />
+<TGConnectingPoint num="1" id="7737" />
 <extraparam>
-<Data eventName="dma1_out" nbOfParams="5" />
+<Data eventName="sum_out" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1010" id="7758" >
-<cdparam x="403" y="168" />
+<COMPONENT type="1010" id="7741" >
+<cdparam x="484" y="117" />
 <sizeparam width="55" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="wait event" value="in(size) " />
-<TGConnectingPoint num="0" id="7756" />
-<TGConnectingPoint num="1" id="7757" />
+<TGConnectingPoint num="0" id="7739" />
+<TGConnectingPoint num="1" id="7740" />
 <extraparam>
 <Data eventName="in" nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7760" >
-<cdparam x="423" y="108" />
+<COMPONENT type="1000" id="7743" >
+<cdparam x="504" y="57" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7759" />
+<TGConnectingPoint num="0" id="7742" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7761" >
-<cdparam x="430" y="128" />
+<CONNECTOR type="115" id="7744" >
+<cdparam x="511" y="77" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to wait event" value="null" />
-<P1  x="430" y="128" id="7759" />
-<P2  x="430" y="163" id="7756" />
+<P1  x="511" y="77" id="7742" />
+<P2  x="511" y="112" id="7739" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7762" >
-<cdparam x="430" y="322" />
+<CONNECTOR type="115" id="7745" >
+<cdparam x="511" y="271" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send event to stop state" value="null" />
-<P1  x="430" y="322" id="7754" />
-<P2  x="430" y="351" id="7751" />
+<P1  x="511" y="271" id="7737" />
+<P2  x="511" y="300" id="7734" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7763" >
-<cdparam x="430" y="193" />
+<CONNECTOR type="115" id="7746" >
+<cdparam x="511" y="142" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from wait event to send request" value="null" />
-<P1  x="430" y="193" id="7757" />
-<P2  x="430" y="222" id="7748" />
+<P1  x="511" y="142" id="7740" />
+<P2  x="511" y="171" id="7731" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7764" >
-<cdparam x="438" y="249" />
+<CONNECTOR type="115" id="7747" >
+<cdparam x="519" y="198" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from send request to send event" value="null" />
-<P1  x="430" y="252" id="7749" />
-<P2  x="430" y="292" id="7753" />
+<P1  x="511" y="201" id="7732" />
+<P2  x="511" y="241" id="7736" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
 </TMLActivityDiagramPanel>
 
 <TMLActivityDiagramPanel name="X_dma1" minX="10" maxX="1400" minY="10" maxY="900" >
-<COMPONENT type="1013" id="7768" >
+<COMPONENT type="1013" id="7751" >
 <cdparam x="544" y="266" />
 <sizeparam width="10" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="execI" value="null" />
-<TGConnectingPoint num="0" id="7766" />
-<TGConnectingPoint num="1" id="7767" />
+<TGConnectingPoint num="0" id="7749" />
+<TGConnectingPoint num="1" id="7750" />
 </COMPONENT>
-<SUBCOMPONENT type="-1" id="7765" >
-<father id="7768" num="0" />
+<SUBCOMPONENT type="-1" id="7748" >
+<father id="7751" num="0" />
 <cdparam x="559" y="286" />
 <sizeparam width="23" height="15" minWidth="10" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
@@ -19286,102 +19321,198 @@ sequence diagram.
 <infoparam name="value of the delay" value="size" />
 </SUBCOMPONENT>
 
-<COMPONENT type="1001" id="7770" >
+<COMPONENT type="1001" id="7753" >
 <cdparam x="540" y="394" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="7769" />
+<TGConnectingPoint num="0" id="7752" />
 </COMPONENT>
 
-<COMPONENT type="1006" id="7773" >
+<COMPONENT type="1006" id="7756" >
 <cdparam x="497" y="332" />
 <sizeparam width="105" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="write channel" value="dma1_out(size)" />
-<TGConnectingPoint num="0" id="7771" />
-<TGConnectingPoint num="1" id="7772" />
+<TGConnectingPoint num="0" id="7754" />
+<TGConnectingPoint num="1" id="7755" />
 <extraparam>
 <Data channelName="dma1_out" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1009" id="7776" >
+<COMPONENT type="1009" id="7759" >
 <cdparam x="520" y="212" />
 <sizeparam width="58" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read channel" value="in(size) " />
-<TGConnectingPoint num="0" id="7774" />
-<TGConnectingPoint num="1" id="7775" />
+<TGConnectingPoint num="0" id="7757" />
+<TGConnectingPoint num="1" id="7758" />
 <extraparam>
 <Data channelName="in" nbOfSamples="size" secPattern="" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1034" id="7779" >
+<COMPONENT type="1034" id="7762" >
 <cdparam x="494" y="159" />
 <sizeparam width="113" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="read args" value="getReqArg (size)" />
-<TGConnectingPoint num="0" id="7777" />
-<TGConnectingPoint num="1" id="7778" />
+<TGConnectingPoint num="0" id="7760" />
+<TGConnectingPoint num="1" id="7761" />
 <extraparam>
 <Data nbOfParams="5" />
 <Param index="0" value="size" />
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="1000" id="7781" >
+<COMPONENT type="1000" id="7764" >
 <cdparam x="543" y="116" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="7780" />
+<TGConnectingPoint num="0" id="7763" />
 </COMPONENT>
 
-<CONNECTOR type="115" id="7782" >
+<CONNECTOR type="115" id="7765" >
 <cdparam x="550" y="136" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from start state to read args" value="null" />
-<P1  x="550" y="136" id="7780" />
-<P2  x="550" y="154" id="7777" />
+<P1  x="550" y="136" id="7763" />
+<P2  x="550" y="154" id="7760" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7783" >
+<CONNECTOR type="115" id="7766" >
 <cdparam x="550" y="184" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read args to read channel" value="null" />
-<P1  x="550" y="184" id="7778" />
-<P2  x="549" y="207" id="7774" />
+<P1  x="550" y="184" id="7761" />
+<P2  x="549" y="207" id="7757" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7784" >
+<CONNECTOR type="115" id="7767" >
 <cdparam x="549" y="237" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from read channel to execI" value="null" />
-<P1  x="549" y="237" id="7775" />
-<P2  x="549" y="261" id="7766" />
+<P1  x="549" y="237" id="7758" />
+<P2  x="549" y="261" id="7749" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7785" >
+<CONNECTOR type="115" id="7768" >
 <cdparam x="549" y="301" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from execI to write channel" value="null" />
-<P1  x="549" y="301" id="7767" />
-<P2  x="549" y="327" id="7771" />
+<P1  x="549" y="301" id="7750" />
+<P2  x="549" y="327" id="7754" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
-<CONNECTOR type="115" id="7786" >
+<CONNECTOR type="115" id="7769" >
 <cdparam x="549" y="357" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector from write channel to stop state" value="null" />
-<P1  x="549" y="357" id="7772" />
-<P2  x="550" y="389" id="7769" />
+<P1  x="549" y="357" id="7755" />
+<P2  x="550" y="389" id="7752" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+
+</TMLActivityDiagramPanel>
+
+<TMLActivityDiagramPanel name="F_dma1" minX="10" maxX="1400" minY="10" maxY="900" >
+<COMPONENT type="1007" id="7772" >
+<cdparam x="387" y="227" />
+<sizeparam width="86" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send request" value="r_dma1(size)" />
+<TGConnectingPoint num="0" id="7770" />
+<TGConnectingPoint num="1" id="7771" />
+<extraparam>
+<Data requestName="r_dma1" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1001" id="7774" >
+<cdparam x="420" y="356" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="7773" />
+</COMPONENT>
+
+<COMPONENT type="1008" id="7777" >
+<cdparam x="381" y="297" />
+<sizeparam width="99" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="send event" value="dma1_out(size)" />
+<TGConnectingPoint num="0" id="7775" />
+<TGConnectingPoint num="1" id="7776" />
+<extraparam>
+<Data eventName="dma1_out" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1010" id="7780" >
+<cdparam x="403" y="168" />
+<sizeparam width="55" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="wait event" value="in(size) " />
+<TGConnectingPoint num="0" id="7778" />
+<TGConnectingPoint num="1" id="7779" />
+<extraparam>
+<Data eventName="in" nbOfParams="5" />
+<Param index="0" value="size" />
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="1000" id="7782" >
+<cdparam x="423" y="108" />
+<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="1400" minY="10" maxY="900" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="7781" />
+</COMPONENT>
+
+<CONNECTOR type="115" id="7783" >
+<cdparam x="430" y="128" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from start state to wait event" value="null" />
+<P1  x="430" y="128" id="7781" />
+<P2  x="430" y="163" id="7778" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="7784" >
+<cdparam x="430" y="322" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send event to stop state" value="null" />
+<P1  x="430" y="322" id="7776" />
+<P2  x="430" y="351" id="7773" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="7785" >
+<cdparam x="430" y="193" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from wait event to send request" value="null" />
+<P1  x="430" y="193" id="7779" />
+<P2  x="430" y="222" id="7770" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR>
+<CONNECTOR type="115" id="7786" >
+<cdparam x="438" y="249" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="1000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector from send request to send event" value="null" />
+<P1  x="430" y="252" id="7771" />
+<P2  x="430" y="292" id="7775" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR>
 
diff --git a/src/ui/ActionPerformer.java b/src/ui/ActionPerformer.java
index 9c738ef40ea99e3fb0075a3ae2a1f12abd59b7ef..878aedb46322d205f0ff92eb012e775f38d98a8f 100755
--- a/src/ui/ActionPerformer.java
+++ b/src/ui/ActionPerformer.java
@@ -62,7 +62,9 @@ public class ActionPerformer {
             mgui.newDesign();
         } else if (command.equals(mgui.actions[TGUIAction.ACT_NEW_ANALYSIS].getActionCommand())) {
             mgui.newAnalysis();
-        } else if (command.equals(mgui.actions[TGUIAction.ACT_OPEN].getActionCommand())) {
+        } else if (command.equals(mgui.actions[TGUIAction.ACT_OPEN_FROM_NETWORK].getActionCommand())) {
+            mgui.openNetworkProject();
+	} else if (command.equals(mgui.actions[TGUIAction.ACT_OPEN].getActionCommand())) {
             mgui.openProject();
         } else if (command.equals(mgui.actions[TGUIAction.ACT_MERGE].getActionCommand())) {
             mgui.mergeProject();
diff --git a/src/ui/ConfigurationTTool.java b/src/ui/ConfigurationTTool.java
index f6ca68e6ba383a620fff5a3eb0a8c24ff9c9113b..6928d0b0a895bdae74812fc8d38039ddecb05341 100755
--- a/src/ui/ConfigurationTTool.java
+++ b/src/ui/ConfigurationTTool.java
@@ -144,6 +144,10 @@ public class ConfigurationTTool {
     // PLUGINS
     public static String PLUGIN_JAVA_CODE_GENERATOR = "";
 
+    // URL for models
+    public static String URL_MODEL = "http://ttool.telecom-paristech.fr/networkmodels/models.txt";
+
+    // Others
     public static String LastOpenFile = "";
     public static boolean LastOpenFileDefined = false;
 
@@ -447,6 +451,9 @@ public class ConfigurationTTool {
 	sb.append("Plugins:\n");
 	sb.append("Plugin for java code generation: " + PLUGIN_JAVA_CODE_GENERATOR + "\n");
 
+	// URL
+	sb.append("URLs:\n");
+	sb.append("URL for loading models from network: " + URL_MODEL + "\n");
 
         sb.append("\nCustom external commands:\n");
         sb.append("ExternalCommand1Host: " + ExternalCommand1Host + "\n");
@@ -723,6 +730,10 @@ public class ConfigurationTTool {
             if (nl.getLength() > 0)
                 PluginJavaCodeGenerator(nl);
 
+	    nl = doc.getElementsByTagName("URL_MODEL");
+            if (nl.getLength() > 0)
+                URLModel(nl);
+
             nl = doc.getElementsByTagName("LastOpenFile");
             if (nl.getLength() > 0)
                 LastOpenFile(nl);
@@ -1395,6 +1406,16 @@ public class ConfigurationTTool {
         }
     }
 
+    private static void URLModel(NodeList nl) throws MalformedConfigurationException {
+        try {
+            Element elt = (Element)(nl.item(0));
+            URL_MODEL = elt.getAttribute("data");
+        } catch (Exception e) {
+            throw new MalformedConfigurationException(e.getMessage());
+        }
+    }
+
+
     private static void LastOpenFile(NodeList nl) throws MalformedConfigurationException {
         try {
             Element elt = (Element)(nl.item(0));
diff --git a/src/ui/DefaultText.java b/src/ui/DefaultText.java
index 23d4d801171d27e4ec9b9d79796e0cca1f29285b..cbbd56293685ba4f12e83dbcd5611cc95e990169 100755
--- a/src/ui/DefaultText.java
+++ b/src/ui/DefaultText.java
@@ -49,8 +49,8 @@ package ui;
 
 public class DefaultText  {
 
-    public static String BUILD = "12239";
-    public static String DATE = "2017/05/29 02:01:03 CET";
+    public static String BUILD = "12240";
+    public static String DATE = "2017/05/30 02:01:03 CET";
     
     
     public static StringBuffer sbAbout = makeAbout();
diff --git a/src/ui/JMenuBarTurtle.java b/src/ui/JMenuBarTurtle.java
index b5f56eae6306688700341f01353cbcbdf6bcfc59..42860940f3e198bb0c5757c086db2e11cf08193e 100755
--- a/src/ui/JMenuBarTurtle.java
+++ b/src/ui/JMenuBarTurtle.java
@@ -94,6 +94,8 @@ public  class JMenuBarTurtle extends JMenuBar   {
         menuItem.addMouseListener(mgui.mouseHandler);
         menuItem = file.add(mgui.actions[TGUIAction.ACT_OPEN]);
         menuItem.addMouseListener(mgui.mouseHandler);
+	menuItem = file.add(mgui.actions[TGUIAction.ACT_OPEN_FROM_NETWORK]);
+        menuItem.addMouseListener(mgui.mouseHandler);
         menuItem = file.add(mgui.actions[TGUIAction.ACT_SAVE]);
         menuItem.addMouseListener(mgui.mouseHandler);
         menuItem = file.add(mgui.actions[TGUIAction.ACT_SAVE_AS]);
diff --git a/src/ui/MainGUI.java b/src/ui/MainGUI.java
index d739b44f42bbd5e3fb64c9590f9442f2be149184..69b058ad7534cf0eaf48968d8bbd214acc68b4b1 100644
--- a/src/ui/MainGUI.java
+++ b/src/ui/MainGUI.java
@@ -100,6 +100,8 @@ import javax.swing.UIManager;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
 
+
+import ui.networkmodelloader.*;
 import avatartranslator.AvatarSpecification;
 import ddtranslatorSoclib.AvatarddSpecification;
 import ddtranslatorSoclib.toSoclib.TasksAndMainGenerator;
@@ -160,1114 +162,1114 @@ import ui.window.*;
 
 public  class MainGUI implements ActionListener, WindowListener, KeyListener, PeriodicBehavior {
 
-	public static boolean systemcOn;
-	public static boolean lotosOn;
-	public static boolean proactiveOn;
-	public static boolean tpnOn;
-	public static boolean osOn;
-	public static boolean uppaalOn;
-	public static boolean ncOn;
-	public static boolean avatarOn;
-	public static boolean proverifOn;
-	public static boolean experimentalOn;
-	public static boolean avatarOnly;
-	public static boolean turtleOn;
-
-	public final static int LOTOS = 0;
-	public final static int RT_LOTOS = 1;
-	public final static int UPPAAL = 2;
-	public final static int JAVA = 3;
-	public final static int DESIGN = 4;
-
-	public JFrame frame; //Main Frame
-	public Container framePanel; //Main pane
-	public Container panelForTab, panelForTree; //panelForAnalysisTab; //panelForDesignTab;
-	public JSplitPane split;
-
-	// Multi analysis / design / deployment
-	public Vector<TURTLEPanel> tabs;
-	/* This dummySelectedTab is used when loading a model from XML.
-	 * It enables to use standard getCurrentTURTLEPanel even though
-	 * the mainTabbedPane has not yet been created.
-	 */
-	private TURTLEPanel dummySelectedTab;
-
-	// JTree
-	public JDiagramTree dtree;
-	public DiagramTreeModel dtm;
-
-	// Actions
-	public      TGUIAction [] actions;
-	public      MouseHandler mouseHandler;
-	public  KeyListener keyHandler;
-
-	// Validation
-	public LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface> ();
-
-	// Status bar
-	private     JLabel status;
-
-	//Menubar
-	private JMenuBarTurtle jmenubarturtle;
-
-	// Communication key
-	private String sk;
-
-
-	// Annex windows
-	JFrameCode javaframe;
-	JFrameBird birdframe;
-	private boolean hasChanged = false;
-
-	//@author: Huy TRUONG
-	public JDialogSearchBox searchBox;
-
-
-	public final static byte NOT_OPENED = 0;
-	public final static byte OPENED = 1;
-	public final static byte MODEL_OK = 2;
-	public final static byte MODEL_CHANGED = 3;
-	public final static byte MODEL_SAVED = 4;
-	public final static byte RTLOTOS_OK = 5;
-	public final static byte BACKWARD = 6;
-	public final static byte NO_BACKWARD = 7;
-	public final static byte FORWARD = 8;
-	public final static byte NO_FORWARD = 9;
-	public final static byte FORWARD_DIAG = 10;
-	public final static byte BACKWARD_DIAG = 11;
-	public final static byte NO_FORWARD_DIAG = 12;
-	public final static byte NO_BACKWARD_DIAG = 13;
-	public final static byte DTADOT_OK = 14;
-	public final static byte DTADOT_KO = 15;
-	public final static byte RGDOT_OK = 16;
-	public final static byte RGDOT_KO = 17;
-	public final static byte TLSADOT_OK = 31;
-	public final static byte TLSADOT_KO = 32;
-	public final static byte SIM_OK = 18;
-	public final static byte SIM_KO = 19;
-	public final static byte CUTCOPY_OK = 20;
-	public final static byte CUTCOPY_KO = 21;
-	public final static byte PASTE_OK = 22;
-	public final static byte RGAUTDOT_OK = 23;
-	public final static byte RGAUTDOT_KO = 24;
-	public final static byte RGAUT_OK = 25;
-	public final static byte RGAUT_KO = 26;
-	public final static byte RGAUTPROJDOT_OK = 27;
-	public final static byte RGAUTPROJDOT_KO = 28;
-	public final static byte EXPORT_LIB_OK = 29;
-	public final static byte EXPORT_LIB_KO = 30;
-	public final static byte METHO_CHANGED = 33;
-	public final static byte VIEW_SUGG_DESIGN_OK = 34;
-	public final static byte VIEW_SUGG_DESIGN_KO = 35;
-	public final static byte GEN_DESIGN_OK = 36;
-	public final static byte GEN_DESIGN_KO = 37;
-	public final static byte GEN_SYSTEMC_OK = 38;
-	public final static byte GEN_SYSTEMC_KO = 39;
-	public final static byte VIEW_WAVE_OK = 40;
-	public final static byte REQ_OK = 41;
-	public final static byte UPPAAL_OK = 42;
-	public final static byte NC_OK = 43;
-	public final static byte MODEL_UPPAAL_OK = 44;
-	public final static byte MODEL_PROVERIF_OK = 45;
-	public final static byte EDIT_PROVERIF_OK = 46;
-	public final static byte AVATAR_SYNTAXCHECKING_OK = 47;
-	public final static byte PANEL_CHANGED = 48;
-	public final static byte ATTACKTREE_SYNTAXCHECKING_OK = 49;
-
-	public final static int INCREMENT = 10;
-
-	public static Object BACK_COLOR;
-	//public static Object BACK_COLOR;
-
-	public final static String REMOTE_RTL_LOTOS_FILE = "spec.lot";
-	public final static String REMOTE_UPPAAL_FILE = "spec.xml";
-	public final static String REMOTE_ALDEBARAN_AUT_FILE = "spec.aut";
-	public final static String REMOTE_ALDEBARAN_BISIMU_FILE1 = "file1.aut";
-	public final static String REMOTE_ALDEBARAN_BISIMU_FILE2 = "file2.aut";
-	public final static String REMOTE_BISIMULATOR_FILE1 = "lts1bis";
-	public final static String REMOTE_BISIMULATOR_FILE2 = "lts2bis";
-
-	public final static byte METHO_ANALYSIS = 0;
-	public final static byte METHO_DESIGN = 1;
-	public final static byte METHO_DEPLOY = 2;
-
-	public byte mode;
-	public byte methoMode;
-
-	// TURTLE Modeling
-	public GTURTLEModeling gtm;
-
-
-	//TURTLE modeling graphic components
-	private JTabbedPane mainTabbedPane;
-	private JToolBarMainTurtle mainBar;
-	//private JPopupMenu menuTabbedPane;
-
-	private TDiagramPanel activetdp;
-
-	// Modified graphs
-	private String modifiedaut;
-	private String modifiedautdot;
-
-	private RG lastDiploRG;
-
-
-	// JBirdPanel
-	private JBirdPanel jbp;
-
-	private int typeButtonSelected;
-	private int idButtonSelected;
-
-	private File file;
-	private File lotosfile;
-	private File simfile;
-	private File dtafile;
-	private File dtadotfile;
-	private File rgfile;
-	private File rgdotfile;
-	private File tlsafile;
-	private File tlsadotfile;
-	private File rgautfile;
-	private File fc2file;
-	private File bcgfile;
-	private File rgautdotfile;
-	private File rgautprojfile;
-	private File rgautprojdotfile;
-	private JFileChooser jfc;
-	private JFileChooser jfclib;
-	private JFileChooser jfcimg;
-	private JFileChooser jfcimgsvg;
-	private JFileChooser jfcggraph;
-	private JFileChooser jfctgraph;
-	private JFileChooser jfclot;
-	private JFileChooser jfctif;
-	private JFileChooser jfcmsc;
-
-	//private int selectedAction = -1;
-
-	// Interaction with simulators
-	private ArrayList<RunningInfo> runningIDs;
-	private ArrayList<LoadInfo> loadIDs;
-	private ConcurrentHashMap<Integer, ArrayList<SimulationTransaction>> transactionMap = new ConcurrentHashMap<Integer, ArrayList<SimulationTransaction>>();
-	private ConcurrentHashMap<String, String> statusMap = new ConcurrentHashMap<String, String>();
-	private JFrameInteractiveSimulation jfis;
-	private JFrameAvatarInteractiveSimulation jfais;
-
-	// Invariants
-	Invariant currentInvariant;
-
-	// Thread for autosave
-	PeriodicBehaviorThread pbt;
-
-	private TMLArchiPanel tmlap;    // USed to retrieve the currently opened architecture panel
-
-	// Plugin management
-	//public static PluginManager pluginManager;
-
-
-	public MainGUI(boolean _turtleOn, boolean _systemcOn, boolean _lotosOn, boolean _proactiveOn, boolean _tpnOn, boolean _osOn, boolean _uppaalOn, boolean _ncOn, boolean _avatarOn, boolean _proverifOn, boolean
-			_avatarOnly, boolean _experimental) {
-		turtleOn = _turtleOn;
-		systemcOn = _systemcOn;
-		lotosOn = _lotosOn;
-		proactiveOn = _proactiveOn;
-		tpnOn = _tpnOn;
-		osOn = _osOn;
-		uppaalOn = _uppaalOn;
-		ncOn = _ncOn;
-		avatarOn = _avatarOn;
-		proverifOn = _proverifOn;
-		avatarOnly = _avatarOnly;
-		experimentalOn = _experimental;
-
-		currentInvariant = null;
-
-		pbt = new PeriodicBehaviorThread(this, 120000); // save every two minutes
-
-		PluginManager.pluginManager = new PluginManager();
-
-	}
-
-	public void setKey(String _sk) {
-		sk = _sk;
-		RshClient.sk = sk;
-	}
-
-	public String getKey() {
-		return sk;
-	}
-
-
-	public boolean isAvatarOn() {
-		return avatarOn;
-	}
-
-
-	public void build() {
-		// Swing look and feel
-
-		try {
-			UIManager.setLookAndFeel(
-					UIManager.getCrossPlatformLookAndFeelClassName());
-		} catch (Exception e) { ErrorGUI.exit(ErrorGUI.GUI);}
-
-		// Creating main container
-		frame = new JFrame("TTool");
-
-		frame.addWindowListener(this);
-		frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE );
-		frame.setIconImage(IconManager.img8);
-
-		framePanel = frame.getContentPane();
-		framePanel.setLayout(new BorderLayout());
-
-		// file chooser
-		if (ConfigurationTTool.FILEPath.length() > 0) {
-			jfc = new JFileChooser(ConfigurationTTool.FILEPath);
-		} else {
-			jfc = new JFileChooser();
-		}
-
-		if (ConfigurationTTool.FILEPath.length() > 0) {
-			jfctif = new JFileChooser(ConfigurationTTool.FILEPath);
-		} else {
-			jfctif = new JFileChooser();
-		}
-
-		if (ConfigurationTTool.FILEPath.length() > 0) {
-			jfcmsc = new JFileChooser(ConfigurationTTool.FILEPath);
-		} else {
-			jfcmsc = new JFileChooser();
-		}
-
-		if (ConfigurationTTool.LIBPath.length() > 0) {
-			jfclib = new JFileChooser(ConfigurationTTool.LIBPath);
-		} else {
-			jfclib = new JFileChooser();
-		}
-
-		if (ConfigurationTTool.IMGPath.length() > 0) {
-			jfcimg = new JFileChooser(ConfigurationTTool.IMGPath);
-		} else {
-			jfcimg = new JFileChooser();
-		}
+    public static boolean systemcOn;
+    public static boolean lotosOn;
+    public static boolean proactiveOn;
+    public static boolean tpnOn;
+    public static boolean osOn;
+    public static boolean uppaalOn;
+    public static boolean ncOn;
+    public static boolean avatarOn;
+    public static boolean proverifOn;
+    public static boolean experimentalOn;
+    public static boolean avatarOnly;
+    public static boolean turtleOn;
+
+    public final static int LOTOS = 0;
+    public final static int RT_LOTOS = 1;
+    public final static int UPPAAL = 2;
+    public final static int JAVA = 3;
+    public final static int DESIGN = 4;
+
+    public JFrame frame; //Main Frame
+    public Container framePanel; //Main pane
+    public Container panelForTab, panelForTree; //panelForAnalysisTab; //panelForDesignTab;
+    public JSplitPane split;
+
+    // Multi analysis / design / deployment
+    public Vector<TURTLEPanel> tabs;
+    /* This dummySelectedTab is used when loading a model from XML.
+     * It enables to use standard getCurrentTURTLEPanel even though
+     * the mainTabbedPane has not yet been created.
+     */
+    private TURTLEPanel dummySelectedTab;
+
+    // JTree
+    public JDiagramTree dtree;
+    public DiagramTreeModel dtm;
+
+    // Actions
+    public      TGUIAction [] actions;
+    public      MouseHandler mouseHandler;
+    public  KeyListener keyHandler;
+
+    // Validation
+    public LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface> ();
+
+    // Status bar
+    private     JLabel status;
+
+    //Menubar
+    private JMenuBarTurtle jmenubarturtle;
+
+    // Communication key
+    private String sk;
+
+
+    // Annex windows
+    JFrameCode javaframe;
+    JFrameBird birdframe;
+    private boolean hasChanged = false;
+
+    //@author: Huy TRUONG
+    public JDialogSearchBox searchBox;
+
+
+    public final static byte NOT_OPENED = 0;
+    public final static byte OPENED = 1;
+    public final static byte MODEL_OK = 2;
+    public final static byte MODEL_CHANGED = 3;
+    public final static byte MODEL_SAVED = 4;
+    public final static byte RTLOTOS_OK = 5;
+    public final static byte BACKWARD = 6;
+    public final static byte NO_BACKWARD = 7;
+    public final static byte FORWARD = 8;
+    public final static byte NO_FORWARD = 9;
+    public final static byte FORWARD_DIAG = 10;
+    public final static byte BACKWARD_DIAG = 11;
+    public final static byte NO_FORWARD_DIAG = 12;
+    public final static byte NO_BACKWARD_DIAG = 13;
+    public final static byte DTADOT_OK = 14;
+    public final static byte DTADOT_KO = 15;
+    public final static byte RGDOT_OK = 16;
+    public final static byte RGDOT_KO = 17;
+    public final static byte TLSADOT_OK = 31;
+    public final static byte TLSADOT_KO = 32;
+    public final static byte SIM_OK = 18;
+    public final static byte SIM_KO = 19;
+    public final static byte CUTCOPY_OK = 20;
+    public final static byte CUTCOPY_KO = 21;
+    public final static byte PASTE_OK = 22;
+    public final static byte RGAUTDOT_OK = 23;
+    public final static byte RGAUTDOT_KO = 24;
+    public final static byte RGAUT_OK = 25;
+    public final static byte RGAUT_KO = 26;
+    public final static byte RGAUTPROJDOT_OK = 27;
+    public final static byte RGAUTPROJDOT_KO = 28;
+    public final static byte EXPORT_LIB_OK = 29;
+    public final static byte EXPORT_LIB_KO = 30;
+    public final static byte METHO_CHANGED = 33;
+    public final static byte VIEW_SUGG_DESIGN_OK = 34;
+    public final static byte VIEW_SUGG_DESIGN_KO = 35;
+    public final static byte GEN_DESIGN_OK = 36;
+    public final static byte GEN_DESIGN_KO = 37;
+    public final static byte GEN_SYSTEMC_OK = 38;
+    public final static byte GEN_SYSTEMC_KO = 39;
+    public final static byte VIEW_WAVE_OK = 40;
+    public final static byte REQ_OK = 41;
+    public final static byte UPPAAL_OK = 42;
+    public final static byte NC_OK = 43;
+    public final static byte MODEL_UPPAAL_OK = 44;
+    public final static byte MODEL_PROVERIF_OK = 45;
+    public final static byte EDIT_PROVERIF_OK = 46;
+    public final static byte AVATAR_SYNTAXCHECKING_OK = 47;
+    public final static byte PANEL_CHANGED = 48;
+    public final static byte ATTACKTREE_SYNTAXCHECKING_OK = 49;
+
+    public final static int INCREMENT = 10;
+
+    public static Object BACK_COLOR;
+    //public static Object BACK_COLOR;
+
+    public final static String REMOTE_RTL_LOTOS_FILE = "spec.lot";
+    public final static String REMOTE_UPPAAL_FILE = "spec.xml";
+    public final static String REMOTE_ALDEBARAN_AUT_FILE = "spec.aut";
+    public final static String REMOTE_ALDEBARAN_BISIMU_FILE1 = "file1.aut";
+    public final static String REMOTE_ALDEBARAN_BISIMU_FILE2 = "file2.aut";
+    public final static String REMOTE_BISIMULATOR_FILE1 = "lts1bis";
+    public final static String REMOTE_BISIMULATOR_FILE2 = "lts2bis";
+
+    public final static byte METHO_ANALYSIS = 0;
+    public final static byte METHO_DESIGN = 1;
+    public final static byte METHO_DEPLOY = 2;
+
+    public byte mode;
+    public byte methoMode;
+
+    // TURTLE Modeling
+    public GTURTLEModeling gtm;
+
+
+    //TURTLE modeling graphic components
+    private JTabbedPane mainTabbedPane;
+    private JToolBarMainTurtle mainBar;
+    //private JPopupMenu menuTabbedPane;
+
+    private TDiagramPanel activetdp;
+
+    // Modified graphs
+    private String modifiedaut;
+    private String modifiedautdot;
+
+    private RG lastDiploRG;
+
+
+    // JBirdPanel
+    private JBirdPanel jbp;
+
+    private int typeButtonSelected;
+    private int idButtonSelected;
+
+    private File file;
+    private File lotosfile;
+    private File simfile;
+    private File dtafile;
+    private File dtadotfile;
+    private File rgfile;
+    private File rgdotfile;
+    private File tlsafile;
+    private File tlsadotfile;
+    private File rgautfile;
+    private File fc2file;
+    private File bcgfile;
+    private File rgautdotfile;
+    private File rgautprojfile;
+    private File rgautprojdotfile;
+    private JFileChooser jfc;
+    private JFileChooser jfclib;
+    private JFileChooser jfcimg;
+    private JFileChooser jfcimgsvg;
+    private JFileChooser jfcggraph;
+    private JFileChooser jfctgraph;
+    private JFileChooser jfclot;
+    private JFileChooser jfctif;
+    private JFileChooser jfcmsc;
+
+    //private int selectedAction = -1;
+
+    // Interaction with simulators
+    private ArrayList<RunningInfo> runningIDs;
+    private ArrayList<LoadInfo> loadIDs;
+    private ConcurrentHashMap<Integer, ArrayList<SimulationTransaction>> transactionMap = new ConcurrentHashMap<Integer, ArrayList<SimulationTransaction>>();
+    private ConcurrentHashMap<String, String> statusMap = new ConcurrentHashMap<String, String>();
+    private JFrameInteractiveSimulation jfis;
+    private JFrameAvatarInteractiveSimulation jfais;
+
+    // Invariants
+    Invariant currentInvariant;
+
+    // Thread for autosave
+    PeriodicBehaviorThread pbt;
+
+    private TMLArchiPanel tmlap;    // USed to retrieve the currently opened architecture panel
+
+    // Plugin management
+    //public static PluginManager pluginManager;
+
+
+    public MainGUI(boolean _turtleOn, boolean _systemcOn, boolean _lotosOn, boolean _proactiveOn, boolean _tpnOn, boolean _osOn, boolean _uppaalOn, boolean _ncOn, boolean _avatarOn, boolean _proverifOn, boolean
+                   _avatarOnly, boolean _experimental) {
+        turtleOn = _turtleOn;
+        systemcOn = _systemcOn;
+        lotosOn = _lotosOn;
+        proactiveOn = _proactiveOn;
+        tpnOn = _tpnOn;
+        osOn = _osOn;
+        uppaalOn = _uppaalOn;
+        ncOn = _ncOn;
+        avatarOn = _avatarOn;
+        proverifOn = _proverifOn;
+        avatarOnly = _avatarOnly;
+        experimentalOn = _experimental;
+
+        currentInvariant = null;
+
+        pbt = new PeriodicBehaviorThread(this, 120000); // save every two minutes
+
+        PluginManager.pluginManager = new PluginManager();
+
+    }
+
+    public void setKey(String _sk) {
+        sk = _sk;
+        RshClient.sk = sk;
+    }
+
+    public String getKey() {
+        return sk;
+    }
+
+
+    public boolean isAvatarOn() {
+        return avatarOn;
+    }
+
+
+    public void build() {
+        // Swing look and feel
+
+        try {
+            UIManager.setLookAndFeel(
+                                     UIManager.getCrossPlatformLookAndFeelClassName());
+        } catch (Exception e) { ErrorGUI.exit(ErrorGUI.GUI);}
+
+        // Creating main container
+        frame = new JFrame("TTool");
+
+        frame.addWindowListener(this);
+        frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE );
+        frame.setIconImage(IconManager.img8);
+
+        framePanel = frame.getContentPane();
+        framePanel.setLayout(new BorderLayout());
+
+        // file chooser
+        if (ConfigurationTTool.FILEPath.length() > 0) {
+            jfc = new JFileChooser(ConfigurationTTool.FILEPath);
+        } else {
+            jfc = new JFileChooser();
+        }
+
+        if (ConfigurationTTool.FILEPath.length() > 0) {
+            jfctif = new JFileChooser(ConfigurationTTool.FILEPath);
+        } else {
+            jfctif = new JFileChooser();
+        }
+
+        if (ConfigurationTTool.FILEPath.length() > 0) {
+            jfcmsc = new JFileChooser(ConfigurationTTool.FILEPath);
+        } else {
+            jfcmsc = new JFileChooser();
+        }
+
+        if (ConfigurationTTool.LIBPath.length() > 0) {
+            jfclib = new JFileChooser(ConfigurationTTool.LIBPath);
+        } else {
+            jfclib = new JFileChooser();
+        }
+
+        if (ConfigurationTTool.IMGPath.length() > 0) {
+            jfcimg = new JFileChooser(ConfigurationTTool.IMGPath);
+        } else {
+            jfcimg = new JFileChooser();
+        }
+
+        if (ConfigurationTTool.IMGPath.length() > 0) {
+            jfcimgsvg = new JFileChooser(ConfigurationTTool.IMGPath);
+        } else {
+            jfcimgsvg = new JFileChooser();
+        }
 
-		if (ConfigurationTTool.IMGPath.length() > 0) {
-			jfcimgsvg = new JFileChooser(ConfigurationTTool.IMGPath);
-		} else {
-			jfcimgsvg = new JFileChooser();
-		}
+        if (ConfigurationTTool.LOTOSPath.length() > 0) {
+            jfclot = new JFileChooser(ConfigurationTTool.LOTOSPath);
+        } else {
+            jfclot = new JFileChooser();
+        }
+
+        if (ConfigurationTTool.GGraphPath.length() > 0) {
+            jfcggraph = new JFileChooser(ConfigurationTTool.GGraphPath);
+        } else {
+            jfcggraph = new JFileChooser();
+        }
+
+        if (ConfigurationTTool.TGraphPath.length() > 0) {
+            jfctgraph = new JFileChooser(ConfigurationTTool.TGraphPath);
+        } else {
+            jfctgraph = new JFileChooser();
+        }
+
+        TFileFilter filter = new TFileFilter();
+        jfc.setFileFilter(filter);
+
+        TTIFFilter filtertif = new TTIFFilter();
+        jfctif.setFileFilter(filtertif);
+
+        MSCFilter filtermsc = new MSCFilter();
+        jfcmsc.setFileFilter(filtermsc);
+
+        TLibFilter filterLib = new TLibFilter();
+        jfclib.setFileFilter(filterLib);
+
+        TImgFilter filterImg = new TImgFilter();
+        jfcimg.setFileFilter(filterImg);
+
+        TSVGFilter filterSVG = new TSVGFilter();
+        jfcimgsvg.setFileFilter(filterSVG);
+
+        RTLFileFilter filterRTL = new RTLFileFilter();
+        jfclot.setFileFilter(filterRTL);
+
+        TDotFilter filterDot = new TDotFilter();
+        jfcggraph.setFileFilter(filterDot);
+
+        // Actions
+        initActions();
+
+        // mode
+        setMode(NOT_OPENED);
+
+        // statusBar
+        status = createStatusBar();
+
+        // Mouse handler
+        mouseHandler = new MouseHandler(status);
+
+        framePanel.add(status, BorderLayout.SOUTH);
+
+        // toolbar
+        mainBar = new JToolBarMainTurtle(this);
+        framePanel.add(mainBar, BorderLayout.NORTH);
+
+        // Panels
+        panelForTab = new JPanel(); panelForTab.setLayout(new BorderLayout());
+        //panelForTree = new JPanel(); panelForTree.setLayout(new BorderLayout());
+        // Tree
+        dtree = new JDiagramTree(this);
+        dtree.setCellRenderer(new DiagramTreeRenderer());
+        ToolTipManager.sharedInstance().registerComponent(dtree);
+        JScrollPane scrollPane = new JScrollPane(dtree);
+        scrollPane.setPreferredSize(new Dimension(200, 600));
+        scrollPane.setMinimumSize(new Dimension(25, 200));
+        jbp = new JBirdPanel(this);
+        jbp.setPreferredSize(new Dimension(200, 200));
+        JSplitPane split1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, scrollPane, jbp);
+
+        //split1.setLastDividerLocation(500);
+        //panelForTree.add(scrollPane, BorderLayout.CENTER);
+
+        split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, split1, panelForTab);
+        framePanel.add(split, BorderLayout.CENTER);
+        //split1.resetToPreferredSizes();
+
+        // Creating menus
+        jmenubarturtle = new JMenuBarTurtle(this);
+        frame.setJMenuBar(jmenubarturtle);
+
+        //split1.setLastDividerLocation(split1.getHeight() * 4 / 5);
+        //split1.setLastDividerLocation(900);
+
+        // ToolBar
+        //toolbarDesign = new Vector();
+        //toolbarAnalysis       = new Vector();
+
+        // Panels
+        //analysisPanels = new Vector();
+        //designPanels = new Vector();
+
+    }
+
+    private     void initActions() {
+        actions = new TGUIAction[TGUIAction.NB_ACTION];
+        for(int i=0; i<TGUIAction.NB_ACTION; i++) {
+            actions[i] = new TGUIAction(i);
+            actions[i].addActionListener(this);
+            //actions[i].addKeyListener(this);
+        }
+    }
+
+    public String getTitle() {
+        return frame.getTitle();
+    }
+
+    public boolean hasChanged() {
+        return hasChanged;
+    }
+
+    public void resetChange() {
+        hasChanged = false;
+    }
+
+    public void changeMade(TDiagramPanel tdp, int type) {
+        hasChanged = true;
+        if (tdp != null) {
+            switch (type) {
+            case -1:
+                // Structural change
+                break;
+            case TDiagramPanel.NEW_COMPONENT:
+                //TraceManager.addDev("New Component");
+                tdp.structureChanged();
+                break;
+            case TDiagramPanel.NEW_CONNECTOR:
+                //TraceManager.addDev("New Connector");
+                tdp.structureChanged();
+                break;
+            case TDiagramPanel.REMOVE_COMPONENT:
+                //TraceManager.addDev("Remove Component");
+                tdp.structureChanged();
+                break;
+            case TDiagramPanel.MOVE_CONNECTOR:
+                //TraceManager.addDev("Move Connector");
+                tdp.structureChanged();
+                break;
+            case TDiagramPanel.CHANGE_VALUE_COMPONENT:
+                //TraceManager.addDev("Value of component changed");
+                tdp.valueChanged();
+                break;
+            case TDiagramPanel.MOVE_COMPONENT:
+                //TraceManager.addDev("Component moved");
+                break;
+            default:
+
+            }
+        }
+        setMode(MODEL_CHANGED);
+        Point p;
+        if (tdp == null) {
+            p = getCurrentSelectedPoint();
+        } else {
+            p = getPoint(tdp);
+        }
+        //TraceManager.addDev("Change made!");
+        gtm.saveOperation(p);
+        dtree.toBeUpdated();
+    }
+
+    public void setMethodologicalMode(byte m) {
+        methoMode = m;
+        switch(methoMode) {
+        case METHO_ANALYSIS:
+            break;
+        case METHO_DESIGN:
+            break;
+        default:
+        }
+    }
+
+    public void setMode(byte m) {
+        mode = m;
+        ModeManager.setMode(mode, actions, mainBar, this);
+    }
+
+
+    //@author: Huy TRUONG
+    public JToolBarMainTurtle getMainBar(){
+        return this.mainBar;
+    }
+    //--
+
+    public void activeActions(boolean b) {
+        for(int i=0; i<TGUIAction.NB_ACTION; i++) {
+            actions[i].setEnabled(b);
+        }
+    }
+
+    public String getModelFileFullPath() {
+        if (file == null) {
+            return "./";
+        }
+        return file.getAbsolutePath();
+    }
+
+    public void periodicAction() {
+        //TraceManager.addDev("Autosaving ");
+        if (file == null) {
+            return;
+        }
+
+        File fileSave = new File(file.getAbsolutePath() + "~");
+        TraceManager.addDev("Autosaving in " + fileSave.getAbsolutePath());
+        status.setText("Autosaving in " + fileSave.getAbsolutePath());
+
+        if(checkFileForSave(fileSave)) {
+            try {
+                String s = gtm.makeXMLFromTurtleModeling(-1);
+                FileOutputStream fos = new FileOutputStream(fileSave);
+                fos.write(s.getBytes());
+                fos.close();
+            } catch (Exception e) {
+                TraceManager.addDev("Error during autosave: " + e.getMessage());
+                status.setText("Error during autosave: " + e.getMessage());
+                return;
+            }
+        }
+        status.setText("Autosave done in " + fileSave.getAbsolutePath());
 
-		if (ConfigurationTTool.LOTOSPath.length() > 0) {
-			jfclot = new JFileChooser(ConfigurationTTool.LOTOSPath);
-		} else {
-			jfclot = new JFileChooser();
-		}
-
-		if (ConfigurationTTool.GGraphPath.length() > 0) {
-			jfcggraph = new JFileChooser(ConfigurationTTool.GGraphPath);
-		} else {
-			jfcggraph = new JFileChooser();
-		}
-
-		if (ConfigurationTTool.TGraphPath.length() > 0) {
-			jfctgraph = new JFileChooser(ConfigurationTTool.TGraphPath);
-		} else {
-			jfctgraph = new JFileChooser();
-		}
-
-		TFileFilter filter = new TFileFilter();
-		jfc.setFileFilter(filter);
 
-		TTIFFilter filtertif = new TTIFFilter();
-		jfctif.setFileFilter(filtertif);
-
-		MSCFilter filtermsc = new MSCFilter();
-		jfcmsc.setFileFilter(filtermsc);
-
-		TLibFilter filterLib = new TLibFilter();
-		jfclib.setFileFilter(filterLib);
-
-		TImgFilter filterImg = new TImgFilter();
-		jfcimg.setFileFilter(filterImg);
-
-		TSVGFilter filterSVG = new TSVGFilter();
-		jfcimgsvg.setFileFilter(filterSVG);
-
-		RTLFileFilter filterRTL = new RTLFileFilter();
-		jfclot.setFileFilter(filterRTL);
-
-		TDotFilter filterDot = new TDotFilter();
-		jfcggraph.setFileFilter(filterDot);
-
-		// Actions
-		initActions();
-
-		// mode
-		setMode(NOT_OPENED);
-
-		// statusBar
-		status = createStatusBar();
-
-		// Mouse handler
-		mouseHandler = new MouseHandler(status);
-
-		framePanel.add(status, BorderLayout.SOUTH);
-
-		// toolbar
-		mainBar = new JToolBarMainTurtle(this);
-		framePanel.add(mainBar, BorderLayout.NORTH);
-
-		// Panels
-		panelForTab = new JPanel(); panelForTab.setLayout(new BorderLayout());
-		//panelForTree = new JPanel(); panelForTree.setLayout(new BorderLayout());
-		// Tree
-		dtree = new JDiagramTree(this);
-		dtree.setCellRenderer(new DiagramTreeRenderer());
-		ToolTipManager.sharedInstance().registerComponent(dtree);
-		JScrollPane scrollPane = new JScrollPane(dtree);
-		scrollPane.setPreferredSize(new Dimension(200, 600));
-		scrollPane.setMinimumSize(new Dimension(25, 200));
-		jbp = new JBirdPanel(this);
-		jbp.setPreferredSize(new Dimension(200, 200));
-		JSplitPane split1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, true, scrollPane, jbp);
-
-		//split1.setLastDividerLocation(500);
-		//panelForTree.add(scrollPane, BorderLayout.CENTER);
-
-		split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, split1, panelForTab);
-		framePanel.add(split, BorderLayout.CENTER);
-		//split1.resetToPreferredSizes();
-
-		// Creating menus
-		jmenubarturtle = new JMenuBarTurtle(this);
-		frame.setJMenuBar(jmenubarturtle);
-
-		//split1.setLastDividerLocation(split1.getHeight() * 4 / 5);
-		//split1.setLastDividerLocation(900);
-
-		// ToolBar
-		//toolbarDesign = new Vector();
-		//toolbarAnalysis       = new Vector();
-
-		// Panels
-		//analysisPanels = new Vector();
-		//designPanels = new Vector();
-
-	}
-
-	private void initActions() {
-		actions = new TGUIAction[TGUIAction.NB_ACTION];
-		for(int i=0; i<TGUIAction.NB_ACTION; i++) {
-			actions[i] = new TGUIAction(i);
-			actions[i].addActionListener(this);
-			//actions[i].addKeyListener(this);
-		}
-	}
-
-	public String getTitle() {
-		return frame.getTitle();
-	}
-
-	public boolean hasChanged() {
-		return hasChanged;
-	}
-
-	public void resetChange() {
-		hasChanged = false;
-	}
-
-	public void changeMade(TDiagramPanel tdp, int type) {
-		hasChanged = true;
-		if (tdp != null) {
-			switch (type) {
-			case -1:
-				// Structural change
-				break;
-			case TDiagramPanel.NEW_COMPONENT:
-				//TraceManager.addDev("New Component");
-				tdp.structureChanged();
-				break;
-			case TDiagramPanel.NEW_CONNECTOR:
-				//TraceManager.addDev("New Connector");
-				tdp.structureChanged();
-				break;
-			case TDiagramPanel.REMOVE_COMPONENT:
-				//TraceManager.addDev("Remove Component");
-				tdp.structureChanged();
-				break;
-			case TDiagramPanel.MOVE_CONNECTOR:
-				//TraceManager.addDev("Move Connector");
-				tdp.structureChanged();
-				break;
-			case TDiagramPanel.CHANGE_VALUE_COMPONENT:
-				//TraceManager.addDev("Value of component changed");
-				tdp.valueChanged();
-				break;
-			case TDiagramPanel.MOVE_COMPONENT:
-				//TraceManager.addDev("Component moved");
-				break;
-			default:
-
-			}
-		}
-		setMode(MODEL_CHANGED);
-		Point p;
-		if (tdp == null) {
-			p = getCurrentSelectedPoint();
-		} else {
-			p = getPoint(tdp);
-		}
-		//TraceManager.addDev("Change made!");
-		gtm.saveOperation(p);
-		dtree.toBeUpdated();
-	}
-
-	public void setMethodologicalMode(byte m) {
-		methoMode = m;
-		switch(methoMode) {
-		case METHO_ANALYSIS:
-			break;
-		case METHO_DESIGN:
-			break;
-		default:
-		}
-	}
-
-	public void setMode(byte m) {
-		mode = m;
-		ModeManager.setMode(mode, actions, mainBar, this);
-	}
-
-
-	//@author: Huy TRUONG
-	public JToolBarMainTurtle getMainBar(){
-		return this.mainBar;
-	}
-	//--
-
-	public void activeActions(boolean b) {
-		for(int i=0; i<TGUIAction.NB_ACTION; i++) {
-			actions[i].setEnabled(b);
-		}
-	}
-
-	public String getModelFileFullPath() {
-		if (file == null) {
-			return "./";
-		}
-		return file.getAbsolutePath();
-	}
-
-	public void periodicAction() {
-		//TraceManager.addDev("Autosaving ");
-		if (file == null) {
-			return;
-		}
-
-		File fileSave = new File(file.getAbsolutePath() + "~");
-		TraceManager.addDev("Autosaving in " + fileSave.getAbsolutePath());
-		status.setText("Autosaving in " + fileSave.getAbsolutePath());
-
-		if(checkFileForSave(fileSave)) {
-			try {
-				String s = gtm.makeXMLFromTurtleModeling(-1);
-				FileOutputStream fos = new FileOutputStream(fileSave);
-				fos.write(s.getBytes());
-				fos.close();
-			} catch (Exception e) {
-				TraceManager.addDev("Error during autosave: " + e.getMessage());
-				status.setText("Error during autosave: " + e.getMessage());
-				return;
-			}
-		}
-		status.setText("Autosave done in " + fileSave.getAbsolutePath());
-
-
-	}
-
-	public void search(String text) {
-
-		Vector<Object> elements = new Vector<Object>();
-
-		TURTLEPanel panel;
-		for(int i=0; i<tabs.size(); i++) {
-			panel = tabs.get(i);
-			panel.searchForText(text.toLowerCase(), elements);
-		}
-
-		gtm.setElementsOfSearchTree(elements);
-		//TraceManager.addDev("Found " + elements.size() + " elements");
-		dtree.forceUpdate();
-	}
-
-
-	public List<Invariant> getInvariants() {
-		return gtm.getInvariants();
-	}
-
-	public List<RG> getRGs() {
-		return gtm.getRGs();
-	}
-
-	public void addRG(RG _newGraph) {
-		gtm.addRG(_newGraph);
-		dtree.toBeUpdated();
-	}
-
-	public void removeRG(RG _toBeRemoved) {
-		gtm.removeRG(_toBeRemoved);
-		dtree.toBeUpdated();
-	}
-
-	public void minimizeRG(RG toBeMinimized) {
-		JFrameMinimize jfm = new JFrameMinimize(frame, this, "Graph minimization", toBeMinimized);
-		//jfm.setSize(900, 700);
-		GraphicLib.centerOnParent(jfm, 900, 700);
-		jfm.setVisible(true);
-	}
-
-
-	public void setCurrentInvariant(Invariant inv) {
-		currentInvariant = inv;
-	}
-
-	public Invariant getCurrentInvariant() {
-		return currentInvariant;
-	}
-
-	public TGComponent hasCheckableMasterMutex() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-
-		if (tp instanceof AvatarDesignPanel) {
-			return ((AvatarDesignPanel)tp).hasCheckableMasterMutex();
-		}
-
-		return null;
-	}
-
-	public void removeAllMutualExclusionWithMasterMutex() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-
-		if (tp instanceof AvatarDesignPanel) {
-			((AvatarDesignPanel)tp).removeAllMutualExclusionWithMasterMutex();
-		}
-
-	}
-
-
-
-
-	private int addAnalysisPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		AnalysisPanel ap = new AnalysisPanel(this);
-		tabs.add(index, ap); // should look for the first
-		//mainTabbedPane.addTab(name, IconManager.imgic17, ap.tabbedPane, "Opens analysis diagrams");
-		mainTabbedPane.add(ap.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open analysis diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic17);
-		ap.init();
-		//TraceManager.addDev("Main analysis added");
-		return index;
-	}
-
-	private int addTMLCPPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		TMLCommunicationPatternPanel tmlcpp = new TMLCommunicationPatternPanel(this);
-		tabs.add( index, tmlcpp ); // should look for the first
-		//mainTabbedPane.addTab(name, IconManager.imgic17, ap.tabbedPane, "Opens analysis diagrams");
-		mainTabbedPane.add(tmlcpp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open CP diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic17);
-		tmlcpp.init();
-		//TraceManager.addDev("Main analysis added");
-		return index;
-	}
-
-	private int addAvatarAnalysisPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		AvatarAnalysisPanel aap = new AvatarAnalysisPanel(this);
-		tabs.add(index, aap); // should look for the first
-		//mainTabbedPane.addTab(name, IconManager.imgic17, ap.tabbedPane, "Opens analysis diagrams");
-		mainTabbedPane.add(aap.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open analysis diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic17);
-		aap.init();
-		//TraceManager.addDev("Main analysis added");
-		return index;
-	}
-
-	private int addAttackTreePanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		AttackTreePanel atp = new AttackTreePanel(this);
-		tabs.add(index, atp); // should look for the first
-		mainTabbedPane.add(atp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open attack tree diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic1074);
-		atp.init();
-		return index;
-	}
-
-	private int addRequirementPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		RequirementPanel rp = new RequirementPanel(this);
-		tabs.add(index, rp); // should look for the first
-		mainTabbedPane.add(rp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open requirement diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic1000);
-		rp.init();
-		return index;
-	}
-
-	private int addAvatarDesignPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		AvatarDesignPanel adp = new AvatarDesignPanel(this);
-		tabs.add(index, adp);
-		mainTabbedPane.add(adp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open AVATAR design diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic80);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		adp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addAvatarRequirementPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		AvatarRequirementPanel arp = new AvatarRequirementPanel(this);
-		tabs.add(index, arp);
-		mainTabbedPane.add(arp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open AVATAR requirement diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic82);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		arp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addAvatarMADPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		AvatarMADsPanel amadsp = new AvatarMADsPanel(this);
-		tabs.add(index, amadsp);
-		mainTabbedPane.add(amadsp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open AVATAR Modeling Assumptions diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic82);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		amadsp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addDesignPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		DesignPanel dp = new DesignPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open design diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic14);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addTMLDesignPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		TMLDesignPanel dp = new TMLDesignPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open DIPLODOCUS design diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic62);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addDiplodocusMethodologyPanel(String name, int index, boolean addDefaultElements) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		DiplodocusMethodologyPanel dp = new DiplodocusMethodologyPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open DIPLODOCUS methodology");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic98);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init(name);
-		if (addDefaultElements) {
-			dp.initElements();
-		}
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addAvatarMethodologyPanel(String name, int index, boolean addDefaultElements) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-
-		TraceManager.addDev("New avatar methodo panel");
-		AvatarMethodologyPanel dp = new AvatarMethodologyPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open AVATAR methodology");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic99);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init(name);
-		if (addDefaultElements) {
-			dp.initElements();
-		}
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addSysmlsecMethodologyPanel(String name, int index, boolean addDefaultElements) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		TraceManager.addDev("New SysMLSec Methodopanel");
-		SysmlsecMethodologyPanel dp = new SysmlsecMethodologyPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open SysML-Sec methodology");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic99);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init(name);
-		if (addDefaultElements) {
-			dp.initElements();
-		}
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-
-	private int addTMLComponentDesignPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		TMLComponentDesignPanel dp = new TMLComponentDesignPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open DIPLODOCUS component design diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic1208);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addADDPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		ADDPanel dp = new ADDPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open deployment diagram");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic60);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addTMLArchiPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		TMLArchiPanel dp = new TMLArchiPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open DIPLODOCUS architecture diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic60);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	//Return the list of all the TMLArchiDiagramPanels
-	public Vector<TMLArchiPanel> getTMLArchiDiagramPanels()     {
-
-		Vector<TMLArchiPanel> panelsList = new Vector<TMLArchiPanel>();
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if ( tp instanceof TMLArchiPanel) {
-				panelsList.add( (TMLArchiPanel) (tp) );
-			}
-		}
-		return panelsList;
-	}
-
-	public Vector<String> getAllTMLTaskNames() {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLDesignPanel) {
-				list.addAll(((TMLDesignPanel)tp).getAllTMLTaskNames(mainTabbedPane.getTitleAt(i)));
-			}
-		}
-		return list;
-	}
-	public Vector<String> getTMLTasks(){
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLDesignPanel) {
-				list.addAll(((TMLDesignPanel)tp).getAllTMLTaskNames(mainTabbedPane.getTitleAt(i)));
-			}
-			if (tp instanceof TMLComponentDesignPanel) {
-				list.addAll(((TMLComponentDesignPanel)tp).getAllTMLTaskNames(mainTabbedPane.getTitleAt(i)));
-			}
-		}
-
-		return list;
-	}
-
-	public Vector<String> getAllApplicationTMLTasksAttributes() {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-
-		for( int i = 0; i < tabs.size(); i++ )  {
-			tp = tabs.elementAt(i);
-			if( tp instanceof TMLComponentDesignPanel ) {
-				list.addAll( ((TMLComponentDesignPanel)tp).getAllTMLTasksAttributes() );
-			}
-		}
-
-		return list;
-	}
-
-	public ArrayList<TMLCommunicationPatternPanel> getAllTMLCP() {
-		TURTLEPanel tp;
-		ArrayList<TMLCommunicationPatternPanel> list = new ArrayList<TMLCommunicationPatternPanel>();
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if( tp instanceof TMLCommunicationPatternPanel )    {
-				list.add( (TMLCommunicationPatternPanel) tp );
-			}
-		}
-		return list;
-	}
-
-	public void updateAllReferences() {
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel) {
-				((TMLComponentDesignPanel)tp).tmlctdp.delayedLoad();
-				//((TMLComponentDesignPanel)tp).tmlctdp.updatePorts();
-			}
-		}
-	}
-
-	public void updateAllPorts() {
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel) {
-				//((TMLComponentDesignPanel)tp).tmlctdp.delayedLoad();
-				((TMLComponentDesignPanel)tp).tmlctdp.updatePorts();
-			}
-		}
-	}
-
-	public Vector<String> getAllTMLCommunicationNames() {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLDesignPanel) {
-				list.addAll(((TMLDesignPanel)tp).getAllTMLCommunicationNames(mainTabbedPane.getTitleAt(i)));
-			} else if (tp instanceof TMLComponentDesignPanel) {
-				list.addAll(((TMLComponentDesignPanel)tp).getAllTMLCommunicationNames(mainTabbedPane.getTitleAt(i)));
-			}
-		}
-		return list;
-	}
-
-	public Vector<String> getAllTMLInputPorts() {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			/*if (tp instanceof TMLDesignPanel) {
+    }
+
+    public void search(String text) {
+
+        Vector<Object> elements = new Vector<Object>();
+
+        TURTLEPanel panel;
+        for(int i=0; i<tabs.size(); i++) {
+            panel = tabs.get(i);
+            panel.searchForText(text.toLowerCase(), elements);
+        }
+
+        gtm.setElementsOfSearchTree(elements);
+        //TraceManager.addDev("Found " + elements.size() + " elements");
+        dtree.forceUpdate();
+    }
+
+
+    public List<Invariant> getInvariants() {
+        return gtm.getInvariants();
+    }
+
+    public List<RG> getRGs() {
+        return gtm.getRGs();
+    }
+
+    public void addRG(RG _newGraph) {
+        gtm.addRG(_newGraph);
+        dtree.toBeUpdated();
+    }
+
+    public void removeRG(RG _toBeRemoved) {
+        gtm.removeRG(_toBeRemoved);
+        dtree.toBeUpdated();
+    }
+
+    public void minimizeRG(RG toBeMinimized) {
+        JFrameMinimize jfm = new JFrameMinimize(frame, this, "Graph minimization", toBeMinimized);
+        //jfm.setSize(900, 700);
+        GraphicLib.centerOnParent(jfm, 900, 700);
+        jfm.setVisible(true);
+    }
+
+
+    public void setCurrentInvariant(Invariant inv) {
+        currentInvariant = inv;
+    }
+
+    public Invariant getCurrentInvariant() {
+        return currentInvariant;
+    }
+
+    public TGComponent hasCheckableMasterMutex() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+
+        if (tp instanceof AvatarDesignPanel) {
+            return ((AvatarDesignPanel)tp).hasCheckableMasterMutex();
+        }
+
+        return null;
+    }
+
+    public void removeAllMutualExclusionWithMasterMutex() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+
+        if (tp instanceof AvatarDesignPanel) {
+            ((AvatarDesignPanel)tp).removeAllMutualExclusionWithMasterMutex();
+        }
+
+    }
+
+
+
+
+    private int addAnalysisPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        AnalysisPanel ap = new AnalysisPanel(this);
+        tabs.add(index, ap); // should look for the first
+        //mainTabbedPane.addTab(name, IconManager.imgic17, ap.tabbedPane, "Opens analysis diagrams");
+        mainTabbedPane.add(ap.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open analysis diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic17);
+        ap.init();
+        //TraceManager.addDev("Main analysis added");
+        return index;
+    }
+
+    private int addTMLCPPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        TMLCommunicationPatternPanel tmlcpp = new TMLCommunicationPatternPanel(this);
+        tabs.add( index, tmlcpp ); // should look for the first
+        //mainTabbedPane.addTab(name, IconManager.imgic17, ap.tabbedPane, "Opens analysis diagrams");
+        mainTabbedPane.add(tmlcpp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open CP diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic17);
+        tmlcpp.init();
+        //TraceManager.addDev("Main analysis added");
+        return index;
+    }
+
+    private int addAvatarAnalysisPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        AvatarAnalysisPanel aap = new AvatarAnalysisPanel(this);
+        tabs.add(index, aap); // should look for the first
+        //mainTabbedPane.addTab(name, IconManager.imgic17, ap.tabbedPane, "Opens analysis diagrams");
+        mainTabbedPane.add(aap.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open analysis diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic17);
+        aap.init();
+        //TraceManager.addDev("Main analysis added");
+        return index;
+    }
+
+    private int addAttackTreePanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        AttackTreePanel atp = new AttackTreePanel(this);
+        tabs.add(index, atp); // should look for the first
+        mainTabbedPane.add(atp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open attack tree diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic1074);
+        atp.init();
+        return index;
+    }
+
+    private int addRequirementPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        RequirementPanel rp = new RequirementPanel(this);
+        tabs.add(index, rp); // should look for the first
+        mainTabbedPane.add(rp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open requirement diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic1000);
+        rp.init();
+        return index;
+    }
+
+    private int addAvatarDesignPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        AvatarDesignPanel adp = new AvatarDesignPanel(this);
+        tabs.add(index, adp);
+        mainTabbedPane.add(adp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open AVATAR design diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic80);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        adp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addAvatarRequirementPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        AvatarRequirementPanel arp = new AvatarRequirementPanel(this);
+        tabs.add(index, arp);
+        mainTabbedPane.add(arp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open AVATAR requirement diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic82);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        arp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addAvatarMADPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        AvatarMADsPanel amadsp = new AvatarMADsPanel(this);
+        tabs.add(index, amadsp);
+        mainTabbedPane.add(amadsp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open AVATAR Modeling Assumptions diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic82);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        amadsp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addDesignPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        DesignPanel dp = new DesignPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open design diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic14);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addTMLDesignPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        TMLDesignPanel dp = new TMLDesignPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open DIPLODOCUS design diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic62);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addDiplodocusMethodologyPanel(String name, int index, boolean addDefaultElements) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        DiplodocusMethodologyPanel dp = new DiplodocusMethodologyPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open DIPLODOCUS methodology");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic98);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init(name);
+        if (addDefaultElements) {
+            dp.initElements();
+        }
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addAvatarMethodologyPanel(String name, int index, boolean addDefaultElements) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+
+        TraceManager.addDev("New avatar methodo panel");
+        AvatarMethodologyPanel dp = new AvatarMethodologyPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open AVATAR methodology");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic99);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init(name);
+        if (addDefaultElements) {
+            dp.initElements();
+        }
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addSysmlsecMethodologyPanel(String name, int index, boolean addDefaultElements) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        TraceManager.addDev("New SysMLSec Methodopanel");
+        SysmlsecMethodologyPanel dp = new SysmlsecMethodologyPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open SysML-Sec methodology");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic99);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init(name);
+        if (addDefaultElements) {
+            dp.initElements();
+        }
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+
+    private int addTMLComponentDesignPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        TMLComponentDesignPanel dp = new TMLComponentDesignPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open DIPLODOCUS component design diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic1208);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addADDPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        ADDPanel dp = new ADDPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open deployment diagram");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic60);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addTMLArchiPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        TMLArchiPanel dp = new TMLArchiPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open DIPLODOCUS architecture diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic60);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    //Return the list of all the TMLArchiDiagramPanels
+    public Vector<TMLArchiPanel> getTMLArchiDiagramPanels()     {
+
+        Vector<TMLArchiPanel> panelsList = new Vector<TMLArchiPanel>();
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if ( tp instanceof TMLArchiPanel) {
+                panelsList.add( (TMLArchiPanel) (tp) );
+            }
+        }
+        return panelsList;
+    }
+
+    public Vector<String> getAllTMLTaskNames() {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLDesignPanel) {
+                list.addAll(((TMLDesignPanel)tp).getAllTMLTaskNames(mainTabbedPane.getTitleAt(i)));
+            }
+        }
+        return list;
+    }
+    public Vector<String> getTMLTasks(){
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLDesignPanel) {
+                list.addAll(((TMLDesignPanel)tp).getAllTMLTaskNames(mainTabbedPane.getTitleAt(i)));
+            }
+            if (tp instanceof TMLComponentDesignPanel) {
+                list.addAll(((TMLComponentDesignPanel)tp).getAllTMLTaskNames(mainTabbedPane.getTitleAt(i)));
+            }
+        }
+
+        return list;
+    }
+
+    public Vector<String> getAllApplicationTMLTasksAttributes() {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+
+        for( int i = 0; i < tabs.size(); i++ )  {
+            tp = tabs.elementAt(i);
+            if( tp instanceof TMLComponentDesignPanel ) {
+                list.addAll( ((TMLComponentDesignPanel)tp).getAllTMLTasksAttributes() );
+            }
+        }
+
+        return list;
+    }
+
+    public ArrayList<TMLCommunicationPatternPanel> getAllTMLCP() {
+        TURTLEPanel tp;
+        ArrayList<TMLCommunicationPatternPanel> list = new ArrayList<TMLCommunicationPatternPanel>();
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if( tp instanceof TMLCommunicationPatternPanel )    {
+                list.add( (TMLCommunicationPatternPanel) tp );
+            }
+        }
+        return list;
+    }
+
+    public void updateAllReferences() {
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel) {
+                ((TMLComponentDesignPanel)tp).tmlctdp.delayedLoad();
+                //((TMLComponentDesignPanel)tp).tmlctdp.updatePorts();
+            }
+        }
+    }
+
+    public void updateAllPorts() {
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel) {
+                //((TMLComponentDesignPanel)tp).tmlctdp.delayedLoad();
+                ((TMLComponentDesignPanel)tp).tmlctdp.updatePorts();
+            }
+        }
+    }
+
+    public Vector<String> getAllTMLCommunicationNames() {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLDesignPanel) {
+                list.addAll(((TMLDesignPanel)tp).getAllTMLCommunicationNames(mainTabbedPane.getTitleAt(i)));
+            } else if (tp instanceof TMLComponentDesignPanel) {
+                list.addAll(((TMLComponentDesignPanel)tp).getAllTMLCommunicationNames(mainTabbedPane.getTitleAt(i)));
+            }
+        }
+        return list;
+    }
+
+    public Vector<String> getAllTMLInputPorts() {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            /*if (tp instanceof TMLDesignPanel) {
               list.addAll(((TMLDesignPanel)tp).getAllTMLChannelNames( mainTabbedPane.getTitleAt(i)) );
               } else*/
-			if( tp instanceof TMLComponentDesignPanel ) {
-				list.addAll(((TMLComponentDesignPanel)tp).getAllTMLInputPorts( mainTabbedPane.getTitleAt(i)) );
-			}
-		}
-		return list;
-	}
-
-	public Vector<String> getAllTMLEventNames() {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-
-		for( int i = 0; i < tabs.size(); i++ ) {
-			tp = ( TURTLEPanel )( tabs.elementAt(i) );
-			if ( tp instanceof TMLDesignPanel ) {
-				list.addAll( ( (TMLDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) );
-			} else if ( tp instanceof TMLComponentDesignPanel ) {
-				list.addAll( ( (TMLComponentDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) );
-			}
-		}
-		return list;
-	}
-
-	public Vector<String> getAllNonMappedTMLTaskNames(TMLArchiDiagramPanel tadp, String ref, String name) {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-		boolean b;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLDesignPanel) {
-				b = (mainTabbedPane.getTitleAt(i).compareTo(ref) == 0);
-				list.addAll(((TMLDesignPanel)tp).getAllNonMappedTMLTaskNames(mainTabbedPane.getTitleAt(i), tadp, b, name));
-			}
-			if (tp instanceof TMLComponentDesignPanel) {
-				b = (mainTabbedPane.getTitleAt(i).compareTo(ref) == 0);
-				list.addAll(((TMLComponentDesignPanel)tp).getAllNonMappedTMLPrimitiveComponentNames(mainTabbedPane.getTitleAt(i), tadp, b, name));
-			}
-		}
-
-		return list;
-	}
-
-	public Vector<String> getAllNonMappedAvatarBlockNames(ADDDiagramPanel tadp, String ref, String name) {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-		boolean b;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof AvatarDesignPanel) {
-				b = (mainTabbedPane.getTitleAt(i).compareTo(ref) == 0);
-				list.addAll(((AvatarDesignPanel)tp).getAllNonMappedAvatarBlockNames(mainTabbedPane.getTitleAt(i), tadp, b, name));
-			}
-		}
-
-		return list;
-	}
-
-	public Vector<String> getAllNonMappedAvatarChannelNames(ADDDiagramPanel tadp, String ref, String name) {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-		boolean b;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof AvatarDesignPanel) {
-				b = (mainTabbedPane.getTitleAt(i).compareTo(ref) == 0);
-				list.addAll(((AvatarDesignPanel)tp).getAllNonMappedAvatarChannelNames(mainTabbedPane.getTitleAt(i), tadp, b, name));
-			}
-		}
-
-		return list;
-	}
-
-	public Vector<String> getAllCompositeComponent(TMLComponentTaskDiagramPanel tcdp) {
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-		// boolean b;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel)  {
-				if (((TMLComponentDesignPanel)tp).tmlctdp != tcdp) {
-					list.addAll(((TMLComponentDesignPanel)tp).getAllCompositeComponent(mainTabbedPane.getTitleAt(i)));
-				}
-			}
-		}
-
-		return list;
-	}
-
-	private int addTURTLEOSDesignPanel(String name, int index) {
-
-		if (index == -1) {
-			index = tabs.size();
-		}
-		TURTLEOSDesignPanel dp = new TURTLEOSDesignPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open TURTLE-OS design diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic14);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init();
-		TraceManager.addDev("TURTLE OS Design added index=" + index);
-		return index;
-	}
-
-	private int addNCDesignPanel(String name, int index) {
-
-		if (index == -1) {
-			index = tabs.size();
-		}
-		NCPanel ncp = new NCPanel(this);
-		tabs.add(index, ncp);
-		mainTabbedPane.add(ncp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open network calculus diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic60);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		ncp.init();
-		//TraceManager.addDev("TURTLE OS Design added index=" + index);
-		return index;
-	}
-
-	/*private int addAvatarDesignPanel(String name, int index) {
+            if( tp instanceof TMLComponentDesignPanel ) {
+                list.addAll(((TMLComponentDesignPanel)tp).getAllTMLInputPorts( mainTabbedPane.getTitleAt(i)) );
+            }
+        }
+        return list;
+    }
+
+    public Vector<String> getAllTMLEventNames() {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+
+        for( int i = 0; i < tabs.size(); i++ ) {
+            tp = ( TURTLEPanel )( tabs.elementAt(i) );
+            if ( tp instanceof TMLDesignPanel ) {
+                list.addAll( ( (TMLDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) );
+            } else if ( tp instanceof TMLComponentDesignPanel ) {
+                list.addAll( ( (TMLComponentDesignPanel)tp ).getAllTMLEventNames( mainTabbedPane.getTitleAt(i) ) );
+            }
+        }
+        return list;
+    }
+
+    public Vector<String> getAllNonMappedTMLTaskNames(TMLArchiDiagramPanel tadp, String ref, String name) {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+        boolean b;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLDesignPanel) {
+                b = (mainTabbedPane.getTitleAt(i).compareTo(ref) == 0);
+                list.addAll(((TMLDesignPanel)tp).getAllNonMappedTMLTaskNames(mainTabbedPane.getTitleAt(i), tadp, b, name));
+            }
+            if (tp instanceof TMLComponentDesignPanel) {
+                b = (mainTabbedPane.getTitleAt(i).compareTo(ref) == 0);
+                list.addAll(((TMLComponentDesignPanel)tp).getAllNonMappedTMLPrimitiveComponentNames(mainTabbedPane.getTitleAt(i), tadp, b, name));
+            }
+        }
+
+        return list;
+    }
+
+    public Vector<String> getAllNonMappedAvatarBlockNames(ADDDiagramPanel tadp, String ref, String name) {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+        boolean b;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof AvatarDesignPanel) {
+                b = (mainTabbedPane.getTitleAt(i).compareTo(ref) == 0);
+                list.addAll(((AvatarDesignPanel)tp).getAllNonMappedAvatarBlockNames(mainTabbedPane.getTitleAt(i), tadp, b, name));
+            }
+        }
+
+        return list;
+    }
+
+    public Vector<String> getAllNonMappedAvatarChannelNames(ADDDiagramPanel tadp, String ref, String name) {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+        boolean b;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof AvatarDesignPanel) {
+                b = (mainTabbedPane.getTitleAt(i).compareTo(ref) == 0);
+                list.addAll(((AvatarDesignPanel)tp).getAllNonMappedAvatarChannelNames(mainTabbedPane.getTitleAt(i), tadp, b, name));
+            }
+        }
+
+        return list;
+    }
+
+    public Vector<String> getAllCompositeComponent(TMLComponentTaskDiagramPanel tcdp) {
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+        // boolean b;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel)  {
+                if (((TMLComponentDesignPanel)tp).tmlctdp != tcdp) {
+                    list.addAll(((TMLComponentDesignPanel)tp).getAllCompositeComponent(mainTabbedPane.getTitleAt(i)));
+                }
+            }
+        }
+
+        return list;
+    }
+
+    private int addTURTLEOSDesignPanel(String name, int index) {
+
+        if (index == -1) {
+            index = tabs.size();
+        }
+        TURTLEOSDesignPanel dp = new TURTLEOSDesignPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open TURTLE-OS design diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic14);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init();
+        TraceManager.addDev("TURTLE OS Design added index=" + index);
+        return index;
+    }
+
+    private int addNCDesignPanel(String name, int index) {
+
+        if (index == -1) {
+            index = tabs.size();
+        }
+        NCPanel ncp = new NCPanel(this);
+        tabs.add(index, ncp);
+        mainTabbedPane.add(ncp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open network calculus diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic60);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        ncp.init();
+        //TraceManager.addDev("TURTLE OS Design added index=" + index);
+        return index;
+    }
+
+    /*private int addAvatarDesignPanel(String name, int index) {
 
       if (index == -1) {
       index = tabs.size();
@@ -1284,7 +1286,7 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
       return index;
       }*/
 
-	/*private int addAvatarRequirementPanel(String name, int index) {
+    /*private int addAvatarRequirementPanel(String name, int index) {
 
       if (index == -1) {
       index = tabs.size();
@@ -1301,2603 +1303,2619 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
       return index;
       }*/
 
-	private int addProActiveDesignPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		ProactiveDesignPanel dp = new ProactiveDesignPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open ProActive design diagrams");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic14);
-		//mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
-		dp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	private int addDeploymentPanel(String name, int index) {
-		if (index == -1) {
-			index = tabs.size();
-		}
-		DeploymentPanel dp = new DeploymentPanel(this);
-		tabs.add(index, dp);
-		mainTabbedPane.add(dp.tabbedPane, index);
-		mainTabbedPane.setToolTipTextAt(index, "Open deployment diagram");
-		mainTabbedPane.setTitleAt(index, name);
-		mainTabbedPane.setIconAt(index, IconManager.imgic60);
-		dp.init();
-		//ystem.out.println("Design added");
-		return index;
-	}
-
-	public int createAvatarDesign(String name) {
-		int index = addAvatarDesignPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createAvatarRequirement(String name) {
-		int index = addAvatarRequirementPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createAvatarMADs(String name) {
-		int index = addAvatarMADPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createDesign(String name) {
-		int index = addDesignPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createDiplodocusMethodology(String name) {
-		int index = addDiplodocusMethodologyPanel(name, -1, false);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createAvatarMethodology(String name) {
-		int index = addAvatarMethodologyPanel(name, -1, false);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createSysmlsecMethodology(String name) {
-		int index = addSysmlsecMethodologyPanel(name, -1, false);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createTMLDesign(String name) {
-		int index = addTMLDesignPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createTMLComponentDesign(String name) {
-		int index = addTMLComponentDesignPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createTMLCP(String name) {
-		int index = addTMLCPPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createTMLArchitecture(String name) {
-		int index = addTMLArchiPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createADD(String name) {
-		int index = addADDPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createTURTLEOSDesign(String name) {
-		int index = addTURTLEOSDesignPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createProActiveDesign(String name) {
-		int index = addProActiveDesignPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createAnalysis(String name) {
-		int index = addAnalysisPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createAvatarAnalysis(String name) {
-		int index = addAvatarAnalysisPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createDeployment(String name) {
-		int index = addDeploymentPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createNC(String name) {
-		int index = addNCDesignPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createRequirement(String name) {
-		int index = addRequirementPanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public int createAttackTree(String name) {
-		int index = addAttackTreePanel(name, -1);
-		mainTabbedPane.setSelectedIndex(index);
-		return index;
-	}
-
-	public void setIODName(int analysisIndex, String name) {
-		AnalysisPanel ap = (AnalysisPanel)(tabs.elementAt(analysisIndex));
-		ap.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setDeploymentName(int deploymentIndex, String name) {
-		DeploymentPanel dp = (DeploymentPanel)(tabs.elementAt(deploymentIndex));
-		dp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setNCName(int ncIndex, String name) {
-		NCPanel ncp = (NCPanel)(tabs.elementAt(ncIndex));
-		ncp.tabbedPane.setTitleAt(0, name);
-	}
-
-
-
-	// add main panel for editing TURTLE diagrams
-	private void addTURTLEPanel() {
-
-		//TraceManager.addDev("New TURTLE Panels");
-
-    	// Issue #41 Ordering of tabbed panes 
-		mainTabbedPane = GraphicLib.createTabbedPane();//new JTabbedPane();
-		mainTabbedPane.setBackground(ColorManager.MainTabbedPane);
-		mainTabbedPane.setForeground(Color.black);
-
-		BACK_COLOR = UIManager.get("TabbedPane.selected");
-		//UIManager.put("TabbedPane.tabAreaBackground", ColorManager.MainTabbedPaneBack);
-		UIManager.put("TabbedPane.selected", ColorManager.MainTabbedPaneSelect);
-		//UIManager.put("TabbedPane.darkShadow", Color.black);
-		UIManager.put("TabbedPane.focus", Color.blue);
-		/*UIManager.put("TabbedPane.highlight", Color.blue);
+    private int addProActiveDesignPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        ProactiveDesignPanel dp = new ProactiveDesignPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open ProActive design diagrams");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic14);
+        //mainTabbedPane.addTab(name, IconManager.imgic14, dp.tabbedPane, "Opens design diagrams");
+        dp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    private int addDeploymentPanel(String name, int index) {
+        if (index == -1) {
+            index = tabs.size();
+        }
+        DeploymentPanel dp = new DeploymentPanel(this);
+        tabs.add(index, dp);
+        mainTabbedPane.add(dp.tabbedPane, index);
+        mainTabbedPane.setToolTipTextAt(index, "Open deployment diagram");
+        mainTabbedPane.setTitleAt(index, name);
+        mainTabbedPane.setIconAt(index, IconManager.imgic60);
+        dp.init();
+        //ystem.out.println("Design added");
+        return index;
+    }
+
+    public int createAvatarDesign(String name) {
+        int index = addAvatarDesignPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createAvatarRequirement(String name) {
+        int index = addAvatarRequirementPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createAvatarMADs(String name) {
+        int index = addAvatarMADPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createDesign(String name) {
+        int index = addDesignPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createDiplodocusMethodology(String name) {
+        int index = addDiplodocusMethodologyPanel(name, -1, false);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createAvatarMethodology(String name) {
+        int index = addAvatarMethodologyPanel(name, -1, false);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createSysmlsecMethodology(String name) {
+        int index = addSysmlsecMethodologyPanel(name, -1, false);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createTMLDesign(String name) {
+        int index = addTMLDesignPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createTMLComponentDesign(String name) {
+        int index = addTMLComponentDesignPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createTMLCP(String name) {
+        int index = addTMLCPPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createTMLArchitecture(String name) {
+        int index = addTMLArchiPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createADD(String name) {
+        int index = addADDPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createTURTLEOSDesign(String name) {
+        int index = addTURTLEOSDesignPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createProActiveDesign(String name) {
+        int index = addProActiveDesignPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createAnalysis(String name) {
+        int index = addAnalysisPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createAvatarAnalysis(String name) {
+        int index = addAvatarAnalysisPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createDeployment(String name) {
+        int index = addDeploymentPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createNC(String name) {
+        int index = addNCDesignPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createRequirement(String name) {
+        int index = addRequirementPanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public int createAttackTree(String name) {
+        int index = addAttackTreePanel(name, -1);
+        mainTabbedPane.setSelectedIndex(index);
+        return index;
+    }
+
+    public void setIODName(int analysisIndex, String name) {
+        AnalysisPanel ap = (AnalysisPanel)(tabs.elementAt(analysisIndex));
+        ap.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setDeploymentName(int deploymentIndex, String name) {
+        DeploymentPanel dp = (DeploymentPanel)(tabs.elementAt(deploymentIndex));
+        dp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setNCName(int ncIndex, String name) {
+        NCPanel ncp = (NCPanel)(tabs.elementAt(ncIndex));
+        ncp.tabbedPane.setTitleAt(0, name);
+    }
+
+
+
+    // add main panel for editing TURTLE diagrams
+    private void addTURTLEPanel() {
+
+        //TraceManager.addDev("New TURTLE Panels");
+		// Issue #41 Ordering of tabbed panes 
+        mainTabbedPane = GraphicLib.createTabbedPane();//new JTabbedPane();
+        mainTabbedPane.setBackground(ColorManager.MainTabbedPane);
+        mainTabbedPane.setForeground(Color.black);
+
+        BACK_COLOR = UIManager.get("TabbedPane.selected");
+        //UIManager.put("TabbedPane.tabAreaBackground", ColorManager.MainTabbedPaneBack);
+        UIManager.put("TabbedPane.selected", ColorManager.MainTabbedPaneSelect);
+        //UIManager.put("TabbedPane.darkShadow", Color.black);
+        UIManager.put("TabbedPane.focus", Color.blue);
+        /*UIManager.put("TabbedPane.highlight", Color.blue);
           UIManager.put("TabbedPane.lightHighlight", Color.red);
           UIManager.put("TabbedPane.shadow", Color.black);
           UIManager.put("TabbedPane.darkShadow", Color.magenta);
           UIManager.put("TabbedPane.focus", Color.green);*/
-		SwingUtilities.updateComponentTreeUI(mainTabbedPane);
-		mainTabbedPane.setOpaque(true);
-
-
-		ChangeListener cl = new ChangeListener() {
-			public void stateChanged(ChangeEvent e){
-				paneAction(e);
-			}
-		};
-		mainTabbedPane.addChangeListener(cl);
-		panelForTab.add(mainTabbedPane, BorderLayout.CENTER);
-		mainTabbedPane.addMouseListener(new PopupListener(this));
-
-		tabs = new Vector<TURTLEPanel>();
-
-		frame.setVisible(true);
-	}
-
-	public Vector<TURTLEPanel> getTabs() {
-		return tabs;
-	}
-
-	public String getTitleOf(TDiagramPanel _tdp) {
-		TURTLEPanel panel;
-		for(int i=0; i<tabs.size(); i++) {
-			panel = (TURTLEPanel)(tabs.get(i));
-			if (panel.hasTDiagramPanel(_tdp)) {
-				return getTitleAt(panel);
-			}
-		}
-
-		return "Unknown";
-
-
-	}
-
-	public String getTitleAt(TURTLEPanel tp) {
-		int index = tabs.indexOf(tp);
-		if (index == -1) {
-			return "Unknown";
-		}
-		return mainTabbedPane.getTitleAt(index);
-
-	}
-
-	public TURTLEPanel getTURTLEPanel(String s) {
-		for(int i=0; i<mainTabbedPane.getTabCount(); i++) {
-			if (mainTabbedPane.getTitleAt(i).compareTo(s) == 0) {
-				return (TURTLEPanel)(tabs.elementAt(i));
-			}
-		}
-		return null;
-	}
-
-	public void drawAvatarSpecification(AvatarSpecification av) {
-		int index = createAvatarDesign("GeneratedDesign");
-		AvatarDesignPanel adp = (AvatarDesignPanel)(tabs.elementAt(index));
-		gtm.drawPanel(av, adp);
-	}
-
-
-	// Creates the status bar.
-	private     JLabel createStatusBar()  {
-		status = new JLabel("Ready...");
-		status.setBorder(BorderFactory.createEtchedBorder());
-		return status;
-	}
-
-	public void activate(JMenu jm, boolean b) {
-		JMenuItem im;
-		for(int i=0; i<jm.getItemCount(); i++) {
-			im = jm.getItem(i);
-			if (im != null)
-				im.setEnabled(b);
-		}
-	}
-
-	public void start() {
-		// Main window is ready to be drawn on screen
-		if (frame == null) {
-			ErrorGUI.exit(ErrorGUI.GUI);
-		}
-
-		boolean positioned = false;
-
-		if (ConfigurationTTool.configSizeAvailable()) {
-			try {
-				int x = Integer.decode(ConfigurationTTool.LastWindowAttributesX).intValue();
-				int y = Integer.decode(ConfigurationTTool.LastWindowAttributesY).intValue();
-				int width = Integer.decode(ConfigurationTTool.LastWindowAttributesWidth).intValue();
-				int height = Integer.decode(ConfigurationTTool.LastWindowAttributesHeight).intValue();
-				String max = ConfigurationTTool.LastWindowAttributesMax;
-				if (max.compareTo("true") != 0) {
-					frame.setBounds(x, y, width, height);
-					positioned = true;
-				}
-				//TraceManager.addDev("Setting window attributes");
-			} catch (Exception e) {
-				//TraceManager.addDev("Window positioning has failed: " + e.getMessage());
-			}
-		}
-
-		if (!positioned) {
-			frame.setBounds(100, 100, 800, 600);
-			// jdk 1.4 or more
-			frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
-			//TraceManager.addDev("No default window attributes");
-		}
-
-		frame.setVisible(true);
-	}
-
-	public void newTurtleModeling()     {
-		setMode(OPENED);
-		addTURTLEPanel();
-		gtm = new GTURTLEModeling(this, tabs);
-		dtm = new DiagramTreeModel(this);
-		dtree.setModel(dtm);
-	}
-
-	public void closeTurtleModeling() {
-		if (mode != NOT_OPENED) {
-			setMode(NOT_OPENED);
-
-			// tabbed pane
-			for(int i=0; i<tabs.size(); i++) {
-				tabs.elementAt(i).tabbedPane.removeAll();
-			}
-
-			tabs = null;
-			mainTabbedPane = null;
-			panelForTab.removeAll();
-			activetdp = null;
-
-			gtm = null;
-			tclassesToValidate = new LinkedList<TClassInterface> ();
-			MasterGateManager.reinitNameRestriction();
-
-			typeButtonSelected = - 1;
-			idButtonSelected = -1;
-
-			//activeDiagramToolBar = null;
-
-			dtree.reinit();
-			dtree.forceUpdate();
-			frame.setTitle("TTool");
-			frame.repaint();
-		}
-	}
-
-	public void setStatusBarText(String s) {
-		// captitalizeFirstLetter
-		if (s == null)  {
-			return;
-		}
-
-		if (s.length() == 0) {
-			return;
-		}
-
-		if (s.length() > 1) {
-			status.setText(s.substring(0, 1).toUpperCase() + s.substring(1, s.length()));
-		} else {
-			status.setText(s);
-		}
-	}
-
-	public void reinitMainTabbedPane() {
-		mainTabbedPane.removeAll();
-		tabs.removeAllElements();
-	}
-
-	public void newDesign() {
-		//TraceManager.addDev("NEW DESIGN");
-		addDesignPanel("Design", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newDeployment() {
-		//TraceManager.addDev("NEW DESIGN");
-		addDeploymentPanel("Deployment", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newAnalysis() {
-		//TraceManager.addDev("NEW ANALYSIS");
-		addAnalysisPanel("Analysis", 0);
-		((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(0);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newAvatarAnalysis() {
-		//TraceManager.addDev("NEW ANALYSIS");
-		addAvatarAnalysisPanel("Analysis", 0);
-		//((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(0);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-
-	public void newCommunicationPattern() {
-		//TraceManager.addDev("NEW ANALYSIS");
-		//addCommunicationPatternPanel("CP", 0);
-		((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(0);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newTMLDesign() {
-		//TraceManager.addDev("NEW DESIGN");
-		addTMLDesignPanel("DIPLODOCUS_Design", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newDiplodocusMethodology() {
-		//TraceManager.addDev("NEW DESIGN");
-		addDiplodocusMethodologyPanel("DIPLODOCUS_Methodology", -1, true);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newAvatarMethodology() {
-		//TraceManager.addDev("NEW DESIGN");
-		addAvatarMethodologyPanel("AVATAR_Methodology", -1, true);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newSysmlsecMethodology() {
-		//TraceManager.addDev("NEW DESIGN");
-		addSysmlsecMethodologyPanel("SysMLSec_Methodology", -1, true);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newTMLComponentDesign() {
-		//TraceManager.addDev("NEW DESIGN");
-		addTMLComponentDesignPanel("DIPLODOCUS_C_Design", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newTMLCP() {
-		//TraceManager.addDev("NEW ANALYSIS");
-		addTMLCPPanel("CP", 0);
-		((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(0);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newTMLArchi() {
-		//TraceManager.addDev("NEW DIPLO Architecture");
-		addTMLArchiPanel("Architecture", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newADD() {
-		//TraceManager.addDev("NEW Avatar deployment");
-		addADDPanel("Deployment", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newTURTLEOSDesign() {
-		//TraceManager.addDev("NEW DESIGN");
-		addTURTLEOSDesignPanel("TURTLE-OS Design", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-	}
-
-	public void newNCDesign() {
-		//TraceManager.addDev("NEW NC DESIGN");
-		addNCDesignPanel("NC Design", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-	}
-
-	public void newAvatarBD() {
-		//TraceManager.addDev("NEW AVATAR BD");
-		addAvatarDesignPanel("Design", -1);
-		((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-	}
-
-	public void newAvatarRequirement() {
-		//TraceManager.addDev("NEW AVATAR Requirement");
-		addAvatarRequirementPanel("Requirements", 0);
-		//((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(0);
-	}
-
-	public void newAvatarMADs() {
-		//TraceManager.addDev("NEW AVATAR MAD");
-		addAvatarMADPanel("Assumptions", 0);
-		//((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(0);
-	}
-
-	public void newProactiveDesign() {
-		//TraceManager.addDev("NEW DESIGN");
-		/*int index = */addProActiveDesignPanel("ProActive Design", -1);
-		tabs.elementAt(tabs.size()-1).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(tabs.size()-1);
-		//paneAction(null);
-		//frame.repaint();*/
-	}
-
-	public void newAttackTree() {
-		//TraceManager.addDev("NEW ANALYSIS");
-		addAttackTreePanel("Attack Trees", 0);
-		//((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(0);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	public void newRequirement() {
-		//TraceManager.addDev("NEW ANALYSIS");
-		addRequirementPanel("Requirements", 0);
-		//((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
-		mainTabbedPane.setSelectedIndex(0);
-		//paneAction(null);
-		//frame.repaint();
-	}
-
-	// Action listeners
-	public void newProject() {
-		if (mode == NOT_OPENED) {
-			//mode = ProjectManager.TM_OPENED;
-			newTurtleModeling();
-			//gtm.saveOperation(tcdp);
-			file = null;
-			frame.setTitle("TTool: unsaved project");
-		} else {
-			//  check if previous modeling is saved
-			boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
-			if (b) {
-				if (!saveBeforeAction("Save and Start New Modeling", "Start New modeling")) {
-					return;
-				}
-				/*int back = JOptionPane.showConfirmDialog(frame, "Modeling has not been saved\nDo you really want to open a new one ?", "Attention: current modeling not saved ?", JOptionPane.OK_CANCEL_OPTION);
+        SwingUtilities.updateComponentTreeUI(mainTabbedPane);
+        mainTabbedPane.setOpaque(true);
+
+
+        ChangeListener cl = new ChangeListener() {
+                public void stateChanged(ChangeEvent e){
+                    paneAction(e);
+                }
+            };
+        mainTabbedPane.addChangeListener(cl);
+        panelForTab.add(mainTabbedPane, BorderLayout.CENTER);
+        mainTabbedPane.addMouseListener(new PopupListener(this));
+
+        tabs = new Vector<TURTLEPanel>();
+
+        frame.setVisible(true);
+    }
+
+    public Vector<TURTLEPanel> getTabs() {
+        return tabs;
+    }
+
+    public String getTitleOf(TDiagramPanel _tdp) {
+        TURTLEPanel panel;
+        for(int i=0; i<tabs.size(); i++) {
+            panel = (TURTLEPanel)(tabs.get(i));
+            if (panel.hasTDiagramPanel(_tdp)) {
+                return getTitleAt(panel);
+            }
+        }
+
+        return "Unknown";
+
+
+    }
+
+    public String getTitleAt(TURTLEPanel tp) {
+        int index = tabs.indexOf(tp);
+        if (index == -1) {
+            return "Unknown";
+        }
+        return mainTabbedPane.getTitleAt(index);
+
+    }
+
+    public TURTLEPanel getTURTLEPanel(String s) {
+        for(int i=0; i<mainTabbedPane.getTabCount(); i++) {
+            if (mainTabbedPane.getTitleAt(i).compareTo(s) == 0) {
+                return (TURTLEPanel)(tabs.elementAt(i));
+            }
+        }
+        return null;
+    }
+
+    public void drawAvatarSpecification(AvatarSpecification av) {
+        int index = createAvatarDesign("GeneratedDesign");
+        AvatarDesignPanel adp = (AvatarDesignPanel)(tabs.elementAt(index));
+        gtm.drawPanel(av, adp);
+    }
+
+
+    // Creates the status bar.
+    private     JLabel createStatusBar()  {
+        status = new JLabel("Ready...");
+        status.setBorder(BorderFactory.createEtchedBorder());
+        return status;
+    }
+
+    public void activate(JMenu jm, boolean b) {
+        JMenuItem im;
+        for(int i=0; i<jm.getItemCount(); i++) {
+            im = jm.getItem(i);
+            if (im != null)
+                im.setEnabled(b);
+        }
+    }
+
+    public void start() {
+        // Main window is ready to be drawn on screen
+        if (frame == null) {
+            ErrorGUI.exit(ErrorGUI.GUI);
+        }
+
+        boolean positioned = false;
+
+        if (ConfigurationTTool.configSizeAvailable()) {
+            try {
+                int x = Integer.decode(ConfigurationTTool.LastWindowAttributesX).intValue();
+                int y = Integer.decode(ConfigurationTTool.LastWindowAttributesY).intValue();
+                int width = Integer.decode(ConfigurationTTool.LastWindowAttributesWidth).intValue();
+                int height = Integer.decode(ConfigurationTTool.LastWindowAttributesHeight).intValue();
+                String max = ConfigurationTTool.LastWindowAttributesMax;
+                if (max.compareTo("true") != 0) {
+                    frame.setBounds(x, y, width, height);
+                    positioned = true;
+                }
+                //TraceManager.addDev("Setting window attributes");
+            } catch (Exception e) {
+                //TraceManager.addDev("Window positioning has failed: " + e.getMessage());
+            }
+        }
+
+        if (!positioned) {
+            frame.setBounds(100, 100, 800, 600);
+            // jdk 1.4 or more
+            frame.setExtendedState(frame.getExtendedState() | JFrame.MAXIMIZED_BOTH);
+            //TraceManager.addDev("No default window attributes");
+        }
+
+        frame.setVisible(true);
+    }
+
+    public void newTurtleModeling()     {
+        setMode(OPENED);
+        addTURTLEPanel();
+        gtm = new GTURTLEModeling(this, tabs);
+        dtm = new DiagramTreeModel(this);
+        dtree.setModel(dtm);
+    }
+
+    public void closeTurtleModeling() {
+        if (mode != NOT_OPENED) {
+            setMode(NOT_OPENED);
+
+            // tabbed pane
+            for(int i=0; i<tabs.size(); i++) {
+                tabs.elementAt(i).tabbedPane.removeAll();
+            }
+
+            tabs = null;
+            mainTabbedPane = null;
+            panelForTab.removeAll();
+            activetdp = null;
+
+            gtm = null;
+            tclassesToValidate = new LinkedList<TClassInterface> ();
+            MasterGateManager.reinitNameRestriction();
+
+            typeButtonSelected = - 1;
+            idButtonSelected = -1;
+
+            //activeDiagramToolBar = null;
+
+            dtree.reinit();
+            dtree.forceUpdate();
+            frame.setTitle("TTool");
+            frame.repaint();
+        }
+    }
+
+    public void setStatusBarText(String s) {
+        // captitalizeFirstLetter
+        if (s == null)  {
+            return;
+        }
+
+        if (s.length() == 0) {
+            return;
+        }
+
+        if (s.length() > 1) {
+            status.setText(s.substring(0, 1).toUpperCase() + s.substring(1, s.length()));
+        } else {
+            status.setText(s);
+        }
+    }
+
+    public void reinitMainTabbedPane() {
+        mainTabbedPane.removeAll();
+        tabs.removeAllElements();
+    }
+
+    public void newDesign() {
+        //TraceManager.addDev("NEW DESIGN");
+        addDesignPanel("Design", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newDeployment() {
+        //TraceManager.addDev("NEW DESIGN");
+        addDeploymentPanel("Deployment", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newAnalysis() {
+        //TraceManager.addDev("NEW ANALYSIS");
+        addAnalysisPanel("Analysis", 0);
+        ((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(0);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newAvatarAnalysis() {
+        //TraceManager.addDev("NEW ANALYSIS");
+        addAvatarAnalysisPanel("Analysis", 0);
+        //((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(0);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+
+    public void newCommunicationPattern() {
+        //TraceManager.addDev("NEW ANALYSIS");
+        //addCommunicationPatternPanel("CP", 0);
+        ((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(0);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newTMLDesign() {
+        //TraceManager.addDev("NEW DESIGN");
+        addTMLDesignPanel("DIPLODOCUS_Design", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newDiplodocusMethodology() {
+        //TraceManager.addDev("NEW DESIGN");
+        addDiplodocusMethodologyPanel("DIPLODOCUS_Methodology", -1, true);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newAvatarMethodology() {
+        //TraceManager.addDev("NEW DESIGN");
+        addAvatarMethodologyPanel("AVATAR_Methodology", -1, true);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newSysmlsecMethodology() {
+        //TraceManager.addDev("NEW DESIGN");
+        addSysmlsecMethodologyPanel("SysMLSec_Methodology", -1, true);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newTMLComponentDesign() {
+        //TraceManager.addDev("NEW DESIGN");
+        addTMLComponentDesignPanel("DIPLODOCUS_C_Design", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newTMLCP() {
+        //TraceManager.addDev("NEW ANALYSIS");
+        addTMLCPPanel("CP", 0);
+        ((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(0);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newTMLArchi() {
+        //TraceManager.addDev("NEW DIPLO Architecture");
+        addTMLArchiPanel("Architecture", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newADD() {
+        //TraceManager.addDev("NEW Avatar deployment");
+        addADDPanel("Deployment", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newTURTLEOSDesign() {
+        //TraceManager.addDev("NEW DESIGN");
+        addTURTLEOSDesignPanel("TURTLE-OS Design", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+    }
+
+    public void newNCDesign() {
+        //TraceManager.addDev("NEW NC DESIGN");
+        addNCDesignPanel("NC Design", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+    }
+
+    public void newAvatarBD() {
+        //TraceManager.addDev("NEW AVATAR BD");
+        addAvatarDesignPanel("Design", -1);
+        ((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+    }
+
+    public void newAvatarRequirement() {
+        //TraceManager.addDev("NEW AVATAR Requirement");
+        addAvatarRequirementPanel("Requirements", 0);
+        //((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(0);
+    }
+
+    public void newAvatarMADs() {
+        //TraceManager.addDev("NEW AVATAR MAD");
+        addAvatarMADPanel("Assumptions", 0);
+        //((TURTLEPanel)tabs.elementAt(tabs.size()-1)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(0);
+    }
+
+    public void newProactiveDesign() {
+        //TraceManager.addDev("NEW DESIGN");
+        /*int index = */addProActiveDesignPanel("ProActive Design", -1);
+        tabs.elementAt(tabs.size()-1).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(tabs.size()-1);
+        //paneAction(null);
+        //frame.repaint();*/
+    }
+
+    public void newAttackTree() {
+        //TraceManager.addDev("NEW ANALYSIS");
+        addAttackTreePanel("Attack Trees", 0);
+        //((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(0);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    public void newRequirement() {
+        //TraceManager.addDev("NEW ANALYSIS");
+        addRequirementPanel("Requirements", 0);
+        //((TURTLEPanel)tabs.elementAt(0)).tabbedPane.setSelectedIndex(0);
+        mainTabbedPane.setSelectedIndex(0);
+        //paneAction(null);
+        //frame.repaint();
+    }
+
+    // Action listeners
+    public void newProject() {
+        if (mode == NOT_OPENED) {
+            //mode = ProjectManager.TM_OPENED;
+            newTurtleModeling();
+            //gtm.saveOperation(tcdp);
+            file = null;
+            frame.setTitle("TTool: unsaved project");
+        } else {
+            //  check if previous modeling is saved
+            boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
+            if (b) {
+                if (!saveBeforeAction("Save and Start New Modeling", "Start New modeling")) {
+                    return;
+                }
+                /*int back = JOptionPane.showConfirmDialog(frame, "Modeling has not been saved\nDo you really want to open a new one ?", "Attention: current modeling not saved ?", JOptionPane.OK_CANCEL_OPTION);
                   if (back == JOptionPane.CANCEL_OPTION) {
                   return;       */
-				/*}*/
-			}
-			// close current modeling
-			closeTurtleModeling();
-
-			// opens a new one
-			newTurtleModeling();
-
-			//gtm.saveOperation(tcdp);
-
-			file = null;
-			lotosfile = null;
-			simfile = null;
-			dtafile = null;
-			dtadotfile = null;
-			rgfile = null;
-			tlsafile = null;
-			rgdotfile = null;
-			tlsadotfile = null;
-			rgautfile = null;
-			fc2file = null;
-			bcgfile = null;
-			rgautdotfile = null;
-			rgautprojfile = null;
-			rgautprojdotfile = null;
-
-			frame.setTitle("TTool: unsaved project");
-		}
-	}
-
-	public String loadFile(File f) {
-		String s = null;
-
-		if(checkFileForOpen(f)) {
-			try {
-				FileInputStream fis = new FileInputStream(f);
-				int nb = fis.available();
-
-				byte [] ba = new byte[nb];
-				fis.read(ba);
-				fis.close();
-				s = new String(ba);
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-			} catch (OutOfMemoryError er) {
-				JOptionPane.showMessageDialog(frame, "File could not be opened because " + er.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-			}
-		}
-		return s;
-	}
-
-	public void saveFile(File f, String data, String msg) {
-		if(checkFileForSave(f)) {
-			try {
-				if (data == null) {
-					return;
-				}
-				FileOutputStream fos = new FileOutputStream(f);
-				fos.write(data.getBytes());
-				fos.close();
-				JOptionPane.showMessageDialog(frame, msg + " " + f.getAbsolutePath(), "Saving", JOptionPane.INFORMATION_MESSAGE);
-				return;
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be saved because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return;
-			}
-		}
-	}
-
-	public String loadLibrary() {
-		File libfile;
-
-		int returnVal = jfclib.showDialog(frame, "Import library");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return null;
-		}
-
-		libfile = jfclib.getSelectedFile();
-		libfile = FileUtils.addFileExtensionIfMissing(libfile, TLibFilter.getExtension());
-
-		return loadFile(libfile);
-	}
-
-	public String[] loadLotosSpec() {
-		File lotfile;
-
-		int returnVal = jfclot.showDialog(frame, "Load RT-LOTOS specification");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return null;
-		}
-
-		lotfile = jfclot.getSelectedFile();
-		lotfile = FileUtils.addFileExtensionIfMissing(lotfile, RTLFileFilter.getExtension());
-
-		String spec = loadFile(lotfile);
-		if (spec == null) {
-			return null;
-		}
-
-		String [] ret = new String[2];
-		ret[0] = lotfile.getName();
-		ret[1] = spec;
-		return ret;
-	}
-
-	public void saveLotosSpec(String data) {
-		File lotfile;
-
-		int returnVal = jfclot.showDialog(frame, "Save RT-LOTOS specification");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
-
-		lotfile = jfclot.getSelectedFile();
-		lotfile = FileUtils.addFileExtensionIfMissing(lotfile, RTLFileFilter.getExtension());
-
-		saveFile(lotfile, data, "LOTOS specification saved under");
-	}
-
-	public void saveDTA(String tdata, String gdata) {
-		File dtafile;
-
-		/* textual form */
-		DTAFileFilter filter = new DTAFileFilter();
-		jfctgraph.setFileFilter(filter);
-
-		int returnVal = jfctgraph.showDialog(frame, "Save last DTA (textual form)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
-
-		dtafile = jfctgraph.getSelectedFile();
-		dtafile = FileUtils.addFileExtensionIfMissing(dtafile, DTAFileFilter.getExtension());
-
-		saveFile(dtafile, tdata, "Textual DTA saved under");
-
-		/* graphical form */
-		returnVal = jfcggraph.showDialog(frame, "Save last DTA (graphical form)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
-
-		dtafile = jfcggraph.getSelectedFile();
-		dtafile = FileUtils.addFileExtensionIfMissing(dtafile, TDotFilter.getExtension());
-
-		saveFile(dtafile, gdata, "Graphical DTA saved under");
-	}
-
-	public String saveTPNNDRFormat(String tpn) {
-		String s = file.getAbsolutePath();
-		int l = s.length();
-		String myFile = s.substring(0, l-4) + ".ndr";
-		try {
-			FileUtils.saveFile(myFile, tpn);
-		} catch (Exception e) {
-			return "TPN could not be saved in myFile: " +e.getMessage();
-		}
-		return "TPN saved in " +myFile;
-	}
+                /*}*/
+            }
+            // close current modeling
+            closeTurtleModeling();
+
+            // opens a new one
+            newTurtleModeling();
+
+            //gtm.saveOperation(tcdp);
+
+            file = null;
+            lotosfile = null;
+            simfile = null;
+            dtafile = null;
+            dtadotfile = null;
+            rgfile = null;
+            tlsafile = null;
+            rgdotfile = null;
+            tlsadotfile = null;
+            rgautfile = null;
+            fc2file = null;
+            bcgfile = null;
+            rgautdotfile = null;
+            rgautprojfile = null;
+            rgautprojdotfile = null;
+
+            frame.setTitle("TTool: unsaved project");
+        }
+    }
+
+    public String loadFile(File f) {
+        String s = null;
+
+        if(checkFileForOpen(f)) {
+            try {
+                FileInputStream fis = new FileInputStream(f);
+                int nb = fis.available();
+
+                byte [] ba = new byte[nb];
+                fis.read(ba);
+                fis.close();
+                s = new String(ba);
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+            } catch (OutOfMemoryError er) {
+                JOptionPane.showMessageDialog(frame, "File could not be opened because " + er.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+            }
+        }
+        return s;
+    }
+
+    public void saveFile(File f, String data, String msg) {
+        if(checkFileForSave(f)) {
+            try {
+                if (data == null) {
+                    return;
+                }
+                FileOutputStream fos = new FileOutputStream(f);
+                fos.write(data.getBytes());
+                fos.close();
+                JOptionPane.showMessageDialog(frame, msg + " " + f.getAbsolutePath(), "Saving", JOptionPane.INFORMATION_MESSAGE);
+                return;
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be saved because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return;
+            }
+        }
+    }
+
+    public String loadLibrary() {
+        File libfile;
+
+        int returnVal = jfclib.showDialog(frame, "Import library");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return null;
+        }
+
+        libfile = jfclib.getSelectedFile();
+        libfile = FileUtils.addFileExtensionIfMissing(libfile, TLibFilter.getExtension());
+
+        return loadFile(libfile);
+    }
+
+    public String[] loadLotosSpec() {
+        File lotfile;
+
+        int returnVal = jfclot.showDialog(frame, "Load RT-LOTOS specification");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return null;
+        }
+
+        lotfile = jfclot.getSelectedFile();
+        lotfile = FileUtils.addFileExtensionIfMissing(lotfile, RTLFileFilter.getExtension());
+
+        String spec = loadFile(lotfile);
+        if (spec == null) {
+            return null;
+        }
+
+        String [] ret = new String[2];
+        ret[0] = lotfile.getName();
+        ret[1] = spec;
+        return ret;
+    }
+
+    public void saveLotosSpec(String data) {
+        File lotfile;
+
+        int returnVal = jfclot.showDialog(frame, "Save RT-LOTOS specification");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
 
-	public void saveRG(String tdata, String gdata) {
-		File rgfile;
+        lotfile = jfclot.getSelectedFile();
+        lotfile = FileUtils.addFileExtensionIfMissing(lotfile, RTLFileFilter.getExtension());
 
-		/* textual form */
-		RGFileFilter filter = new RGFileFilter();
-		jfctgraph.setFileFilter(filter);
+        saveFile(lotfile, data, "LOTOS specification saved under");
+    }
 
-		int returnVal = jfctgraph.showDialog(frame, "Save last RG (textual form)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
+    public void saveDTA(String tdata, String gdata) {
+        File dtafile;
 
-		rgfile = jfctgraph.getSelectedFile();
-		rgfile = FileUtils.addFileExtensionIfMissing(rgfile, RGFileFilter.getExtension());
+        /* textual form */
+        DTAFileFilter filter = new DTAFileFilter();
+        jfctgraph.setFileFilter(filter);
 
-		saveFile(rgfile, tdata, "Textual RG saved under");
+        int returnVal = jfctgraph.showDialog(frame, "Save last DTA (textual form)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
 
-		/* graphical form */
-		returnVal = jfcggraph.showDialog(frame, "Save last RG (graphical form)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
+        dtafile = jfctgraph.getSelectedFile();
+        dtafile = FileUtils.addFileExtensionIfMissing(dtafile, DTAFileFilter.getExtension());
 
-		rgfile = jfcggraph.getSelectedFile();
-		rgfile = FileUtils.addFileExtensionIfMissing(rgfile, TDotFilter.getExtension());
+        saveFile(dtafile, tdata, "Textual DTA saved under");
 
-		saveFile(rgfile, gdata, "Graphical RG saved under");
-	}
+        /* graphical form */
+        returnVal = jfcggraph.showDialog(frame, "Save last DTA (graphical form)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
 
-	public void saveTLSA(String tdata, String gdata) {
-		File tlsafile;
+        dtafile = jfcggraph.getSelectedFile();
+        dtafile = FileUtils.addFileExtensionIfMissing(dtafile, TDotFilter.getExtension());
 
-		/* textual form */
-		TLSAFileFilter filter = new TLSAFileFilter();
-		jfctgraph.setFileFilter(filter);
+        saveFile(dtafile, gdata, "Graphical DTA saved under");
+    }
 
-		int returnVal = jfctgraph.showDialog(frame, "Save last TLSA (textual form)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
+    public String saveTPNNDRFormat(String tpn) {
+        String s = file.getAbsolutePath();
+        int l = s.length();
+        String myFile = s.substring(0, l-4) + ".ndr";
+        try {
+            FileUtils.saveFile(myFile, tpn);
+        } catch (Exception e) {
+            return "TPN could not be saved in myFile: " +e.getMessage();
+        }
+        return "TPN saved in " +myFile;
+    }
 
-		tlsafile = jfctgraph.getSelectedFile();
-		tlsafile = FileUtils.addFileExtensionIfMissing(tlsafile, TLSAFileFilter.getExtension());
+    public void saveRG(String tdata, String gdata) {
+        File rgfile;
 
-		saveFile(tlsafile, tdata, "Textual TLSA saved under");
+        /* textual form */
+        RGFileFilter filter = new RGFileFilter();
+        jfctgraph.setFileFilter(filter);
 
-		/* graphical form */
-		returnVal = jfcggraph.showDialog(frame, "Save last TLSA (graphical form)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
+        int returnVal = jfctgraph.showDialog(frame, "Save last RG (textual form)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
 
-		tlsafile = jfcggraph.getSelectedFile();
-		tlsafile = FileUtils.addFileExtensionIfMissing(tlsafile, TDotFilter.getExtension());
+        rgfile = jfctgraph.getSelectedFile();
+        rgfile = FileUtils.addFileExtensionIfMissing(rgfile, RGFileFilter.getExtension());
 
-		saveFile(tlsafile, gdata, "Graphical TLSA saved under");
-	}
-
-	public void saveRGAUT(String tdata, String gdata) {
-		File rgfile;
-
-		/* textual form */
-		AUTFileFilter filter = new AUTFileFilter();
-		jfctgraph.setFileFilter(filter);
-
-		int returnVal = jfctgraph.showDialog(frame, "Save last RG/AUT (textual form)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
-
-		rgfile = jfctgraph.getSelectedFile();
-		rgfile = FileUtils.addFileExtensionIfMissing(rgfile, AUTFileFilter.getExtension());
-
-		saveFile(rgfile, tdata, "Textual RG/AUTsaved under");
-
-		/* graphical form */
-		returnVal = jfcggraph.showDialog(frame, "Save last RG/AUT (graphical form)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
-
-		rgfile = jfcggraph.getSelectedFile();
-		rgfile = FileUtils.addFileExtensionIfMissing(rgfile, TDotFilter.getExtension());
-
-		saveFile(rgfile, gdata, "Graphical RG/AUT saved under");
-	}
-
-
-
-	public String[] loadGGraph() {
-		File gfile;
-
-		int returnVal = jfcggraph.showDialog(frame, "Load Graph (DOT format)");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return null;
-		}
-
-		gfile = jfcggraph.getSelectedFile();
-		gfile = FileUtils.addFileExtensionIfMissing(gfile, TDotFilter.getExtension());
-
-		String spec = loadFile(gfile);
-		if (spec == null) {
-			return null;
-		}
-
-		String [] ret = new String[2];
-		ret[0] = gfile.getName();
-		ret[1] = spec;
-		return ret;
-	}
-
-	public String[] loadGGraph(String name) {
-		try {
-			String spec = FileUtils.loadFile(name);
-			if (spec == null) {
-				return null;
-			}
-
-			String [] ret = new String[2];
-			ret[0] = name;
-			ret[1] = spec;
-			return ret;
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	public String[] loadAUTGraph() {
-		File autfile;
-
-		/* textual form */
-		AUTFileFilter filter = new AUTFileFilter();
-		jfctgraph.setFileFilter(filter);
-
-		int returnVal = jfctgraph.showDialog(frame, "Load AUT graph");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return null;
-		}
-
-		autfile = jfctgraph.getSelectedFile();
-		autfile = FileUtils.addFileExtensionIfMissing(autfile, AUTFileFilter.getExtension());
-
-		String spec = loadFile(autfile);
-		if (spec == null) {
-			return null;
-		}
-
-		String [] ret = new String[2];
-		ret[0] = autfile.getName();
-		ret[1] = spec;
-		return ret;
-	}
-
-	public void updateLastOpenFile(File file) {
-		if (ConfigurationTTool.LastOpenFileDefined) {
-			ConfigurationTTool.LastOpenFile = file.getPath();
-			// Change name of action
-			actions[TGUIAction.ACT_OPEN_LAST].setName(TGUIAction.ACT_OPEN_LAST, ConfigurationTTool.LastOpenFile);
-		}
-	}
-
-	// Only if a project is already opened
-	public void mergeProject() {
-		//TraceManager.addDev("Merge");
-		File filetmp = file;
-		int returnVal = jfc.showOpenDialog(frame);
-
-		if (returnVal == JFileChooser.APPROVE_OPTION) {
-			filetmp = jfc.getSelectedFile();
-		}
-
-		String s = null;
-		String oldmodeling = gtm.makeXMLFromTurtleModeling(-1);
-		if(checkFileForOpen(filetmp)) {
-			try {
-				FileInputStream fis = new FileInputStream(filetmp);
-				int nb = fis.available();
-
-				byte [] ba = new byte[nb];
-				fis.read(ba);
-				fis.close();
-				s = new String(ba);
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return;
-			}
-			// close current modeling
-			closeTurtleModeling();
-
-			// open the new TURTLE modeling
-			newTurtleModeling();
-
-			//TraceManager.addDev("Loading");
-			// load the new TURTLE modeling
-			try {
-				//TraceManager.addDev("Merging");
-				gtm.enableUndo(false);
-				gtm.loadModelingFromXML(gtm.mergeTURTLEGModeling(oldmodeling, s));
-				gtm.enableUndo(true);
-				gtm.saveOperation(getCurrentSelectedPoint());
-				//gtm.saveOperation(tcdp);
-				frame.setTitle("TTool: " + file.getAbsolutePath());
-				makeLotosFile();
-
-				if (gtm.getCheckingErrors().size() > 0) {
-					JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-				}
-
-			} catch (MalformedModelingException mme) {
-				JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-			}
-			dtree.forceUpdate();
-		}
-
-	}
-
-
-	public void openProject() {
-		// check if a current modeling is opened
-		boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
-		if (b) {
-			if (!saveBeforeAction("Save and Open", "Open")) {
-				return;
-			}
-			/*  int back = JOptionPane.showConfirmDialog(frame, "Current modeling has not been saved\nDo you really want to open a new one ?", "To quit, or not to quit ?", JOptionPane.OK_CANCEL_OPTION);
+        saveFile(rgfile, tdata, "Textual RG saved under");
+
+        /* graphical form */
+        returnVal = jfcggraph.showDialog(frame, "Save last RG (graphical form)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
+
+        rgfile = jfcggraph.getSelectedFile();
+        rgfile = FileUtils.addFileExtensionIfMissing(rgfile, TDotFilter.getExtension());
+
+        saveFile(rgfile, gdata, "Graphical RG saved under");
+    }
+
+    public void saveTLSA(String tdata, String gdata) {
+        File tlsafile;
+
+        /* textual form */
+        TLSAFileFilter filter = new TLSAFileFilter();
+        jfctgraph.setFileFilter(filter);
+
+        int returnVal = jfctgraph.showDialog(frame, "Save last TLSA (textual form)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
+
+        tlsafile = jfctgraph.getSelectedFile();
+        tlsafile = FileUtils.addFileExtensionIfMissing(tlsafile, TLSAFileFilter.getExtension());
+
+        saveFile(tlsafile, tdata, "Textual TLSA saved under");
+
+        /* graphical form */
+        returnVal = jfcggraph.showDialog(frame, "Save last TLSA (graphical form)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
+
+        tlsafile = jfcggraph.getSelectedFile();
+        tlsafile = FileUtils.addFileExtensionIfMissing(tlsafile, TDotFilter.getExtension());
+
+        saveFile(tlsafile, gdata, "Graphical TLSA saved under");
+    }
+
+    public void saveRGAUT(String tdata, String gdata) {
+        File rgfile;
+
+        /* textual form */
+        AUTFileFilter filter = new AUTFileFilter();
+        jfctgraph.setFileFilter(filter);
+
+        int returnVal = jfctgraph.showDialog(frame, "Save last RG/AUT (textual form)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
+
+        rgfile = jfctgraph.getSelectedFile();
+        rgfile = FileUtils.addFileExtensionIfMissing(rgfile, AUTFileFilter.getExtension());
+
+        saveFile(rgfile, tdata, "Textual RG/AUTsaved under");
+
+        /* graphical form */
+        returnVal = jfcggraph.showDialog(frame, "Save last RG/AUT (graphical form)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
+
+        rgfile = jfcggraph.getSelectedFile();
+        rgfile = FileUtils.addFileExtensionIfMissing(rgfile, TDotFilter.getExtension());
+
+        saveFile(rgfile, gdata, "Graphical RG/AUT saved under");
+    }
+
+
+
+    public String[] loadGGraph() {
+        File gfile;
+
+        int returnVal = jfcggraph.showDialog(frame, "Load Graph (DOT format)");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return null;
+        }
+
+        gfile = jfcggraph.getSelectedFile();
+        gfile = FileUtils.addFileExtensionIfMissing(gfile, TDotFilter.getExtension());
+
+        String spec = loadFile(gfile);
+        if (spec == null) {
+            return null;
+        }
+
+        String [] ret = new String[2];
+        ret[0] = gfile.getName();
+        ret[1] = spec;
+        return ret;
+    }
+
+    public String[] loadGGraph(String name) {
+        try {
+            String spec = FileUtils.loadFile(name);
+            if (spec == null) {
+                return null;
+            }
+
+            String [] ret = new String[2];
+            ret[0] = name;
+            ret[1] = spec;
+            return ret;
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    public String[] loadAUTGraph() {
+        File autfile;
+
+        /* textual form */
+        AUTFileFilter filter = new AUTFileFilter();
+        jfctgraph.setFileFilter(filter);
+
+        int returnVal = jfctgraph.showDialog(frame, "Load AUT graph");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return null;
+        }
+
+        autfile = jfctgraph.getSelectedFile();
+        autfile = FileUtils.addFileExtensionIfMissing(autfile, AUTFileFilter.getExtension());
+
+        String spec = loadFile(autfile);
+        if (spec == null) {
+            return null;
+        }
+
+        String [] ret = new String[2];
+        ret[0] = autfile.getName();
+        ret[1] = spec;
+        return ret;
+    }
+
+    public void updateLastOpenFile(File file) {
+        if (ConfigurationTTool.LastOpenFileDefined) {
+            ConfigurationTTool.LastOpenFile = file.getPath();
+            // Change name of action
+            actions[TGUIAction.ACT_OPEN_LAST].setName(TGUIAction.ACT_OPEN_LAST, ConfigurationTTool.LastOpenFile);
+        }
+    }
+
+    // Only if a project is already opened
+    public void mergeProject() {
+        //TraceManager.addDev("Merge");
+        File filetmp = file;
+        int returnVal = jfc.showOpenDialog(frame);
+
+        if (returnVal == JFileChooser.APPROVE_OPTION) {
+            filetmp = jfc.getSelectedFile();
+        }
+
+        String s = null;
+        String oldmodeling = gtm.makeXMLFromTurtleModeling(-1);
+        if(checkFileForOpen(filetmp)) {
+            try {
+                FileInputStream fis = new FileInputStream(filetmp);
+                int nb = fis.available();
+
+                byte [] ba = new byte[nb];
+                fis.read(ba);
+                fis.close();
+                s = new String(ba);
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return;
+            }
+            // close current modeling
+            closeTurtleModeling();
+
+            // open the new TURTLE modeling
+            newTurtleModeling();
+
+            //TraceManager.addDev("Loading");
+            // load the new TURTLE modeling
+            try {
+                //TraceManager.addDev("Merging");
+                gtm.enableUndo(false);
+                gtm.loadModelingFromXML(gtm.mergeTURTLEGModeling(oldmodeling, s));
+                gtm.enableUndo(true);
+                gtm.saveOperation(getCurrentSelectedPoint());
+                //gtm.saveOperation(tcdp);
+                frame.setTitle("TTool: " + file.getAbsolutePath());
+                makeLotosFile();
+
+                if (gtm.getCheckingErrors().size() > 0) {
+                    JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
+                }
+
+            } catch (MalformedModelingException mme) {
+                JOptionPane.showMessageDialog(frame, "Modeling could not be correctly merged", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
+            }
+            dtree.forceUpdate();
+        }
+
+    }
+
+    public void openNetworkProject() {
+        boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
+        if (b) {
+            if (!saveBeforeAction("Save and Open", "Open")) {
+                return;
+            }
+            /*  int back = JOptionPane.showConfirmDialog(frame, "Current modeling has not been saved\nDo you really want to open a new one ?", "To quit, or not to quit ?", JOptionPane.OK_CANCEL_OPTION);
+                if (back == JOptionPane.CANCEL_OPTION) {
+                return;
+                }*/
+        }
+
+	JDialogLoadingNetworkModel jdlnm = new JDialogLoadingNetworkModel(frame, this, "Opening a network model", ConfigurationTTool.URL_MODEL);
+	GraphicLib.centerOnParent(jdlnm, 600, 800);
+	jdlnm.setVisible(true); // blocked until dialog has been closed
+    }
+
+
+    public void openProject() {
+        // check if a current modeling is opened
+        boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
+        if (b) {
+            if (!saveBeforeAction("Save and Open", "Open")) {
+                return;
+            }
+            /*  int back = JOptionPane.showConfirmDialog(frame, "Current modeling has not been saved\nDo you really want to open a new one ?", "To quit, or not to quit ?", JOptionPane.OK_CANCEL_OPTION);
                 if (back == JOptionPane.CANCEL_OPTION) {
                 return;
                 }*/
-		}
-
-		//jfc.setApproveButtonText("Open");
-		int returnVal = jfc.showOpenDialog(frame);
-
-		if (returnVal == JFileChooser.CANCEL_OPTION) {
-			return;
-		}
-
-		if (returnVal == JFileChooser.APPROVE_OPTION) {
-			file = jfc.getSelectedFile();
-		}
-
-		String s = null;
-		if(checkFileForOpen(file)) {
-			try {
-				FileInputStream fis = new FileInputStream(file);
-				int nb = fis.available();
-
-				byte [] ba = new byte[nb];
-				fis.read(ba);
-				fis.close();
-				s = new String(ba);
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return;
-			}
-
-			// close current modeling
-			closeTurtleModeling();
-
-
-
-			// open the new TURTLE modeling
-			newTurtleModeling();
-
-			gtm.enableUndo(false);
-
-			// Update configuration
-			updateLastOpenFile(file);
-
-			//TraceManager.addDev("Loading");
-			// load the new TURTLE modeling
-			try {
-				gtm.loadModelingFromXML(s);
-				//gtm.saveOperation(tcdp);
-				frame.setTitle("TTool: " + file.getAbsolutePath());
-				makeLotosFile();
-
-				if (gtm.getCheckingErrors().size() > 0) {
-					JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-
-				}
-			} catch (MalformedModelingException mme) {
-				JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-				frame.setTitle("TToolt: unamed project");
-			}
-			gtm.enableUndo(true);
-			gtm.saveOperation(getCurrentSelectedPoint());
-			dtree.forceUpdate();
-		}
-	}
-
-	public void openLastProject() {
-		// Check if a current modeling is opened
-		boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
-		if (b) {
-			if (!saveBeforeAction("Save and Open", "Open")) {
-				return;
-			}
-		}
-
-		file = new File(ConfigurationTTool.LastOpenFile);
-
-		String s = null;
-		if(checkFileForOpen(file)) {
-			try {
-				FileInputStream fis = new FileInputStream(file);
-				int nb = fis.available();
-
-				byte [] ba = new byte[nb];
-				fis.read(ba);
-				fis.close();
-				s = new String(ba);
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return;
-			}
-
-			// close current modeling
-			closeTurtleModeling();
-
-			// open the new TURTLE modeling
-			newTurtleModeling();
-
-			gtm.enableUndo(false);
-
-			//TraceManager.addDev("Loading");
-			// load the new TURTLE modeling
-			try {
-				gtm.loadModelingFromXML(s);
-				//gtm.saveOperation(tcdp);
-				frame.setTitle("TTool: " + file.getAbsolutePath());
-				makeLotosFile();
-
-				if (gtm.getCheckingErrors().size() > 0) {
-					JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-				}
-			}
-			catch (MalformedModelingException mme) {
-				JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-				frame.setTitle("TTool: unamed project");
-			}
-
-			dtree.forceUpdate();
-			gtm.enableUndo(true);
-			gtm.saveOperation(getCurrentSelectedPoint());
-		}
-
-		//Added by Solange
-		//TURTLEPanel tp = getCurrentTURTLEPanel();
-		//gtm.generateLists((ProactiveDesignPanel)tp);
-		//
-	}
-
-	public void saveAsLibrary(String data) {
-		File libfile;
-
-		int returnVal = jfclib.showDialog(frame, "Export library");
-		if(returnVal != JFileChooser.APPROVE_OPTION) {
-			return;
-		}
-
-		libfile = jfclib.getSelectedFile();
-		libfile = FileUtils.addFileExtensionIfMissing(libfile, TLibFilter.getExtension());
-
-		if(checkFileForSave(libfile)) {
-			try {
-				if (data == null) {
-					throw new Exception("Selected data corrupted");
-				}
-				FileOutputStream fos = new FileOutputStream(libfile);
-				fos.write(data.getBytes());
-				fos.close();
-				JOptionPane.showMessageDialog(frame, "Modeling was correctly saved under a TURTLE library named " + libfile.getName(), "Saving", JOptionPane.INFORMATION_MESSAGE);
-				return;
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be saved because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return;
-			}
-		}
-	}
-
-	public void saveAsProject() {
-		File old = file;
-		if (file == null) {
-			// project never saved
-			saveProject();
-		} else {
-			file = null;
-			if (!saveProject()) {
-				file = old;
-			}
-		}
-		if (file != old) {
-			//frame.setTitle("TURTLE Toolkit: " + file.getAbsolutePath());
-			makeLotosFile();
-		}
-	}
-
-	public boolean saveTIF() {
-		int returnVal = jfctif.showSaveDialog(frame);
-		if(returnVal == JFileChooser.APPROVE_OPTION) {
-			file = jfctif.getSelectedFile();
-			file = FileUtils.addFileExtensionIfMissing(file, TTIFFilter.getExtension());
-		}
-
-		if(checkFileForSave(file)) {
-			String s = gtm.saveTIF();
-			try {
-
-				if (s == null) {
-					throw new Exception("TIF specification is void");
-
-				}
-				FileOutputStream fos = new FileOutputStream(file);
-				fos.write(s.getBytes());
-				fos.close();
-
-				return true;
-			} catch (Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be saved because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return false;
-			}
-		}
-		return false;
-	}
-
-	public boolean openTIF() {
-		//jfc.setApproveButtonText("Open");
-		int returnVal = jfctif.showOpenDialog(frame);
-
-		if (returnVal == JFileChooser.APPROVE_OPTION) {
-			file = jfctif.getSelectedFile();
-		}
-
-		String s = null;
-		if(checkFileForOpen(file)) {
-			try {
-				FileInputStream fis = new FileInputStream(file);
-				int nb = fis.available();
-
-				byte [] ba = new byte[nb];
-				fis.read(ba);
-				fis.close();
-				s = new String(ba);
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return false;
-			}
-		}
-		if (s == null) {
-			return false;
-		}
-		TraceManager.addDev("Open TIF =" + s);
-		if (gtm == null) {
-			newTurtleModeling();
-		}
-		return gtm.openTIF(s);
-
-	}
-
-	public boolean openSD() {
-		//jfc.setApproveButtonText("Open");
-		int returnVal = jfcmsc.showOpenDialog(frame);
-
-		if (returnVal == JFileChooser.APPROVE_OPTION) {
-			file = jfcmsc.getSelectedFile();
-		}
-
-		String s = null;
-		if(checkFileForOpen(file)) {
-			try {
-				FileInputStream fis = new FileInputStream(file);
-				int nb = fis.available();
-
-				byte [] ba = new byte[nb];
-				fis.read(ba);
-				fis.close();
-				s = new String(ba);
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return false;
-			}
-		}
-		if (s == null) {
-			return false;
-		}
-		TraceManager.addDev("Open SD =" + s);
-		if (gtm == null) {
-			newTurtleModeling();
-		}
-		return gtm.openSD(s);
-
-	}
-
-	protected boolean saveProject() {
-		if (file == null) {
-			//jfc.setApproveButtonText("Save");
-			int returnVal = jfc.showSaveDialog(frame);
-			if(returnVal == JFileChooser.APPROVE_OPTION) {
-				file = jfc.getSelectedFile();
-				file = FileUtils.addFileExtensionIfMissing(file, TFileFilter.getExtension());
-			}
-		}
-
-		if( checkFileForSave(file)) {
-			String s = gtm.makeXMLFromTurtleModeling(-1);
-
-			try {
-				if (gtm == null) {
-					throw new Exception("Internal model Error 1");
-				}
-				if (s == null) {
-					throw new Exception("Internal model Error 2");
-				}
-				FileOutputStream fos = new FileOutputStream(file);
-				fos.write(s.getBytes());
-				fos.close();
-				updateLastOpenFile(file);
-				setMode(MODEL_SAVED);
-				String title = "TTool: " + file.getAbsolutePath();
-				if (!frame.getTitle().equals(title)) {
-					frame.setTitle(title);
-				}
-				if (lotosfile == null) {
-					makeLotosFile();
-				}
-				return true;
-			} catch(Exception e) {
-				JOptionPane.showMessageDialog(frame, "File could not be saved because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
-				return false;
-			}
-		}
-		return false;
-	}
-
-	public boolean checkFileForOpen(File file) {
-		boolean ok = true;
-		String pb = "";
-
-		//TraceManager.addDev("File path=" + file.getPath() + " name=" + file.getName());
-
-		if (file == null) {
-			return false;
-		}
-
-		try {
-			if (file != null) {
-				if (!file.exists()) {
-					pb  = "File " + file + " doesn't exist";
-					ok = false;
-				}
-				if ((ok == true) && (!file.canRead())) {
-					pb  = "File is read protected";
-					ok = false;
-				}
-			}
-		} catch (Exception e) {
-			ok = false;
-			pb = e.getMessage();
-		}
-		if (ok == false) {
-			file = null;
-			JOptionPane.showMessageDialog(frame, pb, "File Error", JOptionPane.INFORMATION_MESSAGE);
-		}
-		return ok;
-	}
-
-	public boolean checkFileForSave(File file) {
-		boolean ok = true;
-		String pb = "";
-
-		if (file == null) {
-			return false;
-		}
-
-		try {
-			if (file != null) {
-				if (!file.exists()) {
-					if (!file.createNewFile()) {
-						pb  = "File could not be created";
-						ok = false;
-					}
-					if (!file.canWrite()) {
-						pb  = "File is write protected";
-						ok = false;
-					}
-				}
-			}
-		} catch (Exception e) {
-			ok = false;
-			pb = e.getMessage();
-		}
-		if (ok == false) {
-			file = null;
-			JOptionPane.showMessageDialog(frame, pb, "File Error", JOptionPane.INFORMATION_MESSAGE);
-		}
-		return ok;
-	}
-
-	public void saveLastLotos() {
-		saveLotosSpec(gtm.getLastRTLOTOSSpecification());
-	}
-
-	public void saveLastDTA() {
-		saveDTA(gtm.getLastTextualDTA(), gtm.getLastGraphicalDTA());
-	}
-
-	public void saveLastRG() {
-		saveRG(gtm.getLastTextualRG(), gtm.getLastGraphicalRG());
-	}
-
-	public void saveLastTLSA() {
-		saveTLSA(gtm.getLastTextualTLSA(), gtm.getLastGraphicalTLSA());
-	}
-
-	public void saveLastRGAUT() {
-		saveRGAUT(gtm.getLastTextualRGAUT(), gtm.getLastGraphicalRGAUT());
-	}
-
-	public void saveLastRGAUTProj() {
-		saveRGAUT(gtm.getLastTextualRGAUTProj(), gtm.getLastGraphicalRGAUTProj());
-	}
-
-	public void saveLastModifiedRG() {
-		saveRGAUT(modifiedaut, modifiedautdot);
-	}
-
-	public void importLibrary() {
-		//TDiagramPanel tdp1 = ((TDiagramPanel)(designPanels.elementAt(mainDesignTabbedPane.getSelectedIndex()));
-		//tdp1.insertLibrary(tdp1.getMinX(), tdp1.getMinY());
-		TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-		if (tdp1 != null) {
-			tdp1.insertLibrary(tdp1.getMinX(), tdp1.getMinY());
-		}
-	}
-
-	public void exportLibrary() {
-		//TDiagramPanel tdp1 = (TDiagramPanel)(designPanels.elementAt(mainDesignTabbedPane.getSelectedIndex()));
-		//tdp1.saveAsLibrary();
-		getCurrentTDiagramPanel().saveAsLibrary();
-	}
-
-	public void makeLotosFile() {
-		String s = file.getAbsolutePath();
-		int l = s.length();
-		String myFile = s.substring(0, l-4);
-		lotosfile = new File(myFile + ".lot");
-		simfile = new File(myFile + ".sim");
-		dtafile = new File(myFile + ".dta");
-		dtadotfile = new File(myFile + ".dta.dot");
-		rgfile = new File(myFile + ".rg");
-		rgdotfile = new File(myFile + ".rg.dot");
-		tlsafile = new File(myFile + ".tlsa");
-		tlsadotfile = new File(myFile + ".dot.tlsa");
-		rgautfile = new File(myFile + ".aut");
-		fc2file = new File(myFile + ".fc2");
-		bcgfile = new File(myFile + ".bcg");
-		rgautdotfile = new File(myFile + ".aut.dot");
-		rgautprojfile = new File(myFile + "_proj.aut");
-		rgautprojdotfile = new File(myFile + "_proj.aut.dot");
-	}
-
-	public boolean saveBeforeAction(String str1, String str2) {
-		Object[] options = { str1, str2, "CANCEL" };
-		int back = JOptionPane.showOptionDialog(frame, "Modeling has not been saved", "Warning",
-				JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
-				null, options, options[0]);
-		//TraceManager.addDev("back= " + back);
-		if (back == JOptionPane.CANCEL_OPTION) {
-			return false;
-		}
-		if (back == JOptionPane.YES_OPTION) {
-			saveProject();
-		}
-		return true;
-	}
-
-	public void quitApplication() {
-		boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
-		if (b) {
-			if (saveBeforeAction("SAVE and QUIT", "QUIT now") == false) {
-				return;
-			}
-
-		}
-
-		ConfigurationTTool.LastWindowAttributesX = "" + frame.getLocation().x;
-		ConfigurationTTool.LastWindowAttributesY = "" + frame.getLocation().y;
-		ConfigurationTTool.LastWindowAttributesWidth = "" + frame.getSize().width;
-		ConfigurationTTool.LastWindowAttributesHeight = "" + frame.getSize().height;
-
-		if (frame.getExtendedState() == Frame.MAXIMIZED_BOTH) {
-			ConfigurationTTool.LastWindowAttributesMax = "true";
-		} else {
-			ConfigurationTTool.LastWindowAttributesMax = "false";
-		}
-
-		try {
-			if (ConfigurationTTool.LastOpenFileDefined) {
-				ConfigurationTTool.saveConfiguration();
-				//TraceManager.addDev("Configuration written to file");
-			}
-		} catch (Exception e) {}
-
-
-		System.exit(0);
-	}
-
-
-	public void cut() {
-		getCurrentTDiagramPanel().makeCut();
-	}
-
-	public void copy() {
-		getCurrentTDiagramPanel().makeCopy();
-	}
-
-	public void paste() {
-		int x = Math.min(Math.max(getCurrentTDiagramPanel().getMinX(), getCurrentTDiagramPanel().currentX), getCurrentTDiagramPanel().getMaxX());
-		int y = Math.min(Math.max(getCurrentTDiagramPanel().getMinY(), getCurrentTDiagramPanel().currentY), getCurrentTDiagramPanel().getMaxY());
-		getCurrentTDiagramPanel().makePaste(x, y);
-	}
-
-	public void delete() {
-		getCurrentTDiagramPanel().makeDelete();
-	}
-
-	public void backward() {
-		//TraceManager.addDev("backward");
-		gtm.backward();
-		setMode(MODEL_CHANGED);
-		dtree.toBeUpdated();
-	}
-
-	public void forward() {
-		//TraceManager.addDev("forward");
-		gtm.forward();
-		setMode(MODEL_CHANGED);
-		dtree.toBeUpdated();
-	}
-
-	public void zoomMore() {
-		zoom(1.25);
-	}
-
-	public void zoomLess() {
-		zoom(0.8);
-	}
-
-	public void zoom(double multFactor) {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		tdp.setZoom(tdp.getZoom() * multFactor);
-		tdp.updateComponentsAfterZoom();
-		updateZoomInfo();
-	}
-
-	public void updateZoomInfo() {
-		String s = "";
-		int zoom = (int)(getCurrentTDiagramPanel().getZoom()*100);
-		if (zoom < 100) {
-			s = "0" + zoom + "%";
-		} else {
-			s += zoom + "%";
-		}
-		//TraceManager.addDev("Seeting zoom in " + getCurrentTDiagramPanel());
-		actions[TGUIAction.ACT_SHOW_ZOOM].setName(TGUIAction.ACT_SHOW_ZOOM, s);
-	}
-
-	public void firstDiag() {
-		getCurrentJTabbedPane().setSelectedIndex(0);
-	}
-
-	public void backDiag() {
-		getCurrentJTabbedPane().setSelectedIndex(Math.max(0, getCurrentJTabbedPane().getSelectedIndex() - 1));
-	}
-
-	public void nextDiag() {
-		getCurrentJTabbedPane().setSelectedIndex(Math.min(getCurrentJTabbedPane().getTabCount(), getCurrentJTabbedPane().getSelectedIndex() + 1));
-	}
-
-	public void lastDiag() {
-		getCurrentJTabbedPane().setSelectedIndex(getCurrentJTabbedPane().getTabCount() - 1);
-	}
-
-	//@author: Huy TRUONG
-	//open a new External Search Dialog
-	public void showExternalSearch(){
-		String textSearchField = mainBar.search.getText();
-		List<String> listSearch = new ArrayList<String>();
-
-		if (null == this.searchBox) {
-			if (getCurrentTDiagramPanel()!=null) {
-				if (getCurrentTDiagramPanel().tdmm.getSelectComponents().size() == 0) {
-					listSearch.add(textSearchField);
-				} else {
-					listSearch = getCurrentTDiagramPanel().tdmm.getSelectComponents();
-					listSearch.add(0, textSearchField);
-
-				}
-				this.searchBox = new JDialogSearchBox(frame, "External Search", listSearch, getCurrentTDiagramPanel().tdmm);
-			}else
-				this.searchBox = new JDialogSearchBox(frame, "External Search", new ArrayList<String>());
-
-		}
-		else {
-			if (this.searchBox.isShowing()) {
-				this.searchBox.setVisible( true );
-			}
-			else {
-				this.searchBox = null;
-				showExternalSearch();
-			}
-		}
-	}
-
-	public void doInternalSearch(){
-		search(mainBar.search.getText());
-	}
-
-	public void aboutVersion() {
-		JFrameBasicText jft = new JFrameBasicText("About TTool ...", DefaultText.getAboutText(), IconManager.imgic324);
-		jft.setIconImage(IconManager.img8);
-		GraphicLib.centerOnParent(jft, 700, 800 );
-		jft.setVisible(true);
-
-	}
-
-	public void showTToolConfiguration() {
-		JFrameBasicText jft = new JFrameBasicText("Your configuration of TTool ...", ConfigurationTTool.getConfiguration(systemcOn), IconManager.imgic76);
-		jft.setIconImage(IconManager.img8);
-		//jft.setSize(700, 800);
-		GraphicLib.centerOnParent(jft, 700, 800 );
-		jft.setVisible(true);
-
-	}
-
-	public void aboutTURTLE() {
-		BrowserControl.startBrowerToURL("http://ttool.telecom-paristech.fr/");
-	}
-
-	public void helpTURTLE() {
-		BrowserControl.startBrowerToURL("http://ttool.telecom-paristech.fr/avatar.html");
-	}
-
-	public void helpSysMLSec() {
-		BrowserControl.startBrowerToURL("http://sysml-sec.telecom-paristech.fr/");
-	}
-
-	public void helpDIPLODOCUS() {
-		BrowserControl.startBrowerToURL("http://ttool.telecom-paristech.fr/diplodocus.html");
-	}
-
-	public void oneClickLOTOSRG() {
-		// boolean ret;
-		if (!checkModelingSyntax(true)) {
-			TraceManager.addDev("Syntax error");
-			return;
-		}
-
-		if (!generateLOTOS(true)) {
-			TraceManager.addDev("Generate LOTOS: error");
-			return;
-		}
-
-		formalValidation(true);
-	}
-
-	public void oneClickRTLOTOSRG() {
-		// boolean ret;
-		if (!checkModelingSyntax(true)) {
-			TraceManager.addDev("Syntax error");
-			return;
-		}
-
-		if (!generateRTLOTOS(true)) {
-			TraceManager.addDev("Generate RT-LOTOS: error");
-			return;
-		}
-
-		formalValidation(true);
-	}
-
-	public void modelChecking() {
-		checkModelingSyntax(false);
-	}
-
-	public boolean checkModelingSyntax(String panelName, boolean automatic) {
-		TURTLEPanel tp = getTURTLEPanel(panelName);
-		if (tp != null) {
-			return checkModelingSyntax(tp, automatic);
-		}
-
-		return false;
-	}
-
-	public boolean checkModelingSyntax(boolean automatic) {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp != null) {
-			return checkModelingSyntax(tp, automatic);
-		}
-
-		return false;
-	}
-
-	public boolean checkModelingSyntax(TURTLEPanel tp, boolean automatic) {
-		//String msg = "";
-		boolean b = false;
-		boolean ret = false;
-
-		if (file == null) {
-			JOptionPane.showMessageDialog(frame,
-					"The project must be saved before any simulation or formal verification can be performed",
-					"Syntax analysis failed",
-					JOptionPane.INFORMATION_MESSAGE);
-			return false;
-		}
-
-
-		if (tp instanceof AnalysisPanel) {
-			try {
-				b = gtm.buildTURTLEModelingFromAnalysis((AnalysisPanel)tp);
-			} catch (AnalysisSyntaxException ae) {
-				//TraceManager.addDev("Exception AnalysisSyntaxException");
-				//msg = ae.getMessage();
-				b = false;
-			}
-			if (b) {
-				setMode(MainGUI.MODEL_OK);
-				setMode(MainGUI.GEN_DESIGN_OK);
-				ret = true;
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal (RT-LOTOS) specification or executable code (Java)",
-							"Syntax analysis successful on analysis diagrams",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			} else {
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"The TURTLE Analysis contains several errors",
-							"Syntax analysis failed",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-				setMode(MainGUI.GEN_DESIGN_OK);
-				//setMode(MainGUI.MODEL_OK);
-			}
-
-
-
-		} else if (tp instanceof DesignPanel) {
-			//Design
-			DesignPanel dp = (DesignPanel)tp;
-			JDialogModelChecking.validated = dp.validated;
-			JDialogModelChecking.ignored = dp.ignored;
-			LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface> ();
-			JDialogModelChecking jdmc = new JDialogModelChecking(frame, tclassesToValidate,dp.tcdp.getComponentList(), "Choosing Tclasses to validate");
-			if (!automatic) {
-				GraphicLib.centerOnParent(jdmc);
-				jdmc.setVisible(true); // blocked until dialog has been closed
-			} else {
-				jdmc.closeDialog();
-			}
-			boolean overideTifChecking = jdmc.getOverideSyntaxChecking();
-			if (tclassesToValidate.size() > 0) {
-				dp.validated = JDialogModelChecking.validated;
-				dp.ignored = JDialogModelChecking.ignored;
-				b = gtm.checkTURTLEModeling(tclassesToValidate, dp, overideTifChecking);
-				if (b) {
-					ret = true;
-					setMode(MainGUI.MODEL_OK);
-					setMode(MainGUI.GEN_DESIGN_OK);
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal (RT-LOTOS) specification or executable code (Java)",
-								"Syntax analysis successful on design diagrams",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				} else {
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"The TURTLE Modeling contains several errors",
-								"Syntax analysis failed",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				}
-			}
-
-		} else if (tp instanceof DeploymentPanel) {
-			DeploymentPanel dp = (DeploymentPanel) tp;
-			b = gtm.translateDeployment(dp);
-			if (b) {
-				setMode(MainGUI.MODEL_OK);
-				ret = true;
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal (RT-LOTOS) specification or executable code (Java)",
-							"Syntax analysis successful on deployment diagrams",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			} else {
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"The TURTLE deployment contains several errors",
-							"Syntax analysis failed",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			}
-
-			// AttackTree
-		} else if (tp instanceof AttackTreePanel) {
-			AttackTreePanel atp = (AttackTreePanel) tp;
-			b = gtm.translateAttackTreePanel(atp);
-			if (b) {
-				setMode(MainGUI.ATTACKTREE_SYNTAXCHECKING_OK);
-				ret = true;
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"0 error, " + getCheckingWarnings().size() + " warning(s)",
-							"Syntax analysis successful on attack tree",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			} else {
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"The Attack tree contains several errors",
-							"Syntax analysis failed",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			}
-
-
-			// AVATAR
-		} else if (tp instanceof AvatarDesignPanel) {
-			//Design
-			AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-			//JDialogModelChecking.validated = adp.validated;
-			//JDialogModelChecking.ignored = adp.ignored;
-			LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner> ();
-			JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
-			if (!automatic) {
-				GraphicLib.centerOnParent(jdmc);
-				jdmc.setVisible(true); // blocked until dialog has been closed
-			} else {
-				jdmc.closeDialog();
-			}
-
-			if (jdmc.hasBeenCancelled()) {
-				return false;
-			}
-
-			adp.resetModelBacktracingProVerif();
-
-			adp.setValidated(jdmc.getValidated());
-			adp.setIgnored(jdmc.getIgnored());
-			adp.setOptimized(jdmc.getOptimized());
-
-
-			boolean optimize = jdmc.getOptimized();
-			if (blocksToValidate.size() > 0) {
-				/*adp.validated = JDialogModelChecking.validated;
+        }
+
+        //jfc.setApproveButtonText("Open");
+        int returnVal = jfc.showOpenDialog(frame);
+
+        if (returnVal == JFileChooser.CANCEL_OPTION) {
+            return;
+        }
+
+        if (returnVal == JFileChooser.APPROVE_OPTION) {
+            file = jfc.getSelectedFile();
+        }
+
+        String s = null;
+        if(checkFileForOpen(file)) {
+            try {
+                FileInputStream fis = new FileInputStream(file);
+                int nb = fis.available();
+
+                byte [] ba = new byte[nb];
+                fis.read(ba);
+                fis.close();
+                s = new String(ba);
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return;
+            }
+
+            // close current modeling
+            closeTurtleModeling();
+
+
+
+            // open the new TURTLE modeling
+            newTurtleModeling();
+
+            gtm.enableUndo(false);
+
+            // Update configuration
+            updateLastOpenFile(file);
+
+            //TraceManager.addDev("Loading");
+            // load the new TURTLE modeling
+            try {
+                gtm.loadModelingFromXML(s);
+                //gtm.saveOperation(tcdp);
+                frame.setTitle("TTool: " + file.getAbsolutePath());
+                makeLotosFile();
+
+                if (gtm.getCheckingErrors().size() > 0) {
+                    JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
+
+                }
+            } catch (MalformedModelingException mme) {
+                JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
+                frame.setTitle("TToolt: unamed project");
+            }
+            gtm.enableUndo(true);
+            gtm.saveOperation(getCurrentSelectedPoint());
+            dtree.forceUpdate();
+        }
+    }
+
+    public void openLastProject() {
+        // Check if a current modeling is opened
+        boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
+        if (b) {
+            if (!saveBeforeAction("Save and Open", "Open")) {
+                return;
+            }
+        }
+
+        file = new File(ConfigurationTTool.LastOpenFile);
+
+        String s = null;
+        if(checkFileForOpen(file)) {
+            try {
+                FileInputStream fis = new FileInputStream(file);
+                int nb = fis.available();
+
+                byte [] ba = new byte[nb];
+                fis.read(ba);
+                fis.close();
+                s = new String(ba);
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return;
+            }
+
+            // close current modeling
+            closeTurtleModeling();
+
+            // open the new TURTLE modeling
+            newTurtleModeling();
+
+            gtm.enableUndo(false);
+
+            //TraceManager.addDev("Loading");
+            // load the new TURTLE modeling
+            try {
+                gtm.loadModelingFromXML(s);
+                //gtm.saveOperation(tcdp);
+                frame.setTitle("TTool: " + file.getAbsolutePath());
+                makeLotosFile();
+
+                if (gtm.getCheckingErrors().size() > 0) {
+                    JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
+                }
+            }
+            catch (MalformedModelingException mme) {
+                JOptionPane.showMessageDialog(frame, "Modeling could not be correctly loaded ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
+                frame.setTitle("TTool: unamed project");
+            }
+
+            dtree.forceUpdate();
+            gtm.enableUndo(true);
+            gtm.saveOperation(getCurrentSelectedPoint());
+        }
+
+        //Added by Solange
+        //TURTLEPanel tp = getCurrentTURTLEPanel();
+        //gtm.generateLists((ProactiveDesignPanel)tp);
+        //
+    }
+
+    public void saveAsLibrary(String data) {
+        File libfile;
+
+        int returnVal = jfclib.showDialog(frame, "Export library");
+        if(returnVal != JFileChooser.APPROVE_OPTION) {
+            return;
+        }
+
+        libfile = jfclib.getSelectedFile();
+        libfile = FileUtils.addFileExtensionIfMissing(libfile, TLibFilter.getExtension());
+
+        if(checkFileForSave(libfile)) {
+            try {
+                if (data == null) {
+                    throw new Exception("Selected data corrupted");
+                }
+                FileOutputStream fos = new FileOutputStream(libfile);
+                fos.write(data.getBytes());
+                fos.close();
+                JOptionPane.showMessageDialog(frame, "Modeling was correctly saved under a TURTLE library named " + libfile.getName(), "Saving", JOptionPane.INFORMATION_MESSAGE);
+                return;
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be saved because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return;
+            }
+        }
+    }
+
+    public void saveAsProject() {
+        File old = file;
+        if (file == null) {
+            // project never saved
+            saveProject();
+        } else {
+            file = null;
+            if (!saveProject()) {
+                file = old;
+            }
+        }
+        if (file != old) {
+            //frame.setTitle("TURTLE Toolkit: " + file.getAbsolutePath());
+            makeLotosFile();
+        }
+    }
+
+    public boolean saveTIF() {
+        int returnVal = jfctif.showSaveDialog(frame);
+        if(returnVal == JFileChooser.APPROVE_OPTION) {
+            file = jfctif.getSelectedFile();
+            file = FileUtils.addFileExtensionIfMissing(file, TTIFFilter.getExtension());
+        }
+
+        if(checkFileForSave(file)) {
+            String s = gtm.saveTIF();
+            try {
+
+                if (s == null) {
+                    throw new Exception("TIF specification is void");
+
+                }
+                FileOutputStream fos = new FileOutputStream(file);
+                fos.write(s.getBytes());
+                fos.close();
+
+                return true;
+            } catch (Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be saved because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return false;
+            }
+        }
+        return false;
+    }
+
+    public boolean openTIF() {
+        //jfc.setApproveButtonText("Open");
+        int returnVal = jfctif.showOpenDialog(frame);
+
+        if (returnVal == JFileChooser.APPROVE_OPTION) {
+            file = jfctif.getSelectedFile();
+        }
+
+        String s = null;
+        if(checkFileForOpen(file)) {
+            try {
+                FileInputStream fis = new FileInputStream(file);
+                int nb = fis.available();
+
+                byte [] ba = new byte[nb];
+                fis.read(ba);
+                fis.close();
+                s = new String(ba);
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return false;
+            }
+        }
+        if (s == null) {
+            return false;
+        }
+        TraceManager.addDev("Open TIF =" + s);
+        if (gtm == null) {
+            newTurtleModeling();
+        }
+        return gtm.openTIF(s);
+
+    }
+
+    public boolean openSD() {
+        //jfc.setApproveButtonText("Open");
+        int returnVal = jfcmsc.showOpenDialog(frame);
+
+        if (returnVal == JFileChooser.APPROVE_OPTION) {
+            file = jfcmsc.getSelectedFile();
+        }
+
+        String s = null;
+        if(checkFileForOpen(file)) {
+            try {
+                FileInputStream fis = new FileInputStream(file);
+                int nb = fis.available();
+
+                byte [] ba = new byte[nb];
+                fis.read(ba);
+                fis.close();
+                s = new String(ba);
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be opened because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return false;
+            }
+        }
+        if (s == null) {
+            return false;
+        }
+        TraceManager.addDev("Open SD =" + s);
+        if (gtm == null) {
+            newTurtleModeling();
+        }
+        return gtm.openSD(s);
+
+    }
+
+    protected boolean saveProject() {
+        if (file == null) {
+            //jfc.setApproveButtonText("Save");
+            int returnVal = jfc.showSaveDialog(frame);
+            if(returnVal == JFileChooser.APPROVE_OPTION) {
+                file = jfc.getSelectedFile();
+                file = FileUtils.addFileExtensionIfMissing(file, TFileFilter.getExtension());
+            }
+        }
+
+        if( checkFileForSave(file)) {
+            String s = gtm.makeXMLFromTurtleModeling(-1);
+
+            try {
+                if (gtm == null) {
+                    throw new Exception("Internal model Error 1");
+                }
+                if (s == null) {
+                    throw new Exception("Internal model Error 2");
+                }
+                FileOutputStream fos = new FileOutputStream(file);
+                fos.write(s.getBytes());
+                fos.close();
+                updateLastOpenFile(file);
+                setMode(MODEL_SAVED);
+                String title = "TTool: " + file.getAbsolutePath();
+                if (!frame.getTitle().equals(title)) {
+                    frame.setTitle(title);
+                }
+                if (lotosfile == null) {
+                    makeLotosFile();
+                }
+                return true;
+            } catch(Exception e) {
+                JOptionPane.showMessageDialog(frame, "File could not be saved because " + e.getMessage(), "File Error", JOptionPane.INFORMATION_MESSAGE);
+                return false;
+            }
+        }
+        return false;
+    }
+
+    public boolean checkFileForOpen(File file) {
+        boolean ok = true;
+        String pb = "";
+
+        //TraceManager.addDev("File path=" + file.getPath() + " name=" + file.getName());
+
+        if (file == null) {
+            return false;
+        }
+
+        try {
+            if (file != null) {
+                if (!file.exists()) {
+                    pb  = "File " + file + " doesn't exist";
+                    ok = false;
+                }
+                if ((ok == true) && (!file.canRead())) {
+                    pb  = "File is read protected";
+                    ok = false;
+                }
+            }
+        } catch (Exception e) {
+            ok = false;
+            pb = e.getMessage();
+        }
+        if (ok == false) {
+            file = null;
+            JOptionPane.showMessageDialog(frame, pb, "File Error", JOptionPane.INFORMATION_MESSAGE);
+        }
+        return ok;
+    }
+
+    public boolean checkFileForSave(File file) {
+        boolean ok = true;
+        String pb = "";
+
+        if (file == null) {
+            return false;
+        }
+
+        try {
+            if (file != null) {
+                if (!file.exists()) {
+                    if (!file.createNewFile()) {
+                        pb  = "File could not be created";
+                        ok = false;
+                    }
+                    if (!file.canWrite()) {
+                        pb  = "File is write protected";
+                        ok = false;
+                    }
+                }
+            }
+        } catch (Exception e) {
+            ok = false;
+            pb = e.getMessage();
+        }
+        if (ok == false) {
+            file = null;
+            JOptionPane.showMessageDialog(frame, pb, "File Error", JOptionPane.INFORMATION_MESSAGE);
+        }
+        return ok;
+    }
+
+    public void saveLastLotos() {
+        saveLotosSpec(gtm.getLastRTLOTOSSpecification());
+    }
+
+    public void saveLastDTA() {
+        saveDTA(gtm.getLastTextualDTA(), gtm.getLastGraphicalDTA());
+    }
+
+    public void saveLastRG() {
+        saveRG(gtm.getLastTextualRG(), gtm.getLastGraphicalRG());
+    }
+
+    public void saveLastTLSA() {
+        saveTLSA(gtm.getLastTextualTLSA(), gtm.getLastGraphicalTLSA());
+    }
+
+    public void saveLastRGAUT() {
+        saveRGAUT(gtm.getLastTextualRGAUT(), gtm.getLastGraphicalRGAUT());
+    }
+
+    public void saveLastRGAUTProj() {
+        saveRGAUT(gtm.getLastTextualRGAUTProj(), gtm.getLastGraphicalRGAUTProj());
+    }
+
+    public void saveLastModifiedRG() {
+        saveRGAUT(modifiedaut, modifiedautdot);
+    }
+
+    public void importLibrary() {
+        //TDiagramPanel tdp1 = ((TDiagramPanel)(designPanels.elementAt(mainDesignTabbedPane.getSelectedIndex()));
+        //tdp1.insertLibrary(tdp1.getMinX(), tdp1.getMinY());
+        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+        if (tdp1 != null) {
+            tdp1.insertLibrary(tdp1.getMinX(), tdp1.getMinY());
+        }
+    }
+
+    public void exportLibrary() {
+        //TDiagramPanel tdp1 = (TDiagramPanel)(designPanels.elementAt(mainDesignTabbedPane.getSelectedIndex()));
+        //tdp1.saveAsLibrary();
+        getCurrentTDiagramPanel().saveAsLibrary();
+    }
+
+    public void makeLotosFile() {
+        String s = file.getAbsolutePath();
+        int l = s.length();
+        String myFile = s.substring(0, l-4);
+        lotosfile = new File(myFile + ".lot");
+        simfile = new File(myFile + ".sim");
+        dtafile = new File(myFile + ".dta");
+        dtadotfile = new File(myFile + ".dta.dot");
+        rgfile = new File(myFile + ".rg");
+        rgdotfile = new File(myFile + ".rg.dot");
+        tlsafile = new File(myFile + ".tlsa");
+        tlsadotfile = new File(myFile + ".dot.tlsa");
+        rgautfile = new File(myFile + ".aut");
+        fc2file = new File(myFile + ".fc2");
+        bcgfile = new File(myFile + ".bcg");
+        rgautdotfile = new File(myFile + ".aut.dot");
+        rgautprojfile = new File(myFile + "_proj.aut");
+        rgautprojdotfile = new File(myFile + "_proj.aut.dot");
+    }
+
+    public boolean saveBeforeAction(String str1, String str2) {
+        Object[] options = { str1, str2, "CANCEL" };
+        int back = JOptionPane.showOptionDialog(frame, "Modeling has not been saved", "Warning",
+                                                JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE,
+                                                null, options, options[0]);
+        //TraceManager.addDev("back= " + back);
+        if (back == JOptionPane.CANCEL_OPTION) {
+            return false;
+        }
+        if (back == JOptionPane.YES_OPTION) {
+            saveProject();
+        }
+        return true;
+    }
+
+    public void quitApplication() {
+        boolean b = actions[TGUIAction.ACT_SAVE].isEnabled();
+        if (b) {
+            if (saveBeforeAction("SAVE and QUIT", "QUIT now") == false) {
+                return;
+            }
+
+        }
+
+        ConfigurationTTool.LastWindowAttributesX = "" + frame.getLocation().x;
+        ConfigurationTTool.LastWindowAttributesY = "" + frame.getLocation().y;
+        ConfigurationTTool.LastWindowAttributesWidth = "" + frame.getSize().width;
+        ConfigurationTTool.LastWindowAttributesHeight = "" + frame.getSize().height;
+
+        if (frame.getExtendedState() == Frame.MAXIMIZED_BOTH) {
+            ConfigurationTTool.LastWindowAttributesMax = "true";
+        } else {
+            ConfigurationTTool.LastWindowAttributesMax = "false";
+        }
+
+        try {
+            if (ConfigurationTTool.LastOpenFileDefined) {
+                ConfigurationTTool.saveConfiguration();
+                //TraceManager.addDev("Configuration written to file");
+            }
+        } catch (Exception e) {}
+
+
+        System.exit(0);
+    }
+
+
+    public void cut() {
+        getCurrentTDiagramPanel().makeCut();
+    }
+
+    public void copy() {
+        getCurrentTDiagramPanel().makeCopy();
+    }
+
+    public void paste() {
+        int x = Math.min(Math.max(getCurrentTDiagramPanel().getMinX(), getCurrentTDiagramPanel().currentX), getCurrentTDiagramPanel().getMaxX());
+        int y = Math.min(Math.max(getCurrentTDiagramPanel().getMinY(), getCurrentTDiagramPanel().currentY), getCurrentTDiagramPanel().getMaxY());
+        getCurrentTDiagramPanel().makePaste(x, y);
+    }
+
+    public void delete() {
+        getCurrentTDiagramPanel().makeDelete();
+    }
+
+    public void backward() {
+        //TraceManager.addDev("backward");
+        gtm.backward();
+        setMode(MODEL_CHANGED);
+        dtree.toBeUpdated();
+    }
+
+    public void forward() {
+        //TraceManager.addDev("forward");
+        gtm.forward();
+        setMode(MODEL_CHANGED);
+        dtree.toBeUpdated();
+    }
+
+    public void zoomMore() {
+        zoom(1.25);
+    }
+
+    public void zoomLess() {
+        zoom(0.8);
+    }
+
+    public void zoom(double multFactor) {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        tdp.setZoom(tdp.getZoom() * multFactor);
+        tdp.updateComponentsAfterZoom();
+        updateZoomInfo();
+    }
+
+    public void updateZoomInfo() {
+        String s = "";
+        int zoom = (int)(getCurrentTDiagramPanel().getZoom()*100);
+        if (zoom < 100) {
+            s = "0" + zoom + "%";
+        } else {
+            s += zoom + "%";
+        }
+        //TraceManager.addDev("Seeting zoom in " + getCurrentTDiagramPanel());
+        actions[TGUIAction.ACT_SHOW_ZOOM].setName(TGUIAction.ACT_SHOW_ZOOM, s);
+    }
+
+    public void firstDiag() {
+        getCurrentJTabbedPane().setSelectedIndex(0);
+    }
+
+    public void backDiag() {
+        getCurrentJTabbedPane().setSelectedIndex(Math.max(0, getCurrentJTabbedPane().getSelectedIndex() - 1));
+    }
+
+    public void nextDiag() {
+        getCurrentJTabbedPane().setSelectedIndex(Math.min(getCurrentJTabbedPane().getTabCount(), getCurrentJTabbedPane().getSelectedIndex() + 1));
+    }
+
+    public void lastDiag() {
+        getCurrentJTabbedPane().setSelectedIndex(getCurrentJTabbedPane().getTabCount() - 1);
+    }
+
+    //@author: Huy TRUONG
+    //open a new External Search Dialog
+    public void showExternalSearch(){
+        String textSearchField = mainBar.search.getText();
+        List<String> listSearch = new ArrayList<String>();
+
+        if (null == this.searchBox) {
+            if (getCurrentTDiagramPanel()!=null) {
+                if (getCurrentTDiagramPanel().tdmm.getSelectComponents().size() == 0) {
+                    listSearch.add(textSearchField);
+                } else {
+                    listSearch = getCurrentTDiagramPanel().tdmm.getSelectComponents();
+                    listSearch.add(0, textSearchField);
+
+                }
+                this.searchBox = new JDialogSearchBox(frame, "External Search", listSearch, getCurrentTDiagramPanel().tdmm);
+            }else
+                this.searchBox = new JDialogSearchBox(frame, "External Search", new ArrayList<String>());
+
+        }
+        else {
+            if (this.searchBox.isShowing()) {
+                this.searchBox.setVisible( true );
+            }
+            else {
+                this.searchBox = null;
+                showExternalSearch();
+            }
+        }
+    }
+
+    public void doInternalSearch(){
+        search(mainBar.search.getText());
+    }
+
+    public void aboutVersion() {
+        JFrameBasicText jft = new JFrameBasicText("About TTool ...", DefaultText.getAboutText(), IconManager.imgic324);
+        jft.setIconImage(IconManager.img8);
+        GraphicLib.centerOnParent(jft, 700, 800 );
+        jft.setVisible(true);
+
+    }
+
+    public void showTToolConfiguration() {
+        JFrameBasicText jft = new JFrameBasicText("Your configuration of TTool ...", ConfigurationTTool.getConfiguration(systemcOn), IconManager.imgic76);
+        jft.setIconImage(IconManager.img8);
+        //jft.setSize(700, 800);
+        GraphicLib.centerOnParent(jft, 700, 800 );
+        jft.setVisible(true);
+
+    }
+
+    public void aboutTURTLE() {
+        BrowserControl.startBrowerToURL("http://ttool.telecom-paristech.fr/");
+    }
+
+    public void helpTURTLE() {
+        BrowserControl.startBrowerToURL("http://ttool.telecom-paristech.fr/avatar.html");
+    }
+
+    public void helpSysMLSec() {
+        BrowserControl.startBrowerToURL("http://sysml-sec.telecom-paristech.fr/");
+    }
+
+    public void helpDIPLODOCUS() {
+        BrowserControl.startBrowerToURL("http://ttool.telecom-paristech.fr/diplodocus.html");
+    }
+
+    public void oneClickLOTOSRG() {
+        // boolean ret;
+        if (!checkModelingSyntax(true)) {
+            TraceManager.addDev("Syntax error");
+            return;
+        }
+
+        if (!generateLOTOS(true)) {
+            TraceManager.addDev("Generate LOTOS: error");
+            return;
+        }
+
+        formalValidation(true);
+    }
+
+    public void oneClickRTLOTOSRG() {
+        // boolean ret;
+        if (!checkModelingSyntax(true)) {
+            TraceManager.addDev("Syntax error");
+            return;
+        }
+
+        if (!generateRTLOTOS(true)) {
+            TraceManager.addDev("Generate RT-LOTOS: error");
+            return;
+        }
+
+        formalValidation(true);
+    }
+
+    public void modelChecking() {
+        checkModelingSyntax(false);
+    }
+
+    public boolean checkModelingSyntax(String panelName, boolean automatic) {
+        TURTLEPanel tp = getTURTLEPanel(panelName);
+        if (tp != null) {
+            return checkModelingSyntax(tp, automatic);
+        }
+
+        return false;
+    }
+
+    public boolean checkModelingSyntax(boolean automatic) {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp != null) {
+            return checkModelingSyntax(tp, automatic);
+        }
+
+        return false;
+    }
+
+    public boolean checkModelingSyntax(TURTLEPanel tp, boolean automatic) {
+        //String msg = "";
+        boolean b = false;
+        boolean ret = false;
+
+        if (file == null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The project must be saved before any simulation or formal verification can be performed",
+                                          "Syntax analysis failed",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return false;
+        }
+
+
+        if (tp instanceof AnalysisPanel) {
+            try {
+                b = gtm.buildTURTLEModelingFromAnalysis((AnalysisPanel)tp);
+            } catch (AnalysisSyntaxException ae) {
+                //TraceManager.addDev("Exception AnalysisSyntaxException");
+                //msg = ae.getMessage();
+                b = false;
+            }
+            if (b) {
+                setMode(MainGUI.MODEL_OK);
+                setMode(MainGUI.GEN_DESIGN_OK);
+                ret = true;
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal (RT-LOTOS) specification or executable code (Java)",
+                                                  "Syntax analysis successful on analysis diagrams",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            } else {
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The TURTLE Analysis contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+                setMode(MainGUI.GEN_DESIGN_OK);
+                //setMode(MainGUI.MODEL_OK);
+            }
+
+
+
+        } else if (tp instanceof DesignPanel) {
+            //Design
+            DesignPanel dp = (DesignPanel)tp;
+            JDialogModelChecking.validated = dp.validated;
+            JDialogModelChecking.ignored = dp.ignored;
+            LinkedList<TClassInterface> tclassesToValidate = new LinkedList<TClassInterface> ();
+            JDialogModelChecking jdmc = new JDialogModelChecking(frame, tclassesToValidate,dp.tcdp.getComponentList(), "Choosing Tclasses to validate");
+            if (!automatic) {
+                GraphicLib.centerOnParent(jdmc);
+                jdmc.setVisible(true); // blocked until dialog has been closed
+            } else {
+                jdmc.closeDialog();
+            }
+            boolean overideTifChecking = jdmc.getOverideSyntaxChecking();
+            if (tclassesToValidate.size() > 0) {
+                dp.validated = JDialogModelChecking.validated;
+                dp.ignored = JDialogModelChecking.ignored;
+                b = gtm.checkTURTLEModeling(tclassesToValidate, dp, overideTifChecking);
+                if (b) {
+                    ret = true;
+                    setMode(MainGUI.MODEL_OK);
+                    setMode(MainGUI.GEN_DESIGN_OK);
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal (RT-LOTOS) specification or executable code (Java)",
+                                                      "Syntax analysis successful on design diagrams",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                } else {
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "The TURTLE Modeling contains several errors",
+                                                      "Syntax analysis failed",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                }
+            }
+
+        } else if (tp instanceof DeploymentPanel) {
+            DeploymentPanel dp = (DeploymentPanel) tp;
+            b = gtm.translateDeployment(dp);
+            if (b) {
+                setMode(MainGUI.MODEL_OK);
+                ret = true;
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal (RT-LOTOS) specification or executable code (Java)",
+                                                  "Syntax analysis successful on deployment diagrams",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            } else {
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The TURTLE deployment contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            }
+
+            // AttackTree
+        } else if (tp instanceof AttackTreePanel) {
+            AttackTreePanel atp = (AttackTreePanel) tp;
+            b = gtm.translateAttackTreePanel(atp);
+            if (b) {
+                setMode(MainGUI.ATTACKTREE_SYNTAXCHECKING_OK);
+                ret = true;
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s)",
+                                                  "Syntax analysis successful on attack tree",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            } else {
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The Attack tree contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            }
+
+
+            // AVATAR
+        } else if (tp instanceof AvatarDesignPanel) {
+            //Design
+            AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+            //JDialogModelChecking.validated = adp.validated;
+            //JDialogModelChecking.ignored = adp.ignored;
+            LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner> ();
+            JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
+            if (!automatic) {
+                GraphicLib.centerOnParent(jdmc);
+                jdmc.setVisible(true); // blocked until dialog has been closed
+            } else {
+                jdmc.closeDialog();
+            }
+
+            if (jdmc.hasBeenCancelled()) {
+                return false;
+            }
+
+            adp.resetModelBacktracingProVerif();
+
+            adp.setValidated(jdmc.getValidated());
+            adp.setIgnored(jdmc.getIgnored());
+            adp.setOptimized(jdmc.getOptimized());
+
+
+            boolean optimize = jdmc.getOptimized();
+            if (blocksToValidate.size() > 0) {
+                /*adp.validated = JDialogModelChecking.validated;
                   adp.ignored = JDialogModelChecking.ignored;*/
-				b = gtm.checkAvatarDesign(blocksToValidate, adp, optimize);
-				if (b) {
-					ret = true;
-					setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK);
-					//setMode(MainGUI.MODEL_PROVERIF_OK);
-					//setMode(MainGUI.GEN_DESIGN_OK);
-					/*
+                b = gtm.checkAvatarDesign(blocksToValidate, adp, optimize);
+                if (b) {
+                    ret = true;
+                    setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK);
+                    //setMode(MainGUI.MODEL_PROVERIF_OK);
+                    //setMode(MainGUI.GEN_DESIGN_OK);
+                    /*
                       if (!automatic) {
                       JOptionPane.showMessageDialog(frame,
                       "0 error, " + getCheckingWarnings().size() + " warning(s). You can now perform simulations or formal proofs (UPPAAL)",
                       "Syntax analysis successful on avatar design diagrams",
                       JOptionPane.INFORMATION_MESSAGE);
                       }
-					 */
-				} else {
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"The Avatar modeling contains several errors",
-								"Syntax analysis failed",
-								JOptionPane.ERROR_MESSAGE);
-					}
-				}
-			}
-
-
-			// NC
-		}
-		//DG 6.2. 2017
-
-		else if (tp instanceof ADDPanel) {
-			//Design
-			AvatarDesignPanel adp = getFirstAvatarDesignPanelFound();
-
-			//JDialogModelChecking.validated = adp.validated;
-			//JDialogModelChecking.ignored = adp.ignored;
-			LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner> ();
-			JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
-			if (!automatic) {
-				GraphicLib.centerOnParent(jdmc);
-				jdmc.setVisible(true); // blocked until dialog has been closed
-			} else {
-				jdmc.closeDialog();
-			}
-
-			if (jdmc.hasBeenCancelled()) {
-				return false;
-			}
-
-			adp.resetModelBacktracingProVerif();
-
-			adp.setValidated(jdmc.getValidated());
-			adp.setIgnored(jdmc.getIgnored());
-			adp.setOptimized(jdmc.getOptimized());
-
-
-			boolean optimize = jdmc.getOptimized();
-			if (blocksToValidate.size() > 0) {
-				/*adp.validated = JDialogModelChecking.validated;
+                    */
+                } else {
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "The Avatar modeling contains several errors",
+                                                      "Syntax analysis failed",
+                                                      JOptionPane.ERROR_MESSAGE);
+                    }
+                }
+            }
+
+
+            // NC
+        }
+        //DG 6.2. 2017
+
+        else if (tp instanceof ADDPanel) {
+            //Design
+            AvatarDesignPanel adp = getFirstAvatarDesignPanelFound();
+
+            //JDialogModelChecking.validated = adp.validated;
+            //JDialogModelChecking.ignored = adp.ignored;
+            LinkedList<AvatarBDStateMachineOwner> blocksToValidate = new LinkedList<AvatarBDStateMachineOwner> ();
+            JDialogSelectAvatarBlock jdmc = new JDialogSelectAvatarBlock(frame, blocksToValidate, adp.getAvatarBDPanel().getFullStateMachineOwnerList(), "Choosing blocks to validate", adp.getValidated(), adp.getIgnored(), adp.getOptimized());
+            if (!automatic) {
+                GraphicLib.centerOnParent(jdmc);
+                jdmc.setVisible(true); // blocked until dialog has been closed
+            } else {
+                jdmc.closeDialog();
+            }
+
+            if (jdmc.hasBeenCancelled()) {
+                return false;
+            }
+
+            adp.resetModelBacktracingProVerif();
+
+            adp.setValidated(jdmc.getValidated());
+            adp.setIgnored(jdmc.getIgnored());
+            adp.setOptimized(jdmc.getOptimized());
+
+
+            boolean optimize = jdmc.getOptimized();
+            if (blocksToValidate.size() > 0) {
+                /*adp.validated = JDialogModelChecking.validated;
                   adp.ignored = JDialogModelChecking.ignored;*/
-				b = gtm.checkAvatarDesign(blocksToValidate, adp, optimize);
-				if (b) {
-					ret = true;
-					setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK);
-					//setMode(MainGUI.MODEL_PROVERIF_OK);
-					//setMode(MainGUI.GEN_DESIGN_OK);
-					/*
+                b = gtm.checkAvatarDesign(blocksToValidate, adp, optimize);
+                if (b) {
+                    ret = true;
+                    setMode(MainGUI.AVATAR_SYNTAXCHECKING_OK);
+                    //setMode(MainGUI.MODEL_PROVERIF_OK);
+                    //setMode(MainGUI.GEN_DESIGN_OK);
+                    /*
                       if (!automatic) {
                       JOptionPane.showMessageDialog(frame,
                       "0 error, " + getCheckingWarnings().size() + " warning(s). You can now perform simulations or formal proofs (UPPAAL)",
                       "Syntax analysis successful on avatar design diagrams",
                       JOptionPane.INFORMATION_MESSAGE);
                       }
-					 */
-				} else {
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"The Avatar modeling contains several errors",
-								"Syntax analysis failed",
-								JOptionPane.ERROR_MESSAGE);
-					}
-				}
-			}
-
-
-			// NC
-		}
-
-
-		//fin DG
-		else if (tp instanceof NCPanel) {
-			NCPanel ncp = (NCPanel) tp;
-			b = gtm.translateNC(ncp);
-			if (b) {
-				//setMode(MainGUI.MODEL_OK_NC);
-				ret = true;
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"0 error, " + getCheckingWarnings().size() + " warning(s)",
-							"Syntax analysis successful on NC diagram",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			} else {
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"The NC diagram contains several errors",
-							"Syntax analysis failed",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			}
-
-
-		} else if (tp instanceof TMLDesignPanel) {
-			TMLDesignPanel tmldp = (TMLDesignPanel)tp;
-			JDialogSelectTMLTask.validated = tmldp.validated;
-			JDialogSelectTMLTask.ignored = tmldp.ignored;
-			Vector<TGComponent> tmlTasksToValidate = new Vector<TGComponent>();
-			JDialogSelectTMLTask jdstmlt = new JDialogSelectTMLTask(frame, tmlTasksToValidate, tmldp.tmltdp.getComponentList(), "Choosing TML tasks to validate");
-			if (!automatic) {
-				GraphicLib.centerOnParent(jdstmlt);
-				jdstmlt.setVisible(true); // Blocked until dialog has been closed
-			} else {
-				jdstmlt.closeDialog();
-			}
-			if (tmlTasksToValidate.size() > 0) {
-				tmldp.validated = JDialogSelectTMLTask.validated;
-				tmldp.ignored = JDialogSelectTMLTask.ignored;
-				b = gtm.translateTMLDesign(tmlTasksToValidate, tmldp, jdstmlt.getOptimize());
-				if (b) {
-					//setMode(MainGUI.MODEL_OK);
-					setMode(MainGUI.GEN_SYSTEMC_OK);
-					setMode(MainGUI.MODEL_OK);
-					ret = true;
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate make proofs (safety, security and performance) or generate executable code",
-								"Syntax analysis successful on TML designs",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				} else {
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"The TML design contains several errors",
-								"Syntax analysis failed",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				}
-			}
-		} else if (tp instanceof TMLComponentDesignPanel) {
-			TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel)tp;
-			JDialogSelectTMLComponent.validated = tmlcdp.validated;
-			JDialogSelectTMLComponent.ignored = tmlcdp.ignored;
-			Vector<TGComponent> tmlComponentsToValidate = new Vector<TGComponent>();
-			JDialogSelectTMLComponent jdstmlc = new JDialogSelectTMLComponent(frame, tmlComponentsToValidate, tmlcdp.tmlctdp.getComponentList(), "Choosing TML components to validate");
-			if (!automatic) {
-				GraphicLib.centerOnParent(jdstmlc);
-				jdstmlc.setVisible(true); // Blocked until dialog has been closed
-			} else {
-				jdstmlc.closeDialog();
-			}
-			if (tmlComponentsToValidate.size() > 0) {
-				tmlcdp.validated = JDialogSelectTMLComponent.validated;
-				tmlcdp.ignored = JDialogSelectTMLComponent.ignored;
-				b = gtm.translateTMLComponentDesign(tmlComponentsToValidate, tmlcdp, jdstmlc.getOptimize());
-				if (b) {
-					//setMode(MainGUI.MODEL_OK);
-					setMode(MainGUI.GEN_SYSTEMC_OK);
-					setMode(MainGUI.MODEL_OK);
-					ret = true;
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate make proofs (safety, security and performance) or generate executable code",
-								"Syntax analysis successful on TML designs",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				} else {
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"The TML design contains several errors",
-								"Syntax analysis failed",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				}
-			}
-		} else if (tp instanceof TMLArchiPanel) {
-			tmlap = (TMLArchiPanel)tp;
-			JDialogSelectTMLNodes.validated = tmlap.validated;
-			JDialogSelectTMLNodes.ignored = tmlap.ignored;
-			Vector<TGComponent> tmlNodesToValidate = new Vector<TGComponent>();
-			JDialogSelectTMLNodes jdstmln = new JDialogSelectTMLNodes(frame, tmlNodesToValidate, tmlap.tmlap.getComponentList(), "Choosing Nodes to validate", tmlap.tmlap.getMasterClockFrequency());
-			if (!automatic) {
-				GraphicLib.centerOnParent(jdstmln);
-				jdstmln.setVisible(true); // Blocked until dialog has been closed
-			} else {
-				jdstmln.closeDialog();
-			}
-			tmlap.tmlap.setMasterClockFrequency(jdstmln.getClock());
-
-			if (tmlNodesToValidate.size() > 0) {
-				tmlap.validated = JDialogSelectTMLNodes.validated;
-				tmlap.ignored = JDialogSelectTMLNodes.ignored;
-				//TraceManager.addDev("Ready to generate TML mapping!");
-				b = gtm.checkSyntaxTMLMapping(tmlNodesToValidate, tmlap, jdstmln.getOptimize());
-				if (b) {
-					//setMode(MainGUI.MODEL_OK);
-					setMode(MainGUI.GEN_SYSTEMC_OK);
-					setMode(MainGUI.MODEL_OK);
-					ret = true;
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"0 error, " + getCheckingWarnings().size() + " warning(s). You can now perform verifications (safety, security, performance) or generate executable code",
-								"Syntax analysis successful on TML mapping",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				} else {
-					if (!automatic) {
-						JOptionPane.showMessageDialog(frame,
-								"The TML mapping contains several errors",
-								"Syntax analysis failed",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				}
-			}
-		}
-		else if( tp instanceof TMLCommunicationPatternPanel ) {
-			TMLCommunicationPatternPanel tmlcpp = (TMLCommunicationPatternPanel) tp;
-			JDialogSelectCPDiagrams.validated =  tmlcpp.validated;
-			JDialogSelectCPDiagrams.ignored =  tmlcpp.ignored;
-			Vector<TGComponent> tmlDiagramsToValidate = new Vector<TGComponent>();
-			JDialogSelectCPDiagrams jdscpd = new JDialogSelectCPDiagrams( frame, tmlDiagramsToValidate, tmlcpp.tmlcpp.getComponentList(),
-					"Choosing Diagrams to validate" );
-			if( !automatic ) {
-				GraphicLib.centerOnParent( jdscpd );
-				jdscpd.setVisible( true ); // Blocked until dialog has been closed
-			}
-			else {
-				jdscpd.closeDialog();
-			}
-			if( tmlDiagramsToValidate.size() > 0 ) {
-				tmlcpp.validated = JDialogSelectCPDiagrams.validated;
-				tmlcpp.ignored = JDialogSelectCPDiagrams.ignored;
-				TraceManager.addDev("Ready to generate TML code for Communication Patterns!");
-				b = gtm.checkSyntaxTMLCP( tmlDiagramsToValidate, tmlcpp, jdscpd.getOptimize() );    //Fills a data structure
-				//translateTMLComponentDesign
-				//and should say if it is correct or contains error in the return variable b
-				if( b ) {
-					//setMode(MainGUI.MODEL_OK);
-					setMode( MainGUI.GEN_SYSTEMC_OK );
-					setMode( MainGUI.MODEL_OK );
-					ret = true;
-					if( !automatic ) {
-						JOptionPane.showMessageDialog( frame, "0 error, " + getCheckingWarnings().size() +
-								" warning(s). You can now perform verifications (safety, security, performance) or generate executable code",
-								"Syntax analysis successful on TML mapping",
-								JOptionPane.INFORMATION_MESSAGE );
-					}
-				}
-				else {
-					if( !automatic ) {
-						JOptionPane.showMessageDialog( frame, "The Communication Patterns design contains several errors", "Syntax analysis failed",
-								JOptionPane.INFORMATION_MESSAGE );
-					}
-				}
-			}
-		}
-		else if( tp instanceof RequirementPanel ) {
-			TDiagramPanel tdp = getCurrentTDiagramPanel();
-			if (!(tdp instanceof RequirementDiagramPanel)) {
-				if (tdp instanceof EBRDDPanel) {
-
-					b = gtm.makeEBRDD((EBRDDPanel)tdp);
-					if (b) {
-						JOptionPane.showMessageDialog(frame,
-								"0 error, " + getCheckingWarnings().size() + " warning(s).",
-								"Syntax analysis successful on EBRDD",
-								JOptionPane.INFORMATION_MESSAGE);
-					} else {
-						JOptionPane.showMessageDialog(frame,
-								"The EBRDD contains several errors",
-								"Syntax analysis failed",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-				} else {
-					return ret;
-				}
-				//TraceManager.addDev("No syntax checking for EBRDD: not yet implemented");
-			} else {
-				RequirementDiagramPanel rdp= (RequirementDiagramPanel)tdp;
-				JDialogSelectRequirements.validated = rdp.validated;
-				JDialogSelectRequirements.ignored = rdp.ignored;
-				Vector<Requirement> reqsToValidate = new Vector<Requirement>();
-				JDialogSelectRequirements jdsreq = new JDialogSelectRequirements(frame, reqsToValidate, rdp.getComponentList(), "Choosing requirements to verify");
-
-				if (!automatic) {
-					GraphicLib.centerOnParent(jdsreq);
-					jdsreq.setVisible(true); // Blocked until dialog has been closed
-				}
-
-				if (reqsToValidate.size() > 0) {
-					rdp.validated = JDialogSelectRequirements.validated;
-					rdp.ignored = JDialogSelectRequirements.ignored;
-					b = gtm.generateTMsForRequirementAnalysis(reqsToValidate, rdp);
-					if (b) {
-						//setMode(MainGUI.GEN_SYSTEMC_OK);
-						setMode(MainGUI.REQ_OK);
-						ret = true;
-						if (!automatic) {
-							JOptionPane.showMessageDialog(frame,
-									"0 error, " + getCheckingWarnings().size() + " warning(s). You can now verify requirements' satisfiability",
-									"Syntax analysis successful on requirements",
-									JOptionPane.INFORMATION_MESSAGE);
-						}
-
-					} else {
-						if (!automatic) {
-							JOptionPane.showMessageDialog(frame,
-									"The requirement diagram contains several errors",
-									"Syntax analysis failed",
-									JOptionPane.INFORMATION_MESSAGE);
-						}
-					}
-				}
-			}
-		} else if (tp instanceof ProactiveDesignPanel) {
-			// TraceManager.addDev("!!!!!!!!!!!!1");
-			//newTurtleModeling();
-			b = gtm.translateProactiveDesign((ProactiveDesignPanel)tp);
-			if (b) {
-				//setMode(MainGUI.MODEL_OK);
-				//setMode(MainGUI.GEN_SYSTEMC_OK);
-				setMode(MainGUI.MODEL_OK);
-				ret = true;
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a LOTOS,specification",
-							"Syntax analysis successful on Proactive design",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-
-			} else {
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"The Proactive design contains several errors",
-							"Syntax analysis failed",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-
-			}
-		} else if (tp instanceof TURTLEOSDesignPanel) {
-			TraceManager.addDev("TURTLEOS Design Panel");
-			//TURTLEOSDesignPanel tosdp = (TURTLEOSDesignPanel) tp;
-			b = gtm.translateTURTLEOSDesign((TURTLEOSDesignPanel)tp);
-			if (b) {
-				setMode(MainGUI.MODEL_OK);
-				ret = true;
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal specification or executable code (Java)",
-							"Syntax analysis successful on deployment diagrams",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			} else {
-				if (!automatic) {
-					JOptionPane.showMessageDialog(frame,
-							"The TURTLE deployment contains several errors",
-							"Syntax analysis failed",
-							JOptionPane.INFORMATION_MESSAGE);
-				}
-			}
-		}
-		//dtree.toBeUpdated();
-		dtree.forceUpdate();
-		return ret;
-	}
-
-	public LinkedList<TAttribute> getAllAttributes() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		String name =  getCurrentTDiagramPanel().getName();
-
-		return this.getAllAttributes (tp, name);
-	}
-
-	public LinkedList<TAttribute> getAllAttributes(TURTLEPanel tp, String name) {
-		if (tp == null) {
-			return null;
-		}
-
-		if (!(tp instanceof AvatarDesignPanel)) {
-			return null;
-		}
-		AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-
-		return adp.getAllAttributes(name);
-	}
-
-
-	public LinkedList<AvatarMethod> getAllMethods() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {
-			return null;
-		}
-
-		if (!(tp instanceof AvatarDesignPanel)) {
-			return null;
-		}
-		AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-
-		String name =  getCurrentTDiagramPanel().getName();
-
-		return adp.getAllMethods(name);
-	}
-
-	public LinkedList<AvatarSignal> getAllSignals() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		String name =  getCurrentTDiagramPanel().getName();
-		return this.getAllSignals (tp, name);
-	}
-
-	public LinkedList<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) {
-		if (tp == null) {
-			return null;
-		}
-
-		if (!(tp instanceof AvatarDesignPanel)) {
-			return null;
-		}
-		AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-
-		return adp.getAllSignals(name);
-	}
-
-
-	public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions () {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		return this.getAllLibraryFunctions (tp);
-	}
-
-	public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions (TURTLEPanel tp) {
-		String name =  getCurrentTDiagramPanel().getName();
-		return this.getAllLibraryFunctions (tp, name);
-	}
-
-	/* Note that this is here for historical purpose : Now, any block can access library functions of any
-	 * other block.
-	 */
-	public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions (TURTLEPanel tp, String name) {
-		if (tp == null) {
-			return null;
-		}
-
-		if (!(tp instanceof AvatarDesignPanel)) {
-			return null;
-		}
-		AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-
-		return adp.getAllLibraryFunctions(name);
-	}
-
-	public String[] getAllOutEvents() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {
-			return null;
-		}
-
-		if (!(tp instanceof TMLComponentDesignPanel)) {
-			return null;
-		}
-		TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-
-		String name =  getCurrentTDiagramPanel().getName();
-
-		return tmlcomp.getAllOutEvents(name);
-	}
-
-	public String[] getAllInEvents() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {return null;}
-		if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-		TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-		String name =  getCurrentTDiagramPanel().getName();
-		return tmlcomp.getAllInEvents(name);
-	}
-
-	public String[] getAllOutChannels() {   //this routine can be called only from a TMLComponentDesignPanel
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) { return null;}
-		if (!(tp instanceof TMLComponentDesignPanel)) { return null;}
-		TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-		String name =  getCurrentTDiagramPanel().getName();
-		return tmlcomp.getAllOutChannels(name);
-	}
-
-	public String[] getAllInChannels() {    //this routine can be called only from a TMLComponentDesignPanel
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {return null;}
-		if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-		TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-		String name =  getCurrentTDiagramPanel().getName();
-		return tmlcomp.getAllInChannels(name);
-	}
-
-	public Vector<String> getAllCryptoConfig(){
-		TURTLEPanel tp;
-		Vector<String> list = new Vector<String>();
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel) {
-				for (String s: ((TMLComponentDesignPanel)tp).getAllCryptoConfig()){
-					list.add(mainTabbedPane.getTitleAt(i)+"::"+s);
-				}
-			}
-		}
-		return list;
-	}
-	public String[] getCurrentCryptoConfig() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {return null;}
-		if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-		TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-		List<String> strlist = tmlcomp.getAllCryptoConfig();
-		String[] strarray = new String[strlist.size()];
-		strlist.toArray(strarray);
-		return strarray;
-	}
-	public String[] getAllNonce(){
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {return null;}
-		if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-		TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-		List<String> strlist = tmlcomp.getAllNonce();
-		String[] strarray = new String[strlist.size()];
-		strlist.toArray(strarray);
-		return strarray;
-	}
-
-	public ArrayList<String> getAllKeys(){
-		TURTLEPanel tp;
-		ArrayList<String> list = new ArrayList<String>();
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel) {
-				for (String s:((TMLComponentDesignPanel)tp).getAllKeys()){
-					list.add(s);
-				}
-			}
-		}
-		return list;
-	}
-
-	public String[] getAllOutRequests() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {return null;}
-		if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
-		TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
-		String name =  getCurrentTDiagramPanel().getName();
-		return tmlcomp.getAllOutRequests(name);
-	}
-
-	public LinkedList<String> getAllTimers() {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {
-			return null;
-		}
-
-		if (!(tp instanceof AvatarDesignPanel)) {
-			return null;
-		}
-		AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-
-		String name =  getCurrentTDiagramPanel().getName();
-
-		return adp.getAllTimers(name);
-	}
-
-	public List<CheckingError> getCheckingErrors() {
-		return gtm.getCheckingErrors();
-	}
-
-	public List<CheckingError> getCheckingWarnings() {
-		return gtm.getCheckingWarnings();
-	}
-
-	public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {
-			return;
-		}
-
-		if (tp instanceof AvatarDesignPanel) {
-			AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-			adp.modelBacktracingProVerif(pvoa);
-			getCurrentTDiagramPanel().repaint();
-		}
-		else if (tp instanceof TMLArchiPanel) {
-			/*  for (int i=0; i<tabs.size(); i++){
+                    */
+                } else {
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "The Avatar modeling contains several errors",
+                                                      "Syntax analysis failed",
+                                                      JOptionPane.ERROR_MESSAGE);
+                    }
+                }
+            }
+
+
+            // NC
+        }
+
+
+        //fin DG
+        else if (tp instanceof NCPanel) {
+            NCPanel ncp = (NCPanel) tp;
+            b = gtm.translateNC(ncp);
+            if (b) {
+                //setMode(MainGUI.MODEL_OK_NC);
+                ret = true;
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s)",
+                                                  "Syntax analysis successful on NC diagram",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            } else {
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The NC diagram contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            }
+
+
+        } else if (tp instanceof TMLDesignPanel) {
+            TMLDesignPanel tmldp = (TMLDesignPanel)tp;
+            JDialogSelectTMLTask.validated = tmldp.validated;
+            JDialogSelectTMLTask.ignored = tmldp.ignored;
+            Vector<TGComponent> tmlTasksToValidate = new Vector<TGComponent>();
+            JDialogSelectTMLTask jdstmlt = new JDialogSelectTMLTask(frame, tmlTasksToValidate, tmldp.tmltdp.getComponentList(), "Choosing TML tasks to validate");
+            if (!automatic) {
+                GraphicLib.centerOnParent(jdstmlt);
+                jdstmlt.setVisible(true); // Blocked until dialog has been closed
+            } else {
+                jdstmlt.closeDialog();
+            }
+            if (tmlTasksToValidate.size() > 0) {
+                tmldp.validated = JDialogSelectTMLTask.validated;
+                tmldp.ignored = JDialogSelectTMLTask.ignored;
+                b = gtm.translateTMLDesign(tmlTasksToValidate, tmldp, jdstmlt.getOptimize());
+                if (b) {
+                    //setMode(MainGUI.MODEL_OK);
+                    setMode(MainGUI.GEN_SYSTEMC_OK);
+                    setMode(MainGUI.MODEL_OK);
+                    ret = true;
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate make proofs (safety, security and performance) or generate executable code",
+                                                      "Syntax analysis successful on TML designs",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                } else {
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "The TML design contains several errors",
+                                                      "Syntax analysis failed",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                }
+            }
+        } else if (tp instanceof TMLComponentDesignPanel) {
+            TMLComponentDesignPanel tmlcdp = (TMLComponentDesignPanel)tp;
+            JDialogSelectTMLComponent.validated = tmlcdp.validated;
+            JDialogSelectTMLComponent.ignored = tmlcdp.ignored;
+            Vector<TGComponent> tmlComponentsToValidate = new Vector<TGComponent>();
+            JDialogSelectTMLComponent jdstmlc = new JDialogSelectTMLComponent(frame, tmlComponentsToValidate, tmlcdp.tmlctdp.getComponentList(), "Choosing TML components to validate");
+            if (!automatic) {
+                GraphicLib.centerOnParent(jdstmlc);
+                jdstmlc.setVisible(true); // Blocked until dialog has been closed
+            } else {
+                jdstmlc.closeDialog();
+            }
+            if (tmlComponentsToValidate.size() > 0) {
+                tmlcdp.validated = JDialogSelectTMLComponent.validated;
+                tmlcdp.ignored = JDialogSelectTMLComponent.ignored;
+                b = gtm.translateTMLComponentDesign(tmlComponentsToValidate, tmlcdp, jdstmlc.getOptimize());
+                if (b) {
+                    //setMode(MainGUI.MODEL_OK);
+                    setMode(MainGUI.GEN_SYSTEMC_OK);
+                    setMode(MainGUI.MODEL_OK);
+                    ret = true;
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate make proofs (safety, security and performance) or generate executable code",
+                                                      "Syntax analysis successful on TML designs",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                } else {
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "The TML design contains several errors",
+                                                      "Syntax analysis failed",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                }
+            }
+        } else if (tp instanceof TMLArchiPanel) {
+            tmlap = (TMLArchiPanel)tp;
+            JDialogSelectTMLNodes.validated = tmlap.validated;
+            JDialogSelectTMLNodes.ignored = tmlap.ignored;
+            Vector<TGComponent> tmlNodesToValidate = new Vector<TGComponent>();
+            JDialogSelectTMLNodes jdstmln = new JDialogSelectTMLNodes(frame, tmlNodesToValidate, tmlap.tmlap.getComponentList(), "Choosing Nodes to validate", tmlap.tmlap.getMasterClockFrequency());
+            if (!automatic) {
+                GraphicLib.centerOnParent(jdstmln);
+                jdstmln.setVisible(true); // Blocked until dialog has been closed
+            } else {
+                jdstmln.closeDialog();
+            }
+            tmlap.tmlap.setMasterClockFrequency(jdstmln.getClock());
+
+            if (tmlNodesToValidate.size() > 0) {
+                tmlap.validated = JDialogSelectTMLNodes.validated;
+                tmlap.ignored = JDialogSelectTMLNodes.ignored;
+                //TraceManager.addDev("Ready to generate TML mapping!");
+                b = gtm.checkSyntaxTMLMapping(tmlNodesToValidate, tmlap, jdstmln.getOptimize());
+                if (b) {
+                    //setMode(MainGUI.MODEL_OK);
+                    setMode(MainGUI.GEN_SYSTEMC_OK);
+                    setMode(MainGUI.MODEL_OK);
+                    ret = true;
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). You can now perform verifications (safety, security, performance) or generate executable code",
+                                                      "Syntax analysis successful on TML mapping",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                } else {
+                    if (!automatic) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "The TML mapping contains several errors",
+                                                      "Syntax analysis failed",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                }
+            }
+        }
+        else if( tp instanceof TMLCommunicationPatternPanel ) {
+            TMLCommunicationPatternPanel tmlcpp = (TMLCommunicationPatternPanel) tp;
+            JDialogSelectCPDiagrams.validated =  tmlcpp.validated;
+            JDialogSelectCPDiagrams.ignored =  tmlcpp.ignored;
+            Vector<TGComponent> tmlDiagramsToValidate = new Vector<TGComponent>();
+            JDialogSelectCPDiagrams jdscpd = new JDialogSelectCPDiagrams( frame, tmlDiagramsToValidate, tmlcpp.tmlcpp.getComponentList(),
+                                                                          "Choosing Diagrams to validate" );
+            if( !automatic ) {
+                GraphicLib.centerOnParent( jdscpd );
+                jdscpd.setVisible( true ); // Blocked until dialog has been closed
+            }
+            else {
+                jdscpd.closeDialog();
+            }
+            if( tmlDiagramsToValidate.size() > 0 ) {
+                tmlcpp.validated = JDialogSelectCPDiagrams.validated;
+                tmlcpp.ignored = JDialogSelectCPDiagrams.ignored;
+                TraceManager.addDev("Ready to generate TML code for Communication Patterns!");
+                b = gtm.checkSyntaxTMLCP( tmlDiagramsToValidate, tmlcpp, jdscpd.getOptimize() );    //Fills a data structure
+                //translateTMLComponentDesign
+                //and should say if it is correct or contains error in the return variable b
+                if( b ) {
+                    //setMode(MainGUI.MODEL_OK);
+                    setMode( MainGUI.GEN_SYSTEMC_OK );
+                    setMode( MainGUI.MODEL_OK );
+                    ret = true;
+                    if( !automatic ) {
+                        JOptionPane.showMessageDialog( frame, "0 error, " + getCheckingWarnings().size() +
+                                                       " warning(s). You can now perform verifications (safety, security, performance) or generate executable code",
+                                                       "Syntax analysis successful on TML mapping",
+                                                       JOptionPane.INFORMATION_MESSAGE );
+                    }
+                }
+                else {
+                    if( !automatic ) {
+                        JOptionPane.showMessageDialog( frame, "The Communication Patterns design contains several errors", "Syntax analysis failed",
+                                                       JOptionPane.INFORMATION_MESSAGE );
+                    }
+                }
+            }
+        }
+        else if( tp instanceof RequirementPanel ) {
+            TDiagramPanel tdp = getCurrentTDiagramPanel();
+            if (!(tdp instanceof RequirementDiagramPanel)) {
+                if (tdp instanceof EBRDDPanel) {
+
+                    b = gtm.makeEBRDD((EBRDDPanel)tdp);
+                    if (b) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "0 error, " + getCheckingWarnings().size() + " warning(s).",
+                                                      "Syntax analysis successful on EBRDD",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    } else {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "The EBRDD contains several errors",
+                                                      "Syntax analysis failed",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                } else {
+                    return ret;
+                }
+                //TraceManager.addDev("No syntax checking for EBRDD: not yet implemented");
+            } else {
+                RequirementDiagramPanel rdp= (RequirementDiagramPanel)tdp;
+                JDialogSelectRequirements.validated = rdp.validated;
+                JDialogSelectRequirements.ignored = rdp.ignored;
+                Vector<Requirement> reqsToValidate = new Vector<Requirement>();
+                JDialogSelectRequirements jdsreq = new JDialogSelectRequirements(frame, reqsToValidate, rdp.getComponentList(), "Choosing requirements to verify");
+
+                if (!automatic) {
+                    GraphicLib.centerOnParent(jdsreq);
+                    jdsreq.setVisible(true); // Blocked until dialog has been closed
+                }
+
+                if (reqsToValidate.size() > 0) {
+                    rdp.validated = JDialogSelectRequirements.validated;
+                    rdp.ignored = JDialogSelectRequirements.ignored;
+                    b = gtm.generateTMsForRequirementAnalysis(reqsToValidate, rdp);
+                    if (b) {
+                        //setMode(MainGUI.GEN_SYSTEMC_OK);
+                        setMode(MainGUI.REQ_OK);
+                        ret = true;
+                        if (!automatic) {
+                            JOptionPane.showMessageDialog(frame,
+                                                          "0 error, " + getCheckingWarnings().size() + " warning(s). You can now verify requirements' satisfiability",
+                                                          "Syntax analysis successful on requirements",
+                                                          JOptionPane.INFORMATION_MESSAGE);
+                        }
+
+                    } else {
+                        if (!automatic) {
+                            JOptionPane.showMessageDialog(frame,
+                                                          "The requirement diagram contains several errors",
+                                                          "Syntax analysis failed",
+                                                          JOptionPane.INFORMATION_MESSAGE);
+                        }
+                    }
+                }
+            }
+        } else if (tp instanceof ProactiveDesignPanel) {
+            // TraceManager.addDev("!!!!!!!!!!!!1");
+            //newTurtleModeling();
+            b = gtm.translateProactiveDesign((ProactiveDesignPanel)tp);
+            if (b) {
+                //setMode(MainGUI.MODEL_OK);
+                //setMode(MainGUI.GEN_SYSTEMC_OK);
+                setMode(MainGUI.MODEL_OK);
+                ret = true;
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a LOTOS,specification",
+                                                  "Syntax analysis successful on Proactive design",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+
+            } else {
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The Proactive design contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+
+            }
+        } else if (tp instanceof TURTLEOSDesignPanel) {
+            TraceManager.addDev("TURTLEOS Design Panel");
+            //TURTLEOSDesignPanel tosdp = (TURTLEOSDesignPanel) tp;
+            b = gtm.translateTURTLEOSDesign((TURTLEOSDesignPanel)tp);
+            if (b) {
+                setMode(MainGUI.MODEL_OK);
+                ret = true;
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "0 error, " + getCheckingWarnings().size() + " warning(s). You can now generate a corresponding formal specification or executable code (Java)",
+                                                  "Syntax analysis successful on deployment diagrams",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            } else {
+                if (!automatic) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "The TURTLE deployment contains several errors",
+                                                  "Syntax analysis failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                }
+            }
+        }
+        //dtree.toBeUpdated();
+        dtree.forceUpdate();
+        return ret;
+    }
+
+    public LinkedList<TAttribute> getAllAttributes() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        String name =  getCurrentTDiagramPanel().getName();
+
+        return this.getAllAttributes (tp, name);
+    }
+
+    public LinkedList<TAttribute> getAllAttributes(TURTLEPanel tp, String name) {
+        if (tp == null) {
+            return null;
+        }
+
+        if (!(tp instanceof AvatarDesignPanel)) {
+            return null;
+        }
+        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+
+        return adp.getAllAttributes(name);
+    }
+
+
+    public LinkedList<AvatarMethod> getAllMethods() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {
+            return null;
+        }
+
+        if (!(tp instanceof AvatarDesignPanel)) {
+            return null;
+        }
+        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+
+        String name =  getCurrentTDiagramPanel().getName();
+
+        return adp.getAllMethods(name);
+    }
+
+    public LinkedList<AvatarSignal> getAllSignals() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        String name =  getCurrentTDiagramPanel().getName();
+        return this.getAllSignals (tp, name);
+    }
+
+    public LinkedList<AvatarSignal> getAllSignals(TURTLEPanel tp, String name) {
+        if (tp == null) {
+            return null;
+        }
+
+        if (!(tp instanceof AvatarDesignPanel)) {
+            return null;
+        }
+        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+
+        return adp.getAllSignals(name);
+    }
+
+
+    public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions () {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        return this.getAllLibraryFunctions (tp);
+    }
+
+    public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions (TURTLEPanel tp) {
+        String name =  getCurrentTDiagramPanel().getName();
+        return this.getAllLibraryFunctions (tp, name);
+    }
+
+    /* Note that this is here for historical purpose : Now, any block can access library functions of any
+     * other block.
+     */
+    public LinkedList<AvatarBDLibraryFunction> getAllLibraryFunctions (TURTLEPanel tp, String name) {
+        if (tp == null) {
+            return null;
+        }
+
+        if (!(tp instanceof AvatarDesignPanel)) {
+            return null;
+        }
+        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+
+        return adp.getAllLibraryFunctions(name);
+    }
+
+    public String[] getAllOutEvents() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {
+            return null;
+        }
+
+        if (!(tp instanceof TMLComponentDesignPanel)) {
+            return null;
+        }
+        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+
+        String name =  getCurrentTDiagramPanel().getName();
+
+        return tmlcomp.getAllOutEvents(name);
+    }
+
+    public String[] getAllInEvents() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {return null;}
+        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+        String name =  getCurrentTDiagramPanel().getName();
+        return tmlcomp.getAllInEvents(name);
+    }
+
+    public String[] getAllOutChannels() {   //this routine can be called only from a TMLComponentDesignPanel
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) { return null;}
+        if (!(tp instanceof TMLComponentDesignPanel)) { return null;}
+        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+        String name =  getCurrentTDiagramPanel().getName();
+        return tmlcomp.getAllOutChannels(name);
+    }
+
+    public String[] getAllInChannels() {    //this routine can be called only from a TMLComponentDesignPanel
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {return null;}
+        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+        String name =  getCurrentTDiagramPanel().getName();
+        return tmlcomp.getAllInChannels(name);
+    }
+
+    public Vector<String> getAllCryptoConfig(){
+        TURTLEPanel tp;
+        Vector<String> list = new Vector<String>();
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel) {
+                for (String s: ((TMLComponentDesignPanel)tp).getAllCryptoConfig()){
+                    list.add(mainTabbedPane.getTitleAt(i)+"::"+s);
+                }
+            }
+        }
+        return list;
+    }
+    public String[] getCurrentCryptoConfig() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {return null;}
+        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+        List<String> strlist = tmlcomp.getAllCryptoConfig();
+        String[] strarray = new String[strlist.size()];
+        strlist.toArray(strarray);
+        return strarray;
+    }
+    public String[] getAllNonce(){
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {return null;}
+        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+        List<String> strlist = tmlcomp.getAllNonce();
+        String[] strarray = new String[strlist.size()];
+        strlist.toArray(strarray);
+        return strarray;
+    }
+
+    public ArrayList<String> getAllKeys(){
+        TURTLEPanel tp;
+        ArrayList<String> list = new ArrayList<String>();
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel) {
+                for (String s:((TMLComponentDesignPanel)tp).getAllKeys()){
+                    list.add(s);
+                }
+            }
+        }
+        return list;
+    }
+
+    public String[] getAllOutRequests() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {return null;}
+        if (!(tp instanceof TMLComponentDesignPanel)) {return null;}
+        TMLComponentDesignPanel tmlcomp = (TMLComponentDesignPanel)tp;
+        String name =  getCurrentTDiagramPanel().getName();
+        return tmlcomp.getAllOutRequests(name);
+    }
+
+    public LinkedList<String> getAllTimers() {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {
+            return null;
+        }
+
+        if (!(tp instanceof AvatarDesignPanel)) {
+            return null;
+        }
+        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+
+        String name =  getCurrentTDiagramPanel().getName();
+
+        return adp.getAllTimers(name);
+    }
+
+    public List<CheckingError> getCheckingErrors() {
+        return gtm.getCheckingErrors();
+    }
+
+    public List<CheckingError> getCheckingWarnings() {
+        return gtm.getCheckingWarnings();
+    }
+
+    public void modelBacktracingProVerif(ProVerifOutputAnalyzer pvoa) {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {
+            return;
+        }
+
+        if (tp instanceof AvatarDesignPanel) {
+            AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+            adp.modelBacktracingProVerif(pvoa);
+            getCurrentTDiagramPanel().repaint();
+        }
+        else if (tp instanceof TMLArchiPanel) {
+            /*  for (int i=0; i<tabs.size(); i++){
                 tp = (TURTLEPanel)(tabs.elementAt(i));
                 if (tp instanceof TMLComponentDesignPanel) {
                 ((TMLComponentDesignPanel)tp).modelBacktracingProVerif(pvoa);
                 }
                 }*/
-			gtm.getTMLMapping().getTMLModeling().clearBacktracing();
-			gtm.getTMLMapping().getTMLModeling().backtrace(pvoa, getTabName(tp));
-			gtm.getTML2Avatar().backtraceReachability(pvoa.getReachableEvents(), pvoa.getNonReachableEvents());
-			gtm.getTMLMapping().getTMLModeling().backtraceAuthenticity(pvoa.getSatisfiedAuthenticity(), pvoa.getSatisfiedWeakAuthenticity(), pvoa.getNonSatisfiedAuthenticity(), getTabName(tp));
-		}
-		else if (tp instanceof TMLComponentDesignPanel){
-			gtm.getTMLMapping().getTMLModeling().clearBacktracing();
-			gtm.getTMLMapping().getTMLModeling().backtrace(pvoa, "Default Mapping");
-			gtm.getTML2Avatar().backtraceReachability(pvoa.getReachableEvents(), pvoa.getNonReachableEvents());
-			gtm.getTMLMapping().getTMLModeling().backtraceAuthenticity(pvoa.getSatisfiedAuthenticity(), pvoa.getSatisfiedWeakAuthenticity(), pvoa.getNonSatisfiedAuthenticity(), "Default Mapping");
-		}
-		return;
-	}
-
-	public void modelBacktracingUPPAAL( Map<String, Integer> verifMap) {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp == null) {
-			return;
-		}
-
-		if (!(tp instanceof AvatarDesignPanel)) {
-			return;
-		}
-
-		AvatarDesignPanel adp = (AvatarDesignPanel)tp;
-		adp.modelBacktracingUppaal(verifMap);
-		getCurrentTDiagramPanel().repaint();
-	}
-
-	public void generateRTLOTOS() {
-		generateRTLOTOS(false);
-	}
-
-
-	public boolean generateRTLOTOS(boolean automatic) {
-		int ret = 0;
-		if (gtm.getTURTLEModelingState() > 0) {
-			if ((ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, RT_LOTOS)) == -1) {
-				return false;
-			}
-		}
-
-		gtm.reinitSIM();
-		gtm.reinitDTA();
-		gtm.reinitRG();
-		gtm.reinitRGAUT();
-		gtm.reinitRGAUTPROJDOT();
-		if (ret == 0) {
-			gtm.generateRTLOTOS(lotosfile);
-		}
-		if (!automatic) {
-			JOptionPane.showMessageDialog(frame,
-					"RT-LOTOS specification generated",
-					"RT-LOTOS specification",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-		dtree.toBeUpdated();
-		return true;
-	}
-
-	public void generateLOTOS() {
-		generateLOTOS(false);
-	}
-
-
-	public boolean generateLOTOS(boolean automatic) {
-		int ret = 0;
-		if (gtm.getTURTLEModelingState() > 0) {
-			ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, LOTOS);
-			if (ret == -1) {
-				dtree.toBeUpdated();
-				TraceManager.addDev("Generate from state failed");
-				return false;
-			}
-			/*if (!automatic && (gtm.getTURTLEModelingState() == 1)) {
+            gtm.getTMLMapping().getTMLModeling().clearBacktracing();
+            gtm.getTMLMapping().getTMLModeling().backtrace(pvoa, getTabName(tp));
+            gtm.getTML2Avatar().backtraceReachability(pvoa.getReachableEvents(), pvoa.getNonReachableEvents());
+            gtm.getTMLMapping().getTMLModeling().backtraceAuthenticity(pvoa.getSatisfiedAuthenticity(), pvoa.getSatisfiedWeakAuthenticity(), pvoa.getNonSatisfiedAuthenticity(), getTabName(tp));
+        }
+        else if (tp instanceof TMLComponentDesignPanel){
+            gtm.getTMLMapping().getTMLModeling().clearBacktracing();
+            gtm.getTMLMapping().getTMLModeling().backtrace(pvoa, "Default Mapping");
+            gtm.getTML2Avatar().backtraceReachability(pvoa.getReachableEvents(), pvoa.getNonReachableEvents());
+            gtm.getTMLMapping().getTMLModeling().backtraceAuthenticity(pvoa.getSatisfiedAuthenticity(), pvoa.getSatisfiedWeakAuthenticity(), pvoa.getNonSatisfiedAuthenticity(), "Default Mapping");
+        }
+        return;
+    }
+
+    public void modelBacktracingUPPAAL( Map<String, Integer> verifMap) {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp == null) {
+            return;
+        }
+
+        if (!(tp instanceof AvatarDesignPanel)) {
+            return;
+        }
+
+        AvatarDesignPanel adp = (AvatarDesignPanel)tp;
+        adp.modelBacktracingUppaal(verifMap);
+        getCurrentTDiagramPanel().repaint();
+    }
+
+    public void generateRTLOTOS() {
+        generateRTLOTOS(false);
+    }
+
+
+    public boolean generateRTLOTOS(boolean automatic) {
+        int ret = 0;
+        if (gtm.getTURTLEModelingState() > 0) {
+            if ((ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, RT_LOTOS)) == -1) {
+                return false;
+            }
+        }
+
+        gtm.reinitSIM();
+        gtm.reinitDTA();
+        gtm.reinitRG();
+        gtm.reinitRGAUT();
+        gtm.reinitRGAUTPROJDOT();
+        if (ret == 0) {
+            gtm.generateRTLOTOS(lotosfile);
+        }
+        if (!automatic) {
+            JOptionPane.showMessageDialog(frame,
+                                          "RT-LOTOS specification generated",
+                                          "RT-LOTOS specification",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+        dtree.toBeUpdated();
+        return true;
+    }
+
+    public void generateLOTOS() {
+        generateLOTOS(false);
+    }
+
+
+    public boolean generateLOTOS(boolean automatic) {
+        int ret = 0;
+        if (gtm.getTURTLEModelingState() > 0) {
+            ret = generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), automatic, LOTOS);
+            if (ret == -1) {
+                dtree.toBeUpdated();
+                TraceManager.addDev("Generate from state failed");
+                return false;
+            }
+            /*if (!automatic && (gtm.getTURTLEModelingState() == 1)) {
               return true;
               }*/
-		}
-
-		//TraceManager.addDev("generate LOTOS");
-		if (ret == 0) {
-			gtm.generateFullLOTOS(lotosfile);
-			//TraceManager.addDev("LOTOS generated");
-			if (!automatic) {
-				JOptionPane.showMessageDialog(frame,
-						"LOTOS specification generated (" + getCheckingWarnings().size() + " warning(s))",
-						"LOTOS specification",
-						JOptionPane.INFORMATION_MESSAGE);
-			}
-		}
-		setMode(MainGUI.RTLOTOS_OK);
-		dtree.toBeUpdated();
-		return true;
-	}
-
-	public void generateFullLOTOS() {
-		gtm.generateFullLOTOS(lotosfile);
-		dtree.toBeUpdated();
-	}
-
-	// -1 : error
-	// 0: ok
-	// 1: ok, code already generated
-	public int generateTURTLEModelingFromState(int state, boolean automatic, int generator) {
-		if (state == 1) {
-			TraceManager.addDev("Generating from state 1");
-			if (generateTIFFromMapping(automatic, generator)) {
-				return 1;
-			}
-			return -1;
-		}
-		if (state == 2) {
-			TraceManager.addDev("Generating from state 2");
-			if (generateTIFFromTMLModeling(automatic, generator)) {
-				return 0;
-			}
-			return -1;
-		}
-		if (state == 3) {
-			TraceManager.addDev("Generating from state 3 (Avatar)");
-			if (generateTIFFromAvatarSpecification(automatic, generator)) {
-				return 0;
-			}
-			return -1;
-		}
-		return -1;
-	}
-
-	public boolean generateTIFFromAvatarSpecification(boolean automatic, int generator) {
-		boolean b = gtm.translateAvatarSpecificationToTIF();
-		if (b) {
-			setMode(MainGUI.MODEL_OK);
-			return true;
-		}
-		return false;
-	}
-
-	public boolean generateTIFFromMapping(boolean automatic, int generator) {
-		boolean b;
-
-		// Scheduling options
-		JDialogScheduling jds = new JDialogScheduling(frame, this, "Mapping options", generator);
-		if (!automatic) {
-			GraphicLib.centerOnParent(jds);
-			jds.setVisible(true); // Blocked until dialog has been closed
-		} else {
-			jds.closeDialog();
-			b = gtm.translateTMLMapping(jds.getSample(), jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask());
-			if (b) {
-				setMode(MainGUI.GEN_SYSTEMC_OK);
-				setMode(MainGUI.MODEL_OK);
-				return true;
-			}
-			return false;
-		}
-
-		if (!jds.isCancelled()) {
-			b = jds.hasError();
-			//gtm.translateTMLMapping(jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask());
-			if (!b) {
-				//setMode(MainGUI.MODEL_OK);
-				setMode(MainGUI.GEN_SYSTEMC_OK);
-				setMode(MainGUI.MODEL_OK);
-				return true;
-				/*if (!automatic) {
+        }
+
+        //TraceManager.addDev("generate LOTOS");
+        if (ret == 0) {
+            gtm.generateFullLOTOS(lotosfile);
+            //TraceManager.addDev("LOTOS generated");
+            if (!automatic) {
+                JOptionPane.showMessageDialog(frame,
+                                              "LOTOS specification generated (" + getCheckingWarnings().size() + " warning(s))",
+                                              "LOTOS specification",
+                                              JOptionPane.INFORMATION_MESSAGE);
+            }
+        }
+        setMode(MainGUI.RTLOTOS_OK);
+        dtree.toBeUpdated();
+        return true;
+    }
+
+    public void generateFullLOTOS() {
+        gtm.generateFullLOTOS(lotosfile);
+        dtree.toBeUpdated();
+    }
+
+    // -1 : error
+    // 0: ok
+    // 1: ok, code already generated
+    public int generateTURTLEModelingFromState(int state, boolean automatic, int generator) {
+        if (state == 1) {
+            TraceManager.addDev("Generating from state 1");
+            if (generateTIFFromMapping(automatic, generator)) {
+                return 1;
+            }
+            return -1;
+        }
+        if (state == 2) {
+            TraceManager.addDev("Generating from state 2");
+            if (generateTIFFromTMLModeling(automatic, generator)) {
+                return 0;
+            }
+            return -1;
+        }
+        if (state == 3) {
+            TraceManager.addDev("Generating from state 3 (Avatar)");
+            if (generateTIFFromAvatarSpecification(automatic, generator)) {
+                return 0;
+            }
+            return -1;
+        }
+        return -1;
+    }
+
+    public boolean generateTIFFromAvatarSpecification(boolean automatic, int generator) {
+        boolean b = gtm.translateAvatarSpecificationToTIF();
+        if (b) {
+            setMode(MainGUI.MODEL_OK);
+            return true;
+        }
+        return false;
+    }
+
+    public boolean generateTIFFromMapping(boolean automatic, int generator) {
+        boolean b;
+
+        // Scheduling options
+        JDialogScheduling jds = new JDialogScheduling(frame, this, "Mapping options", generator);
+        if (!automatic) {
+            GraphicLib.centerOnParent(jds);
+            jds.setVisible(true); // Blocked until dialog has been closed
+        } else {
+            jds.closeDialog();
+            b = gtm.translateTMLMapping(jds.getSample(), jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask());
+            if (b) {
+                setMode(MainGUI.GEN_SYSTEMC_OK);
+                setMode(MainGUI.MODEL_OK);
+                return true;
+            }
+            return false;
+        }
+
+        if (!jds.isCancelled()) {
+            b = jds.hasError();
+            //gtm.translateTMLMapping(jds.getChannel(), jds.getEvent(), jds.getRequest(), jds.getExec(), jds.getBusTransfer(), jds.getScheduling(), jds.getTaskState(), jds.getChannelState(), jds.getBranching(), jds.getTerminateCPU(), jds.getTerminateCPUs(), jds.getClocked(), jds.getTickIntervalValue(), jds.getEndClocked(), jds.getCountTick(), jds.getMaxCountTick(), jds.getMaxCountTickValue(), jds.getRandomTask());
+            if (!b) {
+                //setMode(MainGUI.MODEL_OK);
+                setMode(MainGUI.GEN_SYSTEMC_OK);
+                setMode(MainGUI.MODEL_OK);
+                return true;
+                /*if (!automatic) {
                   JOptionPane.showMessageDialog(frame,
                   "0 error, " + getCheckingWarnings().size() + " warning(s). Formal specification can be generated",
                   "Successful translation from the TML mapping to a formal specification",
                   JOptionPane.INFORMATION_MESSAGE);
                   }*/
-			} else {
-				/*if (!automatic) {
+            } else {
+                /*if (!automatic) {
                   JOptionPane.showMessageDialog(frame,
                   "Formal specification generation failed: the TML mapping contains several errors",
                   "Syntax analysis failed",
                   JOptionPane.INFORMATION_MESSAGE);
                   }*/
-				return false;
-			}
-		}
-
-		return false;
-	}
-
-	public boolean generateTIFFromTMLModeling(boolean automatic, int generator) {
-		return gtm.translateTMLModeling();
-	}
-
-	public void generateAUT() {
-		JDialogGenAUT jdgaut = new JDialogGenAUT(frame, this, "Generation of automata", ConfigurationTTool.BcgioPath, ConfigurationTTool.AldebaranHost, ConfigurationTTool.TGraphPath);
-		//  jdgaut.setSize(450, 600);
-		GraphicLib.centerOnParent(jdgaut, 450, 600);
-		jdgaut.setVisible(true);
-
-		//Update menu
-		Vector<String> v = jdgaut.getFiles();
-		JMenu menu = jmenubarturtle.getJMenuGraph();
-		menu.removeAll();
-		String s;
-		for(int i=0; i<v.size(); i++) {
-			s = (String)(v.elementAt(i));
-			jmenubarturtle.addMenuItem(menu, s, this);
-		}
-
-	}
-
-	public void generateAUTS() {
-		JDialogGenAUTS jdgauts = new JDialogGenAUTS(frame, this, "Generation of automata via LOTOS", gtm.getPathCaesar(),
-				GTURTLEModeling.getPathBcgio(),
-				REMOTE_RTL_LOTOS_FILE,
-				GTURTLEModeling.getCaesarHost(), ConfigurationTTool.TGraphPath);
-		//  jdgauts.setSize(450, 600);
-		GraphicLib.centerOnParent(jdgauts, 450, 600);
-		jdgauts.setVisible(true);
-
-		//Update menu
-		/*Vector v = jdgauts.getFiles();
+                return false;
+            }
+        }
+
+        return false;
+    }
+
+    public boolean generateTIFFromTMLModeling(boolean automatic, int generator) {
+        return gtm.translateTMLModeling();
+    }
+
+    public void generateAUT() {
+        JDialogGenAUT jdgaut = new JDialogGenAUT(frame, this, "Generation of automata", ConfigurationTTool.BcgioPath, ConfigurationTTool.AldebaranHost, ConfigurationTTool.TGraphPath);
+        //  jdgaut.setSize(450, 600);
+        GraphicLib.centerOnParent(jdgaut, 450, 600);
+        jdgaut.setVisible(true);
+
+        //Update menu
+        Vector<String> v = jdgaut.getFiles();
+        JMenu menu = jmenubarturtle.getJMenuGraph();
+        menu.removeAll();
+        String s;
+        for(int i=0; i<v.size(); i++) {
+            s = (String)(v.elementAt(i));
+            jmenubarturtle.addMenuItem(menu, s, this);
+        }
+
+    }
+
+    public void generateAUTS() {
+        JDialogGenAUTS jdgauts = new JDialogGenAUTS(frame, this, "Generation of automata via LOTOS", gtm.getPathCaesar(),
+                                                    GTURTLEModeling.getPathBcgio(),
+                                                    REMOTE_RTL_LOTOS_FILE,
+                                                    GTURTLEModeling.getCaesarHost(), ConfigurationTTool.TGraphPath);
+        //  jdgauts.setSize(450, 600);
+        GraphicLib.centerOnParent(jdgauts, 450, 600);
+        jdgauts.setVisible(true);
+
+        //Update menu
+        /*Vector v = jdgauts.getFiles();
           JMenu menu = jmenubarturtle.getJMenuGraph();
           menu.removeAll();
           String s;
@@ -3906,181 +3924,181 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
           jmenubarturtle.addMenuItem(menu, s, this);
           }*/
 
-	}
-
-	public void avatarSimulation() {
-		TraceManager.addDev("Avatar simulation");
-		jfais = new JFrameAvatarInteractiveSimulation(/*frame, */this, "Interactive simulation", gtm.getAvatarSpecification());
-		jfais.setIconImage(IconManager.img9);
-		// jfais.setSize(900, 600);
-		GraphicLib.centerOnParent(jfais, 900, 600);
-		jfais.setVisible(true);
-	}
-
-	public void avatarUPPAALVerification() {
-		TraceManager.addDev("Avatar uppaal fv");
-		boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory);
-		if (result) {
-			formalValidation(true);
-		} else {
-			JOptionPane.showMessageDialog(frame,
-					"" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated",
-					"Translation to UPPAAL failed",
-					JOptionPane.INFORMATION_MESSAGE);
-			return;
-		}
-	}
-
-	public void avatarProVerifVerification() {
-		TraceManager.addDev("Avatar proverif fv");
-		//JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
-		JDialogProverifVerification jgen = new JDialogProverifVerification(frame, this, "Security verification with ProVerif", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
-		// jgen.setSize(500, 450);
-		GraphicLib.centerOnParent(jgen, 500, 450);
-		jgen.setVisible(true);
-		dtree.toBeUpdated();
-	}
-
-	public void dse(){
-		TraceManager.addDev("Design space exploration");
-		JDialogDSE jdse= new JDialogDSE(frame, this, "Design Space Exploration", ConfigurationTTool.SystemCCodeDirectory, ConfigurationTTool.TMLCodeDirectory, gtm.getCPUTaskMap());
-		//   jdse.setSize(600,800);
-		GraphicLib.centerOnParent(jdse, 600,800);
-		jdse.setVisible(true);
-		dtree.toBeUpdated();
-	}
-
-	public void avatarStaticAnalysis() {
-		TraceManager.addDev("Avatar static analysis invariants");
-		JDialogInvariantAnalysis jgen = new JDialogInvariantAnalysis(frame, this, "Static analysis: invariants computation");
-		//   jgen.setSize(500, 450);
-		GraphicLib.centerOnParent(jgen, 500, 450);
-		jgen.setVisible(true);
-		dtree.toBeUpdated();
-	}
-
-	public void avatarExecutableCodeGeneration() {
-		TraceManager.addDev("Avatar code generation");
-		JDialogAvatarExecutableCodeGeneration jgen = new JDialogAvatarExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution", ConfigurationTTool.AVATARExecutableCodeHost, ConfigurationTTool.AVATARExecutableCodeDirectory,  ConfigurationTTool.AVATARExecutableCodeCompileCommand, ConfigurationTTool.AVATARExecutableCodeExecuteCommand, ConfigurationTTool.AVATARExecutableSoclibCodeCompileCommand, ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand,  ConfigurationTTool.AVATARExecutableSoclibTraceFile);
-		//   jgen.setSize(500, 450);
-		GraphicLib.centerOnParent(jgen, 500, 450);
-		jgen.setVisible(true);
-		dtree.toBeUpdated();
-	}
-
-	// DG
-	public void avatarddExecutableCodeGeneration(){
-		TraceManager.addDev("Avatar code generation");
-		JDialogAvatarddExecutableCodeGeneration jgen = new JDialogAvatarddExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution",
-				ConfigurationTTool.AVATARExecutableCodeHost,
-				ConfigurationTTool.AVATARMPSoCCodeDirectory,
-				ConfigurationTTool.AVATARMPSoCCompileCommand,
-				ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand);
-		// jgen.setSize(500, 450);
-		GraphicLib.centerOnParent(jgen, 500, 450 );
-		jgen.setVisible(true);
-		dtree.toBeUpdated();
-	}
-
-	// ---------------------------------------------------------------------
-
-	public void generateUPPAAL() {
-		generateUPPAAL(true);
-	}
-
-	public void generateUPPAAL(boolean showWindow) {
-		TraceManager.addDev("Generate UPPAAL! showwindow=" + showWindow);
-		//gtm.mergeChoices(true);
-		if (gtm.getTURTLEModelingState() > 0) {
-			//TraceManager.addDev("4173");
-			if (gtm.getTURTLEModelingState() == 3) {
-				//AVATAR
-				boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory);
-				TraceManager.addDev("4177");
-				if (showWindow) {
-					TraceManager.addDev("4178");
-					if (result) {
-						JOptionPane.showMessageDialog(frame,
-								"0 error, " + getCheckingWarnings().size() + " warning(s). UPPAAL specification generated",
-								"Successful translation to UPPAAL",
-								JOptionPane.INFORMATION_MESSAGE);
-					}
-					else {
-						JOptionPane.showMessageDialog(frame,
-								"" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated",
-								"Translation to UPPAAL failed",
-								JOptionPane.INFORMATION_MESSAGE);
-
-
-					}
-				}
-				TraceManager.addDev("4196");
-				if (!result) {
-					return;
-				}
-			}
-			else {
-				/*if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, UPPAAL) == -1) {
+    }
+
+    public void avatarSimulation() {
+        TraceManager.addDev("Avatar simulation");
+        jfais = new JFrameAvatarInteractiveSimulation( /*frame,*/ this, "Interactive simulation", gtm.getAvatarSpecification());
+        jfais.setIconImage(IconManager.img9);
+        // jfais.setSize(900, 600);
+        GraphicLib.centerOnParent(jfais, 900, 600);
+        jfais.setVisible(true);
+    }
+
+    public void avatarUPPAALVerification() {
+        TraceManager.addDev("Avatar uppaal fv");
+        boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory);
+        if (result) {
+            formalValidation(true);
+        } else {
+            JOptionPane.showMessageDialog(frame,
+                                          "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated",
+                                          "Translation to UPPAAL failed",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return;
+        }
+    }
+
+    public void avatarProVerifVerification() {
+        TraceManager.addDev("Avatar proverif fv");
+        //JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
+        JDialogProverifVerification jgen = new JDialogProverifVerification(frame, this, "Security verification with ProVerif", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
+        // jgen.setSize(500, 450);
+        GraphicLib.centerOnParent(jgen, 500, 450);
+        jgen.setVisible(true);
+        dtree.toBeUpdated();
+    }
+
+    public void dse(){
+        TraceManager.addDev("Design space exploration");
+        JDialogDSE jdse= new JDialogDSE(frame, this, "Design Space Exploration", ConfigurationTTool.SystemCCodeDirectory, ConfigurationTTool.TMLCodeDirectory, gtm.getCPUTaskMap());
+        //   jdse.setSize(600,800);
+        GraphicLib.centerOnParent(jdse, 600,800);
+        jdse.setVisible(true);
+        dtree.toBeUpdated();
+    }
+
+    public void avatarStaticAnalysis() {
+        TraceManager.addDev("Avatar static analysis invariants");
+        JDialogInvariantAnalysis jgen = new JDialogInvariantAnalysis(frame, this, "Static analysis: invariants computation");
+        //   jgen.setSize(500, 450);
+        GraphicLib.centerOnParent(jgen, 500, 450);
+        jgen.setVisible(true);
+        dtree.toBeUpdated();
+    }
+
+    public void avatarExecutableCodeGeneration() {
+        TraceManager.addDev("Avatar code generation");
+        JDialogAvatarExecutableCodeGeneration jgen = new JDialogAvatarExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution", ConfigurationTTool.AVATARExecutableCodeHost, ConfigurationTTool.AVATARExecutableCodeDirectory,  ConfigurationTTool.AVATARExecutableCodeCompileCommand, ConfigurationTTool.AVATARExecutableCodeExecuteCommand, ConfigurationTTool.AVATARExecutableSoclibCodeCompileCommand, ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand,  ConfigurationTTool.AVATARExecutableSoclibTraceFile);
+        //   jgen.setSize(500, 450);
+        GraphicLib.centerOnParent(jgen, 500, 450);
+        jgen.setVisible(true);
+        dtree.toBeUpdated();
+    }
+
+    // DG
+    public void avatarddExecutableCodeGeneration(){
+        TraceManager.addDev("Avatar code generation");
+        JDialogAvatarddExecutableCodeGeneration jgen = new JDialogAvatarddExecutableCodeGeneration(frame, this, "Executable Code generation, compilation and execution",
+                                                                                                   ConfigurationTTool.AVATARExecutableCodeHost,
+                                                                                                   ConfigurationTTool.AVATARMPSoCCodeDirectory,
+                                                                                                   ConfigurationTTool.AVATARMPSoCCompileCommand,
+                                                                                                   ConfigurationTTool.AVATARExecutableSoclibCodeExecuteCommand);
+        // jgen.setSize(500, 450);
+        GraphicLib.centerOnParent(jgen, 500, 450 );
+        jgen.setVisible(true);
+        dtree.toBeUpdated();
+    }
+
+    // ---------------------------------------------------------------------
+
+    public void generateUPPAAL() {
+        generateUPPAAL(true);
+    }
+
+    public void generateUPPAAL(boolean showWindow) {
+        TraceManager.addDev("Generate UPPAAL! showwindow=" + showWindow);
+        //gtm.mergeChoices(true);
+        if (gtm.getTURTLEModelingState() > 0) {
+            //TraceManager.addDev("4173");
+            if (gtm.getTURTLEModelingState() == 3) {
+                //AVATAR
+                boolean result = gtm.generateUPPAALFromAVATAR(ConfigurationTTool.UPPAALCodeDirectory);
+                TraceManager.addDev("4177");
+                if (showWindow) {
+                    TraceManager.addDev("4178");
+                    if (result) {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "0 error, " + getCheckingWarnings().size() + " warning(s). UPPAAL specification generated",
+                                                      "Successful translation to UPPAAL",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+                    }
+                    else {
+                        JOptionPane.showMessageDialog(frame,
+                                                      "" + getCheckingErrors().size() + " errors, " +getCheckingWarnings().size() + " warning(s). UPPAAL specification could NOT be generated",
+                                                      "Translation to UPPAAL failed",
+                                                      JOptionPane.INFORMATION_MESSAGE);
+
+
+                    }
+                }
+                TraceManager.addDev("4196");
+                if (!result) {
+                    return;
+                }
+            }
+            else {
+                /*if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, UPPAAL) == -1) {
                   TraceManager.addDev("4202 - UPPAAL generation failed");
                   return;
                   }*/
-				TraceManager.addDev( "About to open the window at line 4198" );
-				if (showWindow) {
-					TURTLEPanel tp = getCurrentTURTLEPanel();
-					boolean result = false;
-
-					if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel)) {
-						result = gtm.generateUPPAALFromTML(ConfigurationTTool.UPPAALCodeDirectory, false, 1024, true);
-					}
-					if (result != false) {
-						formalValidation();
-					}
-					/*JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.DIPLODOCUS_MODE);
+                TraceManager.addDev( "About to open the window at line 4198" );
+                if (showWindow) {
+                    TURTLEPanel tp = getCurrentTURTLEPanel();
+                    boolean result = false;
+
+                    if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel)) {
+                        result = gtm.generateUPPAALFromTML(ConfigurationTTool.UPPAALCodeDirectory, false, 1024, true);
+                    }
+                    if (result != false) {
+                        formalValidation();
+                    }
+                    /*JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.DIPLODOCUS_MODE);
                     //  jgen.setSize(450, 500);
                     GraphicLib.centerOnParent(jgen, 450, 500);
                     jgen.setVisible(true);*/
 
-				}
-				return;
-			}
-		}
-
-		TraceManager.addDev( "gtm.getTURTLEModelingState() <= 0)" );
-		//TraceManager.addDev("After UPPAAL");
-		if (showWindow) {
-			JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.TURTLE_MODE);
-			//jgen.setSize(450, 600);
-			GraphicLib.centerOnParent(jgen, 450, 600);
-			jgen.setVisible(true);
-			//dtree.toBeUpdated();
-		}
-	}
-
-	public void avatarModelChecker() {
-		TraceManager.addDev("Execute avatar model checker");
-		gtm.generateAvatarFromTML(true,false);
-		if (gtm.getAvatarSpecification()==null){
-			TraceManager.addDev("Null avatar spec");
-			return;
-		}
-		JDialogAvatarModelChecker jmc = new JDialogAvatarModelChecker(frame, this, "Avatar: Model Checking", gtm.getAvatarSpecification(), ConfigurationTTool.TGraphPath, experimentalOn);
-		// jmc.setSize(550, 600);
-		GraphicLib.centerOnParent(jmc, 550, 600);
-		jmc.setVisible(true);
-	}
-
-
-	public void generateProVerif() {
-		TraceManager.addDev("Generate ProVerif!");
-
-		JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
-		//jgen.setSize(500, 450);
-		GraphicLib.centerOnParent(jgen, 500, 450);
-		jgen.setVisible(true);
-		dtree.toBeUpdated();
-
-		// Generate from AVATAR
-		/*if (gtm.getTURTLEModelingState() == 3) {
+                }
+                return;
+            }
+        }
+
+        TraceManager.addDev( "gtm.getTURTLEModelingState() <= 0)" );
+        //TraceManager.addDev("After UPPAAL");
+        if (showWindow) {
+            JDialogUPPAALGeneration jgen = new JDialogUPPAALGeneration(frame, this, "UPPAAL code generation", ConfigurationTTool.UPPAALCodeDirectory, JDialogUPPAALGeneration.TURTLE_MODE);
+            //jgen.setSize(450, 600);
+            GraphicLib.centerOnParent(jgen, 450, 600);
+            jgen.setVisible(true);
+            //dtree.toBeUpdated();
+        }
+    }
+
+    public void avatarModelChecker() {
+        TraceManager.addDev("Execute avatar model checker");
+        gtm.generateAvatarFromTML(true,false);
+        if (gtm.getAvatarSpecification()==null){
+            TraceManager.addDev("Null avatar spec");
+            return;
+        }
+        JDialogAvatarModelChecker jmc = new JDialogAvatarModelChecker(frame, this, "Avatar: Model Checking", gtm.getAvatarSpecification(), ConfigurationTTool.TGraphPath, experimentalOn);
+        // jmc.setSize(550, 600);
+        GraphicLib.centerOnParent(jmc, 550, 600);
+        jmc.setVisible(true);
+    }
+
+
+    public void generateProVerif() {
+        TraceManager.addDev("Generate ProVerif!");
+
+        JDialogProVerifGeneration jgen = new JDialogProVerifGeneration(frame, this, "ProVerif: code generation and verification", ConfigurationTTool.ProVerifVerifierHost, ConfigurationTTool.ProVerifCodeDirectory, ConfigurationTTool.ProVerifVerifierPath);
+        //jgen.setSize(500, 450);
+        GraphicLib.centerOnParent(jgen, 500, 450);
+        jgen.setVisible(true);
+        dtree.toBeUpdated();
+
+        // Generate from AVATAR
+        /*if (gtm.getTURTLEModelingState() == 3) {
           boolean result = gtm.generateProVerifFromAVATAR(ConfigurationTTool.ProVerifCodeDirectory);
           if (result) {
           JOptionPane.showMessageDialog(frame,
@@ -4094,34 +4112,34 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
           JOptionPane.INFORMATION_MESSAGE);
           }
           }*/
-	}
-
+    }
 
-	public List<String> generateAllAUT(String path) {
-		return gtm.generateAUT(path);
-	}
 
-	public List<String> generateAllLOTOS(String path) {
-		return gtm.generateLOTOSAUT(path);
-	}
+    public List<String> generateAllAUT(String path) {
+        return gtm.generateAUT(path);
+    }
 
-	public void generateJava() {
+    public List<String> generateAllLOTOS(String path) {
+        return gtm.generateLOTOSAUT(path);
+    }
 
-		if (gtm.getTURTLEModelingState() == 1) {
-			if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, JAVA) == -1) {
-				return;
-			}
-		}
+    public void generateJava() {
 
-		JDialogJavaGeneration jgen = new JDialogJavaGeneration(frame, this, "Java code generation and compilation", ConfigurationTTool.JavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolClassPath, ConfigurationTTool.JavaExecutePath, ConfigurationTTool.JavaHeader);
-		//  jgen.setSize(450, 600);
-		GraphicLib.centerOnParent(jgen, 450, 600);
-		jgen.setVisible(true);
-		dtree.toBeUpdated();
-	}
-
-	public void simuJava() {
-		/*TraceManager.addDev("Generate Java");
+        if (gtm.getTURTLEModelingState() == 1) {
+            if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, JAVA) == -1) {
+                return;
+            }
+        }
+
+        JDialogJavaGeneration jgen = new JDialogJavaGeneration(frame, this, "Java code generation and compilation", ConfigurationTTool.JavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolClassPath, ConfigurationTTool.JavaExecutePath, ConfigurationTTool.JavaHeader);
+        //  jgen.setSize(450, 600);
+        GraphicLib.centerOnParent(jgen, 450, 600);
+        jgen.setVisible(true);
+        dtree.toBeUpdated();
+    }
+
+    public void simuJava() {
+        /*TraceManager.addDev("Generate Java");
           gtm.generateJava("");
           JOptionPane.showMessageDialog(frame,
           "Java code generated",
@@ -4129,1082 +4147,1082 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
           JOptionPane.INFORMATION_MESSAGE);
           dtree.toBeUpdated();*/
 
-		JDialogJavaSimulation jgen = new JDialogJavaSimulation(frame, this, "Java simulation", ConfigurationTTool.SimuJavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolSimuClassPath, ConfigurationTTool.JavaExecutePath);
-		// jgen.setSize(450, 600);
-		GraphicLib.centerOnParent(jgen, 450, 600);
-		jgen.setVisible(true);
-		dtree.toBeUpdated();
-	}
-
-	public void generateSystemC() {
-		generateSystemC(0);
-	}
-
-	// Modes are defined in JDialogSystemCGeneration "automatic modes"
-	public void generateSystemC(int _mode) {
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		if (tp instanceof AvatarDesignPanel) {
-			avatarSimulation();
-		} else if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLArchiPanel))  {
-			JDialogSystemCGeneration jgen = new JDialogSystemCGeneration(frame, this, "Simulation Code Generation and Compilation",
-					ConfigurationTTool.SystemCHost, ConfigurationTTool.SystemCCodeDirectory, ConfigurationTTool.SystemCCodeCompileCommand,
-					ConfigurationTTool.SystemCCodeExecuteCommand, ConfigurationTTool.SystemCCodeInteractiveExecuteCommand, ConfigurationTTool.GGraphPath, _mode);
-			//jgen.setSize(500, 750);
-			GraphicLib.centerOnParent( jgen, 700, 750 );
-			jgen.setVisible(true);
-			dtree.toBeUpdated();
-
-			/*if (jgen.isInteractiveSimulationSelected() && (mode == 0)) {
+        JDialogJavaSimulation jgen = new JDialogJavaSimulation(frame, this, "Java simulation", ConfigurationTTool.SimuJavaCodeDirectory, ConfigurationTTool.JavaCompilerPath, ConfigurationTTool.TToolSimuClassPath, ConfigurationTTool.JavaExecutePath);
+        // jgen.setSize(450, 600);
+        GraphicLib.centerOnParent(jgen, 450, 600);
+        jgen.setVisible(true);
+        dtree.toBeUpdated();
+    }
+
+    public void generateSystemC() {
+        generateSystemC(0);
+    }
+
+    // Modes are defined in JDialogSystemCGeneration "automatic modes"
+    public void generateSystemC(int _mode) {
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        if (tp instanceof AvatarDesignPanel) {
+            avatarSimulation();
+        } else if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel) || (tp instanceof TMLArchiPanel))  {
+            JDialogSystemCGeneration jgen = new JDialogSystemCGeneration(frame, this, "Simulation Code Generation and Compilation",
+                                                                         ConfigurationTTool.SystemCHost, ConfigurationTTool.SystemCCodeDirectory, ConfigurationTTool.SystemCCodeCompileCommand,
+                                                                         ConfigurationTTool.SystemCCodeExecuteCommand, ConfigurationTTool.SystemCCodeInteractiveExecuteCommand, ConfigurationTTool.GGraphPath, _mode);
+            //jgen.setSize(500, 750);
+            GraphicLib.centerOnParent( jgen, 700, 750 );
+            jgen.setVisible(true);
+            dtree.toBeUpdated();
+
+            /*if (jgen.isInteractiveSimulationSelected() && (mode == 0)) {
               interactiveSimulationSystemC(jgen.getPathInteractiveExecute());
               }*/
-		}
-	}
-
-	public void interactiveSimulationSystemC() {
-		interactiveSimulationSystemC(ConfigurationTTool.SystemCCodeInteractiveExecuteCommand + " -gpath " + ConfigurationTTool.GGraphPath);
-	}
-
-	public void interactiveSimulationSystemC(String executePath) {
-		TraceManager.addDev("MainGUI / Execute path=" + executePath);
-		ArrayList<Point> points = getListOfBreakPoints();
-		if (gtm == null) {
-			jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points);
-		} else {
-			//TraceManager.addDev("toto1");
-			if (gtm.getTMLMapping() != null) {
-				jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getTMLMapping(), points);
-			} else {
-				//TraceManager.addDev("toto2");
-				if (gtm.getArtificialTMLMapping() != null) {
-					jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getArtificialTMLMapping(), points);
-				} else {
-					//TraceManager.addDev("toto3");
-					jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points);
-				}
-			}
-		}
-		jfis.setIconImage(IconManager.img9);
-		//jfis.setSize(1024, 900);
-		GraphicLib.centerOnParent( jfis, 1024, 900 );
-		jfis.setVisible(true);
-
-	}
-
-	public void addBreakPoint(int commandId) {
-		if (jfis != null) {
-			jfis.addBreakPoint(commandId);
-		}
-	}
-
-	public void removeBreakPoint(int commandId) {
-		if (jfis != null) {
-			jfis.removeBreakPoint(commandId);
-		}
-	}
-
-	// Sent by simulation interface
-	public void removeBreakpoint(Point p) {
-		if (gtm != null) {
-			gtm.removeBreakpoint(p);
-			getCurrentTDiagramPanel().repaint();
-		}
-	}
-
-	// Sent by simulation interface
-	public void addBreakpoint(Point p) {
-		if (gtm != null) {
-			gtm.addBreakpoint(p);
-			getCurrentTDiagramPanel().repaint();
-		}
-	}
-
-	public ArrayList<Point> getListOfBreakPoints() {
-		ArrayList<Point> points = new ArrayList<Point>();
-		TURTLEPanel tp;
-
-		if (tabs != null) {
-			for(int i=0; i<tabs.size(); i++) {
-				tp = (TURTLEPanel)(tabs.elementAt(i));
-				if (tp instanceof TMLDesignPanel) {
-					((TMLDesignPanel)tp).getListOfBreakPoints(points);
-				}
-				if (tp instanceof TMLComponentDesignPanel) {
-					((TMLComponentDesignPanel)tp).getListOfBreakPoints(points);
-				}
-			}
-		}
-		return points;
-	}
-
-	// Returns null if failed
-	// Otherwise the path of the generated file
-	public String generateTMLTxt() {
-		String path = ConfigurationTTool.FILEPath;
-		if (file != null) {
-			path = file.getAbsolutePath();
-		}
-		//TraceManager.addDev("Generating TML code: "+file.getAbsolutePath());
-		if (gtm.generateTMLTxt(path)) {
-			return ConfigurationTTool.TMLCodeDirectory;
-		}
-
-		return null;
-		//TraceManager.addDev("Done");
-	}
-
-	public String generateCCode() {
-
-		//        String path = ConfigurationTTool.FILEPath;
-		//        if( file != null ) {
-		//            path = file.getAbsolutePath();
-		//        }
-		JDialogCCodeGeneration jgen = new JDialogCCodeGeneration( frame, this, "Application code generation and compilation",
-				ConfigurationTTool.SystemCHost, ConfigurationTTool.CCodeDirectory,
-				"make -C " + ConfigurationTTool.CCodeDirectory,
-				ConfigurationTTool.SystemCCodeExecuteCommand,
-				ConfigurationTTool.SystemCCodeInteractiveExecuteCommand,
-				ConfigurationTTool.GGraphPath, gtm );
-		//   jgen.setSize(500, 750);
-		GraphicLib.centerOnParent(jgen, 500, 750);
-		jgen.setVisible(true);
-		//dtree.toBeUpdated();
-		//gtm.generateCCode( path );
-		return null;
-	}
-
-	public void generateDesign() {
-		if (gtm.getTURTLEModelingState() == 1) {
-			if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, DESIGN) == -1) {
-				return;
-			}
-		}
-
-		//TraceManager.addDev("Generate design");
-		gtm.generateDesign();
-	}
-
-	public void saveSIM() {
-		gtm.saveSIM(simfile);
-	}
-
-	public void saveDTA() {
-		gtm.saveDTA(dtafile);
-	}
-
-	public void saveDTADOT() {
-		gtm.saveDTADOT(dtadotfile);
-	}
-
-	public void saveRG() {
-		gtm.saveRG(rgfile);
-	}
-
-	public void saveTLSA() {
-		gtm.saveTLSA(tlsafile);
-	}
-
-	public String saveRGAut() {
-		gtm.saveRGAut(rgautfile);
-		return rgautfile.getAbsolutePath();
-	}
-
-	public String saveFC2(String data) {
-		gtm.saveInFile(fc2file, data);
-		return fc2file.getAbsolutePath();
-	}
-
-	public String saveBCG(String data) {
-		gtm.saveInFile(bcgfile, data);
-		return bcgfile.getAbsolutePath();
-	}
-
-	public void saveRGDOT() {
-		gtm.saveRGDOT(rgdotfile);
-	}
-
-	public void saveTLSADOT() {
-		gtm.saveTLSADOT(tlsadotfile);
-	}
-
-	public String saveRGAutDOT() {
-		gtm.saveRGAutDOT(rgautdotfile);
-		return rgautdotfile.getAbsolutePath();
-	}
-
-	public void saveRGAutProj() {
-		gtm.saveRGAutProj(rgautprojfile);
-	}
-
-	public void saveRGAutProjDOT() {
-		gtm.saveRGAutProjDOT(rgautprojdotfile);
-	}
-
-	public void checkCode() {
-		if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
-			JDialogTextProcess jdtp = new JDialogTextProcess(frame,
-					"Checking RT-LOTOS specification with RTL",
-					gtm.getPathRTL() + " __FILENAME -max-spec-t-1",
-					REMOTE_RTL_LOTOS_FILE,
-					gtm.getLastRTLOTOSSpecification(),
-					gtm.getHost());
-			//jdtp.setSize(450, 600);
-			GraphicLib.centerOnParent(jdtp, 450, 600);
-			jdtp.setVisible(true);
-			dtree.toBeUpdated();
-		} else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
-			JDialogLOTOSAnalysis jdla = new JDialogLOTOSAnalysis(frame,
-					this, "Checking LOTOS specification with CAESAR",
-					gtm.getPathCaesar(),
-					REMOTE_RTL_LOTOS_FILE,
-					gtm.getLastRTLOTOSSpecification(),
-					GTURTLEModeling.getCaesarHost());
-			//  jdla.setSize(450, 600);
-			GraphicLib.centerOnParent(jdla, 450, 600);
-			jdla.setVisible(true);
-			dtree.toBeUpdated();
-		}
-	}
-
-
-	public void simulation() {
-		if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
-			JDialogSimulation jds = new JDialogSimulation(frame,
-					this,
-					"Intensive simulation with RTL",
-					gtm.getPathRTL(),
-					REMOTE_RTL_LOTOS_FILE,
-					gtm.getLastRTLOTOSSpecification(),
-					gtm.getHost());
-			//jds.setSize(450, 600);
-			GraphicLib.centerOnParent(jds, 450, 600);
-			jds.setVisible(true);
-			dtree.toBeUpdated();
-		} else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
-
-		}
-	}
-
-	public void formalValidation() {
-		formalValidation(false);
-	}
-
-	public void formalValidation(boolean automatic) {
-		formalValidation(automatic, getCurrentTURTLEPanel());
-	}
-
-	public boolean formalValidation(boolean automatic, String diagramName) {
-		TURTLEPanel tp = getTURTLEPanel(diagramName);
-		if (tp != null) {
-			formalValidation(automatic, tp);
-			return true;
-		}
-		return false;
-	}
-
-
-	public void formalValidation(boolean automatic, TURTLEPanel _tp) {
-		if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
-			JDialogFormalValidation jdfv = new JDialogFormalValidation(frame,
-					this,
-					"Formal Validation with RTL",
-					gtm.getPathRTL(),
-					gtm.getPathDTA2DOT(),
-					gtm.getPathRGSTRAP(),
-					gtm.getPathRG2TLSA(),
-					REMOTE_RTL_LOTOS_FILE,
-					gtm.getLastRTLOTOSSpecification(),
-					gtm.getHost(),
-					GTURTLEModeling.getHostAldebaran(),
-					GTURTLEModeling.getPathBcgio());
-			jdfv.setAutomatic(automatic);
-			//   jdfv.setSize(450, 600);
-			GraphicLib.centerOnParent(jdfv, 450, 600);
-			jdfv.setVisible(true);
-			dtree.toBeUpdated();
-		} else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
-			JDialogLOTOSValidation jdla = new JDialogLOTOSValidation(frame,
-					this, "Generating RG with CAESAR",
-					gtm.getPathCaesar(),
-					gtm.getPathCaesarOpen(),
-					GTURTLEModeling.getPathBcgio(),
-					gtm.getPathBcgmerge(),
-					REMOTE_RTL_LOTOS_FILE,
-					gtm.getLastRTLOTOSSpecification(),
-					GTURTLEModeling.getCaesarHost());
-			jdla.setAutomatic(automatic);
-			// jdla.setSize(450, 600);
-			GraphicLib.centerOnParent(jdla, 450, 600);
-			jdla.setVisible(true);
-			dtree.toBeUpdated();
-		} else if (gtm.getLanguageID() == GTURTLEModeling.UPPAAL) {
-			JDialogUPPAALValidation jduv = new JDialogUPPAALValidation(frame,
-					this, "Formal verification with UPPAAL",
-					gtm.getPathUPPAALVerifier(),
-					gtm.getPathUPPAALFile(),
-					REMOTE_UPPAAL_FILE,
-					gtm.getLastUPPAALSpecification().getStringSpec(),
-					gtm.getUPPAALVerifierHost(),
-					_tp);
-			// jduv.setSize(450, 600);
-			GraphicLib.centerOnParent(jduv, 450, 600);
-			jduv.setVisible(true);
-			dtree.toBeUpdated();
-		} else if (gtm.getLanguageID() == GTURTLEModeling.MATRIX) {
-			JDialogTMatrixManagement jdfv = new JDialogTMatrixManagement(frame,
-					this,
-					"Observers's Based Formal Verification",
-					gtm.getRequirementModeling(),
-					gtm.getPathRTL(),
-					gtm.getPathDTA2DOT(),
-					gtm.getPathRGSTRAP(),
-					gtm.getPathRG2TLSA(),
-					REMOTE_RTL_LOTOS_FILE,
-					gtm.getHost(),
-					GTURTLEModeling.getHostAldebaran(),
-					GTURTLEModeling.getPathBcgio());
-			// jdfv.setSize(550, 600);
-			jdfv.setIconImage(IconManager.img8);
-			GraphicLib.centerOnParent(jdfv, 550, 600);
-			jdfv.setVisible(true);
-			dtree.toBeUpdated();
-		}
-	}
-
-	public void projection() {
-		TClassDiagramPanel tcdp = null;
-		if (getCurrentTURTLEPanel() instanceof DesignPanel) {
-			tcdp = ((DesignPanel)(getCurrentTURTLEPanel())).tcdp;
-		}
-		JDialogProjection jdfv = new JDialogProjection(frame,
-				this,
-				tcdp,
-				gtm.getTURTLEModeling(),
-				GTURTLEModeling.getHostAldebaran(),
-				GTURTLEModeling.getPathAldebaran(),
-				gtm.getPathBcgmin(),
-				GTURTLEModeling.getPathBcgio(),
-				gtm.getLastRGAUT(),
-				REMOTE_ALDEBARAN_AUT_FILE,
-				"Minimization using Aldebaran");
-		// jdfv.setSize(900, 700);
-		GraphicLib.centerOnParent(jdfv, 900, 700);
-		jdfv.setVisible(true);
-	}
-
-	public void modifyGraph() {
-		JDialogGraphModification jdgm;
-		if (gtm == null ){
-			jdgm = new JDialogGraphModification(frame,
-					GTURTLEModeling.getHostAldebaran(),
-					GTURTLEModeling.getPathBcgio(),
-					"graph",
-					"Minimization using Aldebaran",
-					null, null);
-		} else {
-			jdgm = new JDialogGraphModification(frame,
-					GTURTLEModeling.getHostAldebaran(),
-					GTURTLEModeling.getPathBcgio(),
-					"graph",
-					"Minimization using Aldebaran",
-					gtm.getLastRGAUT(),
-					gtm.getLastTextualRGAUTProj());
-		}
-		//jdgm.setSize(600, 500);
-		GraphicLib.centerOnParent(jdgm, 600, 500);
-		jdgm.setVisible(true);
-		modifiedaut = jdgm.getGraphAUT();
-		modifiedautdot = jdgm.getGraphDOT();
-		if (modifiedautdot != null) {
-			actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].setEnabled(true);
-			actions[TGUIAction.ACT_SAVE_AUTMODIFIED].setEnabled(true);
-		}
-		//gtm.modifyMinimizedGraph();
-	}
-
-	public void bisimulation() {
-		JDialogBisimulation jdb = new JDialogBisimulation(frame,
-				GTURTLEModeling.getHostAldebaran(),
-				GTURTLEModeling.getPathAldebaran(),
-				REMOTE_ALDEBARAN_BISIMU_FILE1,
-				REMOTE_ALDEBARAN_BISIMU_FILE2,
-				"Bisimulation using Aldebaran");
-		//  jdb.setSize(650, 800);
-		GraphicLib.centerOnParent(jdb, 650, 800);
-		jdb.setVisible(true);
-		//TraceManager.addDev("Bisimulation");
-	}
-
-	public void bisimulationCADP() {
-		JDialogBisimulationBisimulator jdb = new JDialogBisimulationBisimulator(frame,
-				GTURTLEModeling.getCaesarHost(),
-				GTURTLEModeling.getPathBisimulator(),
-				GTURTLEModeling.getPathBcgio(),
-				REMOTE_BISIMULATOR_FILE1,
-				REMOTE_BISIMULATOR_FILE2,
-				"Bisimulation using BISIMULATOR");
-		//   jdb.setSize(650, 800);
-		GraphicLib.centerOnParent(jdb, 650, 800);
-		jdb.setVisible(true);
-		//TraceManager.addDev("Bisimulation");
-	}
-
-	public void seekDeadlockAUT() {
-		String dataAUT = gtm.getLastTextualRGAUT();
-
-		JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks", dataAUT);
-		jfd.setIconImage(IconManager.img8);
-		//jfd.setSize(600, 600);
-		GraphicLib.centerOnParent(jfd, 600, 600);
-		jfd.setVisible(true);
-	}
-
-	public void seekDeadlockSavedAUT() {
-		String graph[] = loadAUTGraph();
-		if (graph != null) {
-			JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks on " + graph[0], graph[1]);
-			jfd.setIconImage(IconManager.img8);
-			// jfd.setSize(600, 600);
-			GraphicLib.centerOnParent(jfd, 600, 600);
-			jfd.setVisible(true);
-		}
-	}
-
-	public void showAUTFromString(String title, String data) {
-		/*JFrameStatistics jfs = new JFrameStatistics(title, data);
+        }
+    }
+
+    public void interactiveSimulationSystemC() {
+        interactiveSimulationSystemC(ConfigurationTTool.SystemCCodeInteractiveExecuteCommand + " -gpath " + ConfigurationTTool.GGraphPath);
+    }
+
+    public void interactiveSimulationSystemC(String executePath) {
+        TraceManager.addDev("MainGUI / Execute path=" + executePath);
+        ArrayList<Point> points = getListOfBreakPoints();
+        if (gtm == null) {
+            jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points);
+        } else {
+            //TraceManager.addDev("toto1");
+            if (gtm.getTMLMapping() != null) {
+                jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getTMLMapping(), points);
+            } else {
+                //TraceManager.addDev("toto2");
+                if (gtm.getArtificialTMLMapping() != null) {
+                    jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, gtm.getArtificialTMLMapping(), points);
+                } else {
+                    //TraceManager.addDev("toto3");
+                    jfis = new JFrameInteractiveSimulation(frame, this, "Interactive simulation", ConfigurationTTool.SystemCHost, executePath, null, points);
+                }
+            }
+        }
+        jfis.setIconImage(IconManager.img9);
+        //jfis.setSize(1024, 900);
+        GraphicLib.centerOnParent( jfis, 1024, 900 );
+        jfis.setVisible(true);
+
+    }
+
+    public void addBreakPoint(int commandId) {
+        if (jfis != null) {
+            jfis.addBreakPoint(commandId);
+        }
+    }
+
+    public void removeBreakPoint(int commandId) {
+        if (jfis != null) {
+            jfis.removeBreakPoint(commandId);
+        }
+    }
+
+    // Sent by simulation interface
+    public void removeBreakpoint(Point p) {
+        if (gtm != null) {
+            gtm.removeBreakpoint(p);
+            getCurrentTDiagramPanel().repaint();
+        }
+    }
+
+    // Sent by simulation interface
+    public void addBreakpoint(Point p) {
+        if (gtm != null) {
+            gtm.addBreakpoint(p);
+            getCurrentTDiagramPanel().repaint();
+        }
+    }
+
+    public ArrayList<Point> getListOfBreakPoints() {
+        ArrayList<Point> points = new ArrayList<Point>();
+        TURTLEPanel tp;
+
+        if (tabs != null) {
+            for(int i=0; i<tabs.size(); i++) {
+                tp = (TURTLEPanel)(tabs.elementAt(i));
+                if (tp instanceof TMLDesignPanel) {
+                    ((TMLDesignPanel)tp).getListOfBreakPoints(points);
+                }
+                if (tp instanceof TMLComponentDesignPanel) {
+                    ((TMLComponentDesignPanel)tp).getListOfBreakPoints(points);
+                }
+            }
+        }
+        return points;
+    }
+
+    // Returns null if failed
+    // Otherwise the path of the generated file
+    public String generateTMLTxt() {
+        String path = ConfigurationTTool.FILEPath;
+        if (file != null) {
+            path = file.getAbsolutePath();
+        }
+        //TraceManager.addDev("Generating TML code: "+file.getAbsolutePath());
+        if (gtm.generateTMLTxt(path)) {
+            return ConfigurationTTool.TMLCodeDirectory;
+        }
+
+        return null;
+        //TraceManager.addDev("Done");
+    }
+
+    public String generateCCode() {
+
+        //        String path = ConfigurationTTool.FILEPath;
+        //        if( file != null ) {
+        //            path = file.getAbsolutePath();
+        //        }
+        JDialogCCodeGeneration jgen = new JDialogCCodeGeneration( frame, this, "Application code generation and compilation",
+                                                                  ConfigurationTTool.SystemCHost, ConfigurationTTool.CCodeDirectory,
+                                                                  "make -C " + ConfigurationTTool.CCodeDirectory,
+                                                                  ConfigurationTTool.SystemCCodeExecuteCommand,
+                                                                  ConfigurationTTool.SystemCCodeInteractiveExecuteCommand,
+                                                                  ConfigurationTTool.GGraphPath, gtm );
+        //   jgen.setSize(500, 750);
+        GraphicLib.centerOnParent(jgen, 500, 750);
+        jgen.setVisible(true);
+        //dtree.toBeUpdated();
+        //gtm.generateCCode( path );
+        return null;
+    }
+
+    public void generateDesign() {
+        if (gtm.getTURTLEModelingState() == 1) {
+            if (generateTURTLEModelingFromState(gtm.getTURTLEModelingState(), false, DESIGN) == -1) {
+                return;
+            }
+        }
+
+        //TraceManager.addDev("Generate design");
+        gtm.generateDesign();
+    }
+
+    public void saveSIM() {
+        gtm.saveSIM(simfile);
+    }
+
+    public void saveDTA() {
+        gtm.saveDTA(dtafile);
+    }
+
+    public void saveDTADOT() {
+        gtm.saveDTADOT(dtadotfile);
+    }
+
+    public void saveRG() {
+        gtm.saveRG(rgfile);
+    }
+
+    public void saveTLSA() {
+        gtm.saveTLSA(tlsafile);
+    }
+
+    public String saveRGAut() {
+        gtm.saveRGAut(rgautfile);
+        return rgautfile.getAbsolutePath();
+    }
+
+    public String saveFC2(String data) {
+        gtm.saveInFile(fc2file, data);
+        return fc2file.getAbsolutePath();
+    }
+
+    public String saveBCG(String data) {
+        gtm.saveInFile(bcgfile, data);
+        return bcgfile.getAbsolutePath();
+    }
+
+    public void saveRGDOT() {
+        gtm.saveRGDOT(rgdotfile);
+    }
+
+    public void saveTLSADOT() {
+        gtm.saveTLSADOT(tlsadotfile);
+    }
+
+    public String saveRGAutDOT() {
+        gtm.saveRGAutDOT(rgautdotfile);
+        return rgautdotfile.getAbsolutePath();
+    }
+
+    public void saveRGAutProj() {
+        gtm.saveRGAutProj(rgautprojfile);
+    }
+
+    public void saveRGAutProjDOT() {
+        gtm.saveRGAutProjDOT(rgautprojdotfile);
+    }
+
+    public void checkCode() {
+        if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
+            JDialogTextProcess jdtp = new JDialogTextProcess(frame,
+                                                             "Checking RT-LOTOS specification with RTL",
+                                                             gtm.getPathRTL() + " __FILENAME -max-spec-t-1",
+                                                             REMOTE_RTL_LOTOS_FILE,
+                                                             gtm.getLastRTLOTOSSpecification(),
+                                                             gtm.getHost());
+            //jdtp.setSize(450, 600);
+            GraphicLib.centerOnParent(jdtp, 450, 600);
+            jdtp.setVisible(true);
+            dtree.toBeUpdated();
+        } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
+            JDialogLOTOSAnalysis jdla = new JDialogLOTOSAnalysis(frame,
+                                                                 this, "Checking LOTOS specification with CAESAR",
+                                                                 gtm.getPathCaesar(),
+                                                                 REMOTE_RTL_LOTOS_FILE,
+                                                                 gtm.getLastRTLOTOSSpecification(),
+                                                                 GTURTLEModeling.getCaesarHost());
+            //  jdla.setSize(450, 600);
+            GraphicLib.centerOnParent(jdla, 450, 600);
+            jdla.setVisible(true);
+            dtree.toBeUpdated();
+        }
+    }
+
+
+    public void simulation() {
+        if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
+            JDialogSimulation jds = new JDialogSimulation(frame,
+                                                          this,
+                                                          "Intensive simulation with RTL",
+                                                          gtm.getPathRTL(),
+                                                          REMOTE_RTL_LOTOS_FILE,
+                                                          gtm.getLastRTLOTOSSpecification(),
+                                                          gtm.getHost());
+            //jds.setSize(450, 600);
+            GraphicLib.centerOnParent(jds, 450, 600);
+            jds.setVisible(true);
+            dtree.toBeUpdated();
+        } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
+
+        }
+    }
+
+    public void formalValidation() {
+        formalValidation(false);
+    }
+
+    public void formalValidation(boolean automatic) {
+        formalValidation(automatic, getCurrentTURTLEPanel());
+    }
+
+    public boolean formalValidation(boolean automatic, String diagramName) {
+        TURTLEPanel tp = getTURTLEPanel(diagramName);
+        if (tp != null) {
+            formalValidation(automatic, tp);
+            return true;
+        }
+        return false;
+    }
+
+
+    public void formalValidation(boolean automatic, TURTLEPanel _tp) {
+        if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
+            JDialogFormalValidation jdfv = new JDialogFormalValidation(frame,
+                                                                       this,
+                                                                       "Formal Validation with RTL",
+                                                                       gtm.getPathRTL(),
+                                                                       gtm.getPathDTA2DOT(),
+                                                                       gtm.getPathRGSTRAP(),
+                                                                       gtm.getPathRG2TLSA(),
+                                                                       REMOTE_RTL_LOTOS_FILE,
+                                                                       gtm.getLastRTLOTOSSpecification(),
+                                                                       gtm.getHost(),
+                                                                       GTURTLEModeling.getHostAldebaran(),
+                                                                       GTURTLEModeling.getPathBcgio());
+            jdfv.setAutomatic(automatic);
+            //   jdfv.setSize(450, 600);
+            GraphicLib.centerOnParent(jdfv, 450, 600);
+            jdfv.setVisible(true);
+            dtree.toBeUpdated();
+        } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
+            JDialogLOTOSValidation jdla = new JDialogLOTOSValidation(frame,
+                                                                     this, "Generating RG with CAESAR",
+                                                                     gtm.getPathCaesar(),
+                                                                     gtm.getPathCaesarOpen(),
+                                                                     GTURTLEModeling.getPathBcgio(),
+                                                                     gtm.getPathBcgmerge(),
+                                                                     REMOTE_RTL_LOTOS_FILE,
+                                                                     gtm.getLastRTLOTOSSpecification(),
+                                                                     GTURTLEModeling.getCaesarHost());
+            jdla.setAutomatic(automatic);
+            // jdla.setSize(450, 600);
+            GraphicLib.centerOnParent(jdla, 450, 600);
+            jdla.setVisible(true);
+            dtree.toBeUpdated();
+        } else if (gtm.getLanguageID() == GTURTLEModeling.UPPAAL) {
+            JDialogUPPAALValidation jduv = new JDialogUPPAALValidation(frame,
+                                                                       this, "Formal verification with UPPAAL",
+                                                                       gtm.getPathUPPAALVerifier(),
+                                                                       gtm.getPathUPPAALFile(),
+                                                                       REMOTE_UPPAAL_FILE,
+                                                                       gtm.getLastUPPAALSpecification().getStringSpec(),
+                                                                       gtm.getUPPAALVerifierHost(),
+                                                                       _tp);
+            // jduv.setSize(450, 600);
+            GraphicLib.centerOnParent(jduv, 450, 600);
+            jduv.setVisible(true);
+            dtree.toBeUpdated();
+        } else if (gtm.getLanguageID() == GTURTLEModeling.MATRIX) {
+            JDialogTMatrixManagement jdfv = new JDialogTMatrixManagement(frame,
+                                                                         this,
+                                                                         "Observers's Based Formal Verification",
+                                                                         gtm.getRequirementModeling(),
+                                                                         gtm.getPathRTL(),
+                                                                         gtm.getPathDTA2DOT(),
+                                                                         gtm.getPathRGSTRAP(),
+                                                                         gtm.getPathRG2TLSA(),
+                                                                         REMOTE_RTL_LOTOS_FILE,
+                                                                         gtm.getHost(),
+                                                                         GTURTLEModeling.getHostAldebaran(),
+                                                                         GTURTLEModeling.getPathBcgio());
+            // jdfv.setSize(550, 600);
+            jdfv.setIconImage(IconManager.img8);
+            GraphicLib.centerOnParent(jdfv, 550, 600);
+            jdfv.setVisible(true);
+            dtree.toBeUpdated();
+        }
+    }
+
+    public void projection() {
+        TClassDiagramPanel tcdp = null;
+        if (getCurrentTURTLEPanel() instanceof DesignPanel) {
+            tcdp = ((DesignPanel)(getCurrentTURTLEPanel())).tcdp;
+        }
+        JDialogProjection jdfv = new JDialogProjection(frame,
+                                                       this,
+                                                       tcdp,
+                                                       gtm.getTURTLEModeling(),
+                                                       GTURTLEModeling.getHostAldebaran(),
+                                                       GTURTLEModeling.getPathAldebaran(),
+                                                       gtm.getPathBcgmin(),
+                                                       GTURTLEModeling.getPathBcgio(),
+                                                       gtm.getLastRGAUT(),
+                                                       REMOTE_ALDEBARAN_AUT_FILE,
+                                                       "Minimization using Aldebaran");
+        // jdfv.setSize(900, 700);
+        GraphicLib.centerOnParent(jdfv, 900, 700);
+        jdfv.setVisible(true);
+    }
+
+    public void modifyGraph() {
+        JDialogGraphModification jdgm;
+        if (gtm == null ){
+            jdgm = new JDialogGraphModification(frame,
+                                                GTURTLEModeling.getHostAldebaran(),
+                                                GTURTLEModeling.getPathBcgio(),
+                                                "graph",
+                                                "Minimization using Aldebaran",
+                                                null, null);
+        } else {
+            jdgm = new JDialogGraphModification(frame,
+                                                GTURTLEModeling.getHostAldebaran(),
+                                                GTURTLEModeling.getPathBcgio(),
+                                                "graph",
+                                                "Minimization using Aldebaran",
+                                                gtm.getLastRGAUT(),
+                                                gtm.getLastTextualRGAUTProj());
+        }
+        //jdgm.setSize(600, 500);
+        GraphicLib.centerOnParent(jdgm, 600, 500);
+        jdgm.setVisible(true);
+        modifiedaut = jdgm.getGraphAUT();
+        modifiedautdot = jdgm.getGraphDOT();
+        if (modifiedautdot != null) {
+            actions[TGUIAction.ACT_VIEW_MODIFIEDAUTDOT].setEnabled(true);
+            actions[TGUIAction.ACT_SAVE_AUTMODIFIED].setEnabled(true);
+        }
+        //gtm.modifyMinimizedGraph();
+    }
+
+    public void bisimulation() {
+        JDialogBisimulation jdb = new JDialogBisimulation(frame,
+                                                          GTURTLEModeling.getHostAldebaran(),
+                                                          GTURTLEModeling.getPathAldebaran(),
+                                                          REMOTE_ALDEBARAN_BISIMU_FILE1,
+                                                          REMOTE_ALDEBARAN_BISIMU_FILE2,
+                                                          "Bisimulation using Aldebaran");
+        //  jdb.setSize(650, 800);
+        GraphicLib.centerOnParent(jdb, 650, 800);
+        jdb.setVisible(true);
+        //TraceManager.addDev("Bisimulation");
+    }
+
+    public void bisimulationCADP() {
+        JDialogBisimulationBisimulator jdb = new JDialogBisimulationBisimulator(frame,
+                                                                                GTURTLEModeling.getCaesarHost(),
+                                                                                GTURTLEModeling.getPathBisimulator(),
+                                                                                GTURTLEModeling.getPathBcgio(),
+                                                                                REMOTE_BISIMULATOR_FILE1,
+                                                                                REMOTE_BISIMULATOR_FILE2,
+                                                                                "Bisimulation using BISIMULATOR");
+        //   jdb.setSize(650, 800);
+        GraphicLib.centerOnParent(jdb, 650, 800);
+        jdb.setVisible(true);
+        //TraceManager.addDev("Bisimulation");
+    }
+
+    public void seekDeadlockAUT() {
+        String dataAUT = gtm.getLastTextualRGAUT();
+
+        JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks", dataAUT);
+        jfd.setIconImage(IconManager.img8);
+        //jfd.setSize(600, 600);
+        GraphicLib.centerOnParent(jfd, 600, 600);
+        jfd.setVisible(true);
+    }
+
+    public void seekDeadlockSavedAUT() {
+        String graph[] = loadAUTGraph();
+        if (graph != null) {
+            JFrameDeadlock jfd = new JFrameDeadlock("Potential deadlocks on " + graph[0], graph[1]);
+            jfd.setIconImage(IconManager.img8);
+            // jfd.setSize(600, 600);
+            GraphicLib.centerOnParent(jfd, 600, 600);
+            jfd.setVisible(true);
+        }
+    }
+
+    public void showAUTFromString(String title, String data) {
+        /*JFrameStatistics jfs = new JFrameStatistics(title, data);
           jfs.setIconImage(IconManager.img8);
           jfs.setSize(600, 600);
           GraphicLib.centerOnParent(jfs);
           jfs.setVisible(true);*/
-		ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, data, "Analyzing graph... Please wait", null, null, true);
-		t.go();
-	}
+        ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, data, "Analyzing graph... Please wait", null, null, true);
+        t.go();
+    }
 
-	public void showAUTFromGraph(String title, AUTGraph graph) {
-		/*JFrameStatistics jfs = new JFrameStatistics(title, data);
+    public void showAUTFromGraph(String title, AUTGraph graph) {
+        /*JFrameStatistics jfs = new JFrameStatistics(title, data);
           jfs.setIconImage(IconManager.img8);
           jfs.setSize(600, 600);
           GraphicLib.centerOnParent(jfs);
           jfs.setVisible(true);*/
-		ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, null, "Analyzing graph... Please wait", graph, null, true);
-		t.go();
-	}
-
-	public void  showAUT(String title, String data, AUTGraph graph) {
-		ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, data, "Analyzing graph... Please wait", graph, null, true);
-		t.go();
-	}
-
-	public void  showAUTFromRG(String title, RG rg) {
-		ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, rg.data, "Analyzing graph... Please wait", rg.graph, rg, true);
-		t.go();
-	}
-
-	public void  displayAUTFromRG(String title, RG rg) {
-		ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, rg.data, "Analyzing graph... Please wait", rg.graph, rg, false);
-		t.go();
-	}
-
-	public void showPMAUT(String title, String data) {
-		TraceManager.addDev("Power management analysis");
-		JFramePowerManagementAnalysis jfpma = new JFramePowerManagementAnalysis(title, data);
-		jfpma.setIconImage(IconManager.img8);
-		//  jfpma.setSize(600, 600);
-		GraphicLib.centerOnParent(jfpma, 600, 600);
-		jfpma.setVisible(true);
-	}
-
-	public void NC() {
-		TraceManager.addDev("NC");
-		JFrameNC jfnc = new JFrameNC("Network calculus", gtm.getNCS());
-		jfnc.setIconImage(IconManager.img8);
-		//   jfnc.setSize(600, 600);
-		GraphicLib.centerOnParent(jfnc, 600, 600);
-		jfnc.setVisible(true);
-		TraceManager.addDev("Done");
-
-		/*JFrameStatistics jfs = new JFrameStatistics(title, data);
+        ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, null, "Analyzing graph... Please wait", graph, null, true);
+        t.go();
+    }
+
+    public void  showAUT(String title, String data, AUTGraph graph) {
+        ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, data, "Analyzing graph... Please wait", graph, null, true);
+        t.go();
+    }
+
+    public void  showAUTFromRG(String title, RG rg) {
+        ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, rg.data, "Analyzing graph... Please wait", rg.graph, rg, true);
+        t.go();
+    }
+
+    public void  displayAUTFromRG(String title, RG rg) {
+        ThreadGUIElement t = new ThreadGUIElement(frame, 0, title, rg.data, "Analyzing graph... Please wait", rg.graph, rg, false);
+        t.go();
+    }
+
+    public void showPMAUT(String title, String data) {
+        TraceManager.addDev("Power management analysis");
+        JFramePowerManagementAnalysis jfpma = new JFramePowerManagementAnalysis(title, data);
+        jfpma.setIconImage(IconManager.img8);
+        //  jfpma.setSize(600, 600);
+        GraphicLib.centerOnParent(jfpma, 600, 600);
+        jfpma.setVisible(true);
+    }
+
+    public void NC() {
+        TraceManager.addDev("NC");
+        JFrameNC jfnc = new JFrameNC("Network calculus", gtm.getNCS());
+        jfnc.setIconImage(IconManager.img8);
+        //   jfnc.setSize(600, 600);
+        GraphicLib.centerOnParent(jfnc, 600, 600);
+        jfnc.setVisible(true);
+        TraceManager.addDev("Done");
+
+        /*JFrameStatistics jfs = new JFrameStatistics(title, data);
           jfs.setIconImage(IconManager.img8);
           jfs.setSize(600, 600);
           GraphicLib.centerOnParent(jfs);
           jfs.setVisible(true);*/
-	}
-
-	public void statAUT() {
-		showAUTFromString("Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
-	}
-
-	public RG setLastRGDiplodocus(String graphName) {
-		TraceManager.addDev("setting last RG diplodocus");
-		//lastDiploRG = graphName;
-		// Loadng the graph
-		// Adding RG to the tree on the left
-		try {
-			String fileName = ConfigurationTTool.TGraphPath + "/" + graphName + ".aut";
-			File f = new File(fileName);
-			String spec = loadFile(f);
-			RG rg = new RG(graphName);
-			rg.data = spec;
-			//rg.nbOfStates = amc.getNbOfStates();
-			//rg.nbOfTransitions = amc.getNbOfLinks();
-			addRG(rg);
-			lastDiploRG = rg;
-			return rg;
-		} catch (Exception e) {
-			TraceManager.addDev("RG creation in the left tree failed");
-			return null;
-		}
-	}
-
-	public void statAUTDiplodocus() {
-		if (lastDiploRG == null) {
-			JOptionPane.showMessageDialog(frame,
-					"The fill could not be loaded:",
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return;
-		}
-		showAUTFromRG(lastDiploRG.name, lastDiploRG);
-		//String spec = loadFile(new File(ConfigurationTTool.TGraphPath + "/" + lastDiploRG + ".aut"));
-
-		//showAUTFromString("Analysis on the last DIPLODOCUS RG", spec);
-	}
-
-	public void statAUTProj() {
-		showAUTFromString("Analysis on the last minimized RG (A>UT format)", gtm.getLastTextualRGAUTProj());
-	}
-
-	public void statSavedAUT() {
-		//TraceManager.addDev("toto");
-		String graph[] = loadAUTGraph();
-		if (graph != null) {
-			showAUTFromString("Analysis on " + graph[0], graph[1]);
-		}
-	}
-
-	public void pmAUT() {
-		showPMAUT("Power Management Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
-	}
-
-	public void pmAUTProj() {
-		showPMAUT("Power Management Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj());
-	}
-
-	public void pmSavedAUT() {
-		//TraceManager.addDev("toto");
-		String graph[] = loadAUTGraph();
-		if (graph != null) {
-			showPMAUT("Power Management Analysis on " + graph[0], graph[1]);
-		}
-	}
-
-	public void showFormalSpecification() {
-		if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
-			showFormalSpecification("RT-LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification());
-		} else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
-			showFormalSpecification("LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification());
-		} else if (gtm.getLanguageID() == GTURTLEModeling.PROVERIF) {
-			showFormalSpecification("Last ProVerif Specification", gtm.getLastProVerifSpecification());
-		}
-	}
-
-	public void showFormalSpecification(String title, String data) {
-		JFrameText jft = new JFrameText(title, data);
-		jft.setIconImage(IconManager.img8);
-		//    jft.setSize(600, 600);
-		GraphicLib.centerOnParent(jft, 600, 600);
-		jft.setVisible(true);
-	}
-
-	public void showJavaCode() {
-		if (javaframe == null) {
-			javaframe = new JFrameCode("JavaCode", "", "");
-			javaframe.setIconImage(IconManager.img8);
-			// javaframe.setSize(350, 350);
-			GraphicLib.centerOnParent(javaframe, 350, 350);
-			javaframe.setVisible(true);
-		} else {
-			javaframe.setVisible(true);
-		}
-	}
-
-	public void showBirdEyesView() {
-		if (birdframe == null) {
-			birdframe = new JFrameBird(this);
-			birdframe.setIconImage(IconManager.img8);
-			//   birdframe.setSize(150, 100);
-			GraphicLib.centerOnParent(birdframe, 150, 100);
-			birdframe.setVisible(true);
-		} else {
-			birdframe.setVisible(true);
-		}
-	}
-
-	public void showEmbeddedBirdEyesView() {
-		//TraceManager.addDev("Embedded!");
-		if (jbp.getGo()) {
-			jbp.setGo(false);
-		} else {
-			jbp.startProcess();
-		}
-	}
-
-	public void drawBird() {
-		if (jbp.getGo()) {
-			jbp.repaint();
-		}
-
-		if (birdframe != null) {
-			birdframe.updatePanel();
-		}
-	}
-
-	public void unsetBirdFrame() {
-		birdframe = null;
-	}
-
-	public void setJavaPreCode(TGComponent tgc) {
-		if (javaframe != null) {
-			if (tgc == null) {
-				javaframe.setPreCode("");
-				return;
-			}
-			if (tgc.hasPreJavaCode()) {
-				javaframe.setPreCode(tgc.getPreJavaCode());
-			} else {
-				javaframe.setPreCode("");
-			}
-		}
-	}
-
-	public void setJavaPostCode(TGComponent tgc) {
-		if (javaframe != null) {
-			if (tgc == null) {
-				javaframe.setPostCode("");
-				return;
-			}
-			if (tgc.hasPostJavaCode()) {
-				javaframe.setPostCode(tgc.getPostJavaCode());
-			} else {
-				javaframe.setPostCode("");
-			}
-		}
-	}
-
-	public void showSuggestedDesign() {
-		JFrameText jft = new JFrameText("Suggested Design #" + gtm.getNbSuggestedDesign(), gtm.getLastTextualDesign());
-		jft.setIconImage(IconManager.img8);
-		//  jft.setSize(600, 600);
-		GraphicLib.centerOnParent(jft, 600, 600);
-		jft.setVisible(true);
-	}
-
-	public void showSavedRTLOTOS() {
-		String spec[] = loadLotosSpec();
-		if ((spec != null) && (spec[0] != null) && (spec[1] != null)) {
-			JFrameText jft = new JFrameText("RT-LOTOS Specification: " + spec[0], spec[1]);
-			jft.setIconImage(IconManager.img8);
-			// jft.setSize(600, 600);
-			GraphicLib.centerOnParent(jft, 600, 600);
-			jft.setVisible(true);
-		}
-	}
-
-	public void showSimulationTrace() {
-		gtm.showSIM(1);
-	}
-
-	public void showSimulationTraceChrono() {
-		gtm.showSIM(2);
-	}
-
-	public void showDTA() {
-		String s = gtm.showDTA();
-		if (s != null) {
-			JOptionPane.showMessageDialog(frame,
-					"The DTA could not be displayed: " + s,
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-	}
-
-	public void showWave() {
-		RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.SystemCHost, null, null, ConfigurationTTool.GTKWavePath  + " vcddump.vcd");
-		ret.start();
-	}
-
-	public void showRG() {
-		String s = gtm.showRG();
-		if (s != null) {
-			JOptionPane.showMessageDialog(frame,
-					"The RG could not be displayed: " + s,
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-	}
-
-	public void showTLSA() {
-		String s = gtm.showTLSA();
-		if (s != null) {
-			JOptionPane.showMessageDialog(frame,
-					"The TLSA could not be displayed: " + s,
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-	}
-
-	public void showRGAut() {
-		String s = gtm.showRGAut();
-		if (s != null) {
-			JOptionPane.showMessageDialog(frame,
-					"The RG could not be displayed: " + s,
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-	}
-
-	public void showRGAutProj() {
-		String s = gtm.showRGAutProj();
-		if (s != null) {
-			JOptionPane.showMessageDialog(frame,
-					"The RG could not be displayed: " + s,
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-	}
-
-	public void showRGDiplodocus() {
-		if (lastDiploRG == null) {
-			JOptionPane.showMessageDialog(frame,
-					"The RG was not yet generated",
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return ;
-		}
-		TraceManager.addDev("Showing diplo RG");
-		displayAUTFromRG(lastDiploRG.name, lastDiploRG);
-
-	}
-
-	public void showModifiedAUTDOT() {
-		String s = GTURTLEModeling.runDOTTY(modifiedautdot);
-		if (s != null) {
-			JOptionPane.showMessageDialog(frame,
-					"The RG could not be displayed: " + s,
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-	}
-
-	public void showGGraph() {
-		String graph[] = loadGGraph();
-		if (graph != null) {
-			String s = GTURTLEModeling.showGGraph(graph[1]);
-			if (s != null) {
-				JOptionPane.showMessageDialog(frame,
-						"The graph could not be displayed: " + s,
-						"Error",
-						JOptionPane.INFORMATION_MESSAGE);
-			}
-		}
-	}
-
-	public void viewAutomata(String file) {
-		//TraceManager.addDev("viewing: " + file);
-		String graph[] = loadGGraph(file);
-		if (graph != null) {
-			String s = GTURTLEModeling.showGGraph(graph[1]);
-			if (s != null) {
-				JOptionPane.showMessageDialog(frame,
-						"The graph could not be displayed: " + s,
-						"Error",
-						JOptionPane.INFORMATION_MESSAGE);
-			}
-		}
-	}
-
-	public void executeUserCommand(String host, String command) {
-		RemoteExecutionThread ret = new RemoteExecutionThread(host, null, null, command);
-		ret.start();
-		TraceManager.addDev("User command ->" + command + "<- started on host " + host);
-	}
-
-
-	public void screenCapture() {
-		//Select file
-		File file = selectFileForCapture();
-		Toolkit toolkit = Toolkit.getDefaultToolkit();
-		Dimension screenSize = toolkit.getScreenSize();
-		Rectangle screenRect = new Rectangle(screenSize);
-		performScreenCapture(screenRect, file);
-	}
-
-	public void windowCapture() {
-		//Select file
-		File file = selectFileForCapture();
-		if (file == null)
-			return;
-
-		Rectangle screenRect = new Rectangle(frame.getLocation().x, frame.getLocation().y, frame.getWidth(), frame.getHeight());
-		performScreenCapture(screenRect, file);
-	}
-
-	public void diagramCapture() {
-		if (tabs.size() < 1) {
-			JOptionPane.showMessageDialog(frame,
-					"No diagram is under edition",
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return;
-		}
-
-		File file = selectFileForCapture();
-		if (file == null)
-			return;
-
-		TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-		if (tdp1 != null) {
-			BufferedImage image = tdp1.performMinimalCapture();
-			writeImageCapture(image, file, true);
-		}
-	}
-
-	public void svgDiagramCapture() {
-
-		TraceManager.addDev("SVG capture ");
-
-		if (tabs.size() < 1) {
-			JOptionPane.showMessageDialog(frame,
-					"No diagram is under edition",
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return;
-		}
-
-		File file = selectSVGFileForCapture();
-
-		if (file == null)
-			return;
-
-		TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-		if (tdp1 != null) {
-			String s = tdp1.svgCapture();
-			try {
-				FileUtils.saveFile(file.getAbsolutePath(), s);
-			} catch (Exception e) {
-				JOptionPane.showMessageDialog(frame,
-						"File could not be saved: " + e.getMessage(),
-						"Error",
-						JOptionPane.INFORMATION_MESSAGE);
-				return;
-			}
-			JOptionPane.showMessageDialog(frame,
-					"The capture was correctly performed and saved in " + file.getAbsolutePath(),
-					"Save in svg format ok",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-	}
-
-	public void allDiagramCapture() {
-		if (tabs.size() < 1) {
-			JOptionPane.showMessageDialog(frame,
-					"No diagram is under edition",
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return;
-		}
-
-		File file = selectFileForCapture();
-		if (file == null)
-			return;
-
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		TDiagramPanel tdp1;
-		BufferedImage image;
-		File file1;
-		String name = file.getAbsolutePath();
-		name = name.substring(0, name.length() - 4);
-
-		//boolean actions;
-		for(int i=0; i<tp.panels.size(); i++) {
-			tdp1 = (TDiagramPanel)(tp.panels.elementAt(i));
-			tdp1.repaint();
-			image = tdp1.performMinimalCapture();
-			if (i < 10) {
-				file1 = new File(name + "0" + i);
-			} else {
-				file1 = new File(name + i);
-			}
-			file1 = FileUtils.addFileExtensionIfMissing(file1, TImgFilter.getExtension());
-			if (!writeImageCapture(image, file1, false)) {
-				JOptionPane.showMessageDialog(frame,
-						"Diagrams could NOT be captured in png format",
-						"Capture failed",
-						JOptionPane.INFORMATION_MESSAGE);
-				return;
-			}
-			if (i ==0) {
-				if (!writeImageCapture(image, file, false)) {
-					JOptionPane.showMessageDialog(frame,
-							"Diagrams could NOT be captured in png format",
-							"Capture failed",
-							JOptionPane.INFORMATION_MESSAGE);
-					return;
-				}
-			}
-		}
-
-		JOptionPane.showMessageDialog(frame,
-				"All diagrams were sucessfully captured in png format",
-				"Capture ok",
-				JOptionPane.INFORMATION_MESSAGE);
-	}
-
-	public void allDiagramCaptureSvg() {
-		if (tabs.size() < 1) {
-			JOptionPane.showMessageDialog(frame,
-					"No diagram is under edition",
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return;
-		}
-
-		File file = selectSVGFileForCapture();
-		if (file == null)
-			return;
-
-		TURTLEPanel tp;// = getCurrentTURTLEPanel();
-		TDiagramPanel tdp1;
-		//  BufferedImage image;
-		File file1;
-		String name = file.getAbsolutePath();
-		name = name.substring(0, name.length() - 4);
-
-		//boolean actions;
-		for(int j=0; j<tabs.size(); j++) {
-			tp = (TURTLEPanel)(tabs.get(j));
-			for(int i=0; i<tp.panels.size(); i++) {
-				tdp1 = (TDiagramPanel)(tp.panels.elementAt(i));
-				tdp1.repaint();
-
-				tdp1.performMinimalCapture();
-				String svgImg = tdp1.svgCapture();
-
-				if (i < 10) {
-					file1 = new File(name + j + "_" + "0" + i);
-				} else {
-					file1 = new File(name + j + "_" + i);
-				}
-				file1 = FileUtils.addFileExtensionIfMissing(file1, TSVGFilter.getExtension());
-				try {
-					FileUtils.saveFile(file1, svgImg);
-				} catch(Exception e) {
-					JOptionPane.showMessageDialog(frame,
-							"Diagrams could NOT be captured in svg format",
-							"Capture failed",
-							JOptionPane.INFORMATION_MESSAGE);
-					return;
-				}
-
-			}
-		}
-
-		JOptionPane.showMessageDialog(frame,
-				"All diagrams were sucessfully captured in svg format",
-				"Capture ok",
-				JOptionPane.INFORMATION_MESSAGE);
-	}
-
-	public void selectedCapture() {
-		File file = selectFileForCapture();
-		if (file == null)
-			return;
-		BufferedImage image = getCurrentTDiagramPanel().performSelectedCapture();
-		writeImageCapture(image, file, true);
-	}
-
-	public File selectFileForCapture() {
-		File file = null;
-		int returnVal = jfcimg.showSaveDialog(frame);
-		if(returnVal == JFileChooser.APPROVE_OPTION) {
-			file = jfcimg.getSelectedFile();
-			file = FileUtils.addFileExtensionIfMissing(file, TImgFilter.getExtension());
-
-		}
-		if(!checkFileForSave(file)) {
-			JOptionPane.showMessageDialog(frame,
-					"The capture could not be performed: invalid file",
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return null;
-		}
-		return file;
-	}
-
-	public File selectSVGFileForCapture() {
-		File file = null;
-		int returnVal = jfcimgsvg.showSaveDialog(frame);
-		if(returnVal == JFileChooser.APPROVE_OPTION) {
-			file = jfcimgsvg.getSelectedFile();
-			file = FileUtils.addFileExtensionIfMissing(file, TSVGFilter.getExtension());
-
-		}
-		if(!checkFileForSave(file)) {
-			JOptionPane.showMessageDialog(frame,
-					"The capture could not be performed: invalid file",
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return null;
-		}
-		return file;
-	}
-
-	public void performScreenCapture(Rectangle rect, File file) {
-		frame.paint(frame.getGraphics());
-		try {
-			Robot robot = new Robot();
-			BufferedImage image = robot.createScreenCapture(rect);
-			// save captured image to PNG file
-			ImageIO.write(image, "png", file);
-		} catch (Exception e) {
-			JOptionPane.showMessageDialog(frame,
-					"The capture could not be performed:" + e.getMessage(),
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return;
-		}
-		JOptionPane.showMessageDialog(frame,
-				"The capture was correctly performed",
-				"Screen capture ok",
-				JOptionPane.INFORMATION_MESSAGE);
-		return;
-	}
-
-	public boolean writeImageCapture(BufferedImage image, File file, boolean info) {
-		frame.paint(frame.getGraphics());
-		try {
-			// save captured image to PNG file
-			ImageIO.write(image, "png", file);
-		} catch (Exception e) {
-			JOptionPane.showMessageDialog(frame,
-					"The capture could not be performed:" + e.getMessage(),
-					"Error",
-					JOptionPane.INFORMATION_MESSAGE);
-			return false;
-		}
-		if (info) {
-			JOptionPane.showMessageDialog(frame,
-					"The capture was correctly performed and saved in " + file.getAbsolutePath(),
-					"Screen capture ok",
-					JOptionPane.INFORMATION_MESSAGE);
-		}
-		return true;
-	}
-
-	public void generateDocumentation() {
-		//TraceManager.addDev("Documentation");
-		ThreadGUIElement t = new ThreadGUIElement(frame, 1, tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName(),"Documentation", "Generating documentation ... Please wait");
-		t.go();
-		/*DocumentationGenerator docgen = new DocumentationGenerator(tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName());
+    }
+
+    public void statAUT() {
+        showAUTFromString("Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
+    }
+
+    public RG setLastRGDiplodocus(String graphName) {
+        TraceManager.addDev("setting last RG diplodocus");
+        //lastDiploRG = graphName;
+        // Loadng the graph
+        // Adding RG to the tree on the left
+        try {
+            String fileName = ConfigurationTTool.TGraphPath + "/" + graphName + ".aut";
+            File f = new File(fileName);
+            String spec = loadFile(f);
+            RG rg = new RG(graphName);
+            rg.data = spec;
+            //rg.nbOfStates = amc.getNbOfStates();
+            //rg.nbOfTransitions = amc.getNbOfLinks();
+            addRG(rg);
+            lastDiploRG = rg;
+            return rg;
+        } catch (Exception e) {
+            TraceManager.addDev("RG creation in the left tree failed");
+            return null;
+        }
+    }
+
+    public void statAUTDiplodocus() {
+        if (lastDiploRG == null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The fill could not be loaded:",
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return;
+        }
+        showAUTFromRG(lastDiploRG.name, lastDiploRG);
+        //String spec = loadFile(new File(ConfigurationTTool.TGraphPath + "/" + lastDiploRG + ".aut"));
+
+        //showAUTFromString("Analysis on the last DIPLODOCUS RG", spec);
+    }
+
+    public void statAUTProj() {
+        showAUTFromString("Analysis on the last minimized RG (A>UT format)", gtm.getLastTextualRGAUTProj());
+    }
+
+    public void statSavedAUT() {
+        //TraceManager.addDev("toto");
+        String graph[] = loadAUTGraph();
+        if (graph != null) {
+            showAUTFromString("Analysis on " + graph[0], graph[1]);
+        }
+    }
+
+    public void pmAUT() {
+        showPMAUT("Power Management Analysis on the last RG (AUT format)", gtm.getLastTextualRGAUT());
+    }
+
+    public void pmAUTProj() {
+        showPMAUT("Power Management Analysis on the last minimized RG (AUT format)", gtm.getLastTextualRGAUTProj());
+    }
+
+    public void pmSavedAUT() {
+        //TraceManager.addDev("toto");
+        String graph[] = loadAUTGraph();
+        if (graph != null) {
+            showPMAUT("Power Management Analysis on " + graph[0], graph[1]);
+        }
+    }
+
+    public void showFormalSpecification() {
+        if (gtm.getLanguageID() == GTURTLEModeling.RT_LOTOS) {
+            showFormalSpecification("RT-LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification());
+        } else if (gtm.getLanguageID() == GTURTLEModeling.LOTOS) {
+            showFormalSpecification("LOTOS Specification #" + gtm.getNbRTLOTOS(), gtm.getLastRTLOTOSSpecification());
+        } else if (gtm.getLanguageID() == GTURTLEModeling.PROVERIF) {
+            showFormalSpecification("Last ProVerif Specification", gtm.getLastProVerifSpecification());
+        }
+    }
+
+    public void showFormalSpecification(String title, String data) {
+        JFrameText jft = new JFrameText(title, data);
+        jft.setIconImage(IconManager.img8);
+        //    jft.setSize(600, 600);
+        GraphicLib.centerOnParent(jft, 600, 600);
+        jft.setVisible(true);
+    }
+
+    public void showJavaCode() {
+        if (javaframe == null) {
+            javaframe = new JFrameCode("JavaCode", "", "");
+            javaframe.setIconImage(IconManager.img8);
+            // javaframe.setSize(350, 350);
+            GraphicLib.centerOnParent(javaframe, 350, 350);
+            javaframe.setVisible(true);
+        } else {
+            javaframe.setVisible(true);
+        }
+    }
+
+    public void showBirdEyesView() {
+        if (birdframe == null) {
+            birdframe = new JFrameBird(this);
+            birdframe.setIconImage(IconManager.img8);
+            //   birdframe.setSize(150, 100);
+            GraphicLib.centerOnParent(birdframe, 150, 100);
+            birdframe.setVisible(true);
+        } else {
+            birdframe.setVisible(true);
+        }
+    }
+
+    public void showEmbeddedBirdEyesView() {
+        //TraceManager.addDev("Embedded!");
+        if (jbp.getGo()) {
+            jbp.setGo(false);
+        } else {
+            jbp.startProcess();
+        }
+    }
+
+    public void drawBird() {
+        if (jbp.getGo()) {
+            jbp.repaint();
+        }
+
+        if (birdframe != null) {
+            birdframe.updatePanel();
+        }
+    }
+
+    public void unsetBirdFrame() {
+        birdframe = null;
+    }
+
+    public void setJavaPreCode(TGComponent tgc) {
+        if (javaframe != null) {
+            if (tgc == null) {
+                javaframe.setPreCode("");
+                return;
+            }
+            if (tgc.hasPreJavaCode()) {
+                javaframe.setPreCode(tgc.getPreJavaCode());
+            } else {
+                javaframe.setPreCode("");
+            }
+        }
+    }
+
+    public void setJavaPostCode(TGComponent tgc) {
+        if (javaframe != null) {
+            if (tgc == null) {
+                javaframe.setPostCode("");
+                return;
+            }
+            if (tgc.hasPostJavaCode()) {
+                javaframe.setPostCode(tgc.getPostJavaCode());
+            } else {
+                javaframe.setPostCode("");
+            }
+        }
+    }
+
+    public void showSuggestedDesign() {
+        JFrameText jft = new JFrameText("Suggested Design #" + gtm.getNbSuggestedDesign(), gtm.getLastTextualDesign());
+        jft.setIconImage(IconManager.img8);
+        //  jft.setSize(600, 600);
+        GraphicLib.centerOnParent(jft, 600, 600);
+        jft.setVisible(true);
+    }
+
+    public void showSavedRTLOTOS() {
+        String spec[] = loadLotosSpec();
+        if ((spec != null) && (spec[0] != null) && (spec[1] != null)) {
+            JFrameText jft = new JFrameText("RT-LOTOS Specification: " + spec[0], spec[1]);
+            jft.setIconImage(IconManager.img8);
+            // jft.setSize(600, 600);
+            GraphicLib.centerOnParent(jft, 600, 600);
+            jft.setVisible(true);
+        }
+    }
+
+    public void showSimulationTrace() {
+        gtm.showSIM(1);
+    }
+
+    public void showSimulationTraceChrono() {
+        gtm.showSIM(2);
+    }
+
+    public void showDTA() {
+        String s = gtm.showDTA();
+        if (s != null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The DTA could not be displayed: " + s,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
+    public void showWave() {
+        RemoteExecutionThread ret = new RemoteExecutionThread(ConfigurationTTool.SystemCHost, null, null, ConfigurationTTool.GTKWavePath  + " vcddump.vcd");
+        ret.start();
+    }
+
+    public void showRG() {
+        String s = gtm.showRG();
+        if (s != null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The RG could not be displayed: " + s,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
+    public void showTLSA() {
+        String s = gtm.showTLSA();
+        if (s != null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The TLSA could not be displayed: " + s,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
+    public void showRGAut() {
+        String s = gtm.showRGAut();
+        if (s != null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The RG could not be displayed: " + s,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
+    public void showRGAutProj() {
+        String s = gtm.showRGAutProj();
+        if (s != null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The RG could not be displayed: " + s,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
+    public void showRGDiplodocus() {
+        if (lastDiploRG == null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The RG was not yet generated",
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return ;
+        }
+        TraceManager.addDev("Showing diplo RG");
+        displayAUTFromRG(lastDiploRG.name, lastDiploRG);
+
+    }
+
+    public void showModifiedAUTDOT() {
+        String s = GTURTLEModeling.runDOTTY(modifiedautdot);
+        if (s != null) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The RG could not be displayed: " + s,
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
+    public void showGGraph() {
+        String graph[] = loadGGraph();
+        if (graph != null) {
+            String s = GTURTLEModeling.showGGraph(graph[1]);
+            if (s != null) {
+                JOptionPane.showMessageDialog(frame,
+                                              "The graph could not be displayed: " + s,
+                                              "Error",
+                                              JOptionPane.INFORMATION_MESSAGE);
+            }
+        }
+    }
+
+    public void viewAutomata(String file) {
+        //TraceManager.addDev("viewing: " + file);
+        String graph[] = loadGGraph(file);
+        if (graph != null) {
+            String s = GTURTLEModeling.showGGraph(graph[1]);
+            if (s != null) {
+                JOptionPane.showMessageDialog(frame,
+                                              "The graph could not be displayed: " + s,
+                                              "Error",
+                                              JOptionPane.INFORMATION_MESSAGE);
+            }
+        }
+    }
+
+    public void executeUserCommand(String host, String command) {
+        RemoteExecutionThread ret = new RemoteExecutionThread(host, null, null, command);
+        ret.start();
+        TraceManager.addDev("User command ->" + command + "<- started on host " + host);
+    }
+
+
+    public void screenCapture() {
+        //Select file
+        File file = selectFileForCapture();
+        Toolkit toolkit = Toolkit.getDefaultToolkit();
+        Dimension screenSize = toolkit.getScreenSize();
+        Rectangle screenRect = new Rectangle(screenSize);
+        performScreenCapture(screenRect, file);
+    }
+
+    public void windowCapture() {
+        //Select file
+        File file = selectFileForCapture();
+        if (file == null)
+            return;
+
+        Rectangle screenRect = new Rectangle(frame.getLocation().x, frame.getLocation().y, frame.getWidth(), frame.getHeight());
+        performScreenCapture(screenRect, file);
+    }
+
+    public void diagramCapture() {
+        if (tabs.size() < 1) {
+            JOptionPane.showMessageDialog(frame,
+                                          "No diagram is under edition",
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return;
+        }
+
+        File file = selectFileForCapture();
+        if (file == null)
+            return;
+
+        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+        if (tdp1 != null) {
+            BufferedImage image = tdp1.performMinimalCapture();
+            writeImageCapture(image, file, true);
+        }
+    }
+
+    public void svgDiagramCapture() {
+
+        TraceManager.addDev("SVG capture ");
+
+        if (tabs.size() < 1) {
+            JOptionPane.showMessageDialog(frame,
+                                          "No diagram is under edition",
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return;
+        }
+
+        File file = selectSVGFileForCapture();
+
+        if (file == null)
+            return;
+
+        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+        if (tdp1 != null) {
+            String s = tdp1.svgCapture();
+            try {
+                FileUtils.saveFile(file.getAbsolutePath(), s);
+            } catch (Exception e) {
+                JOptionPane.showMessageDialog(frame,
+                                              "File could not be saved: " + e.getMessage(),
+                                              "Error",
+                                              JOptionPane.INFORMATION_MESSAGE);
+                return;
+            }
+            JOptionPane.showMessageDialog(frame,
+                                          "The capture was correctly performed and saved in " + file.getAbsolutePath(),
+                                          "Save in svg format ok",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+    }
+
+    public void allDiagramCapture() {
+        if (tabs.size() < 1) {
+            JOptionPane.showMessageDialog(frame,
+                                          "No diagram is under edition",
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return;
+        }
+
+        File file = selectFileForCapture();
+        if (file == null)
+            return;
+
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        TDiagramPanel tdp1;
+        BufferedImage image;
+        File file1;
+        String name = file.getAbsolutePath();
+        name = name.substring(0, name.length() - 4);
+
+        //boolean actions;
+        for(int i=0; i<tp.panels.size(); i++) {
+            tdp1 = (TDiagramPanel)(tp.panels.elementAt(i));
+            tdp1.repaint();
+            image = tdp1.performMinimalCapture();
+            if (i < 10) {
+                file1 = new File(name + "0" + i);
+            } else {
+                file1 = new File(name + i);
+            }
+            file1 = FileUtils.addFileExtensionIfMissing(file1, TImgFilter.getExtension());
+            if (!writeImageCapture(image, file1, false)) {
+                JOptionPane.showMessageDialog(frame,
+                                              "Diagrams could NOT be captured in png format",
+                                              "Capture failed",
+                                              JOptionPane.INFORMATION_MESSAGE);
+                return;
+            }
+            if (i ==0) {
+                if (!writeImageCapture(image, file, false)) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "Diagrams could NOT be captured in png format",
+                                                  "Capture failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                    return;
+                }
+            }
+        }
+
+        JOptionPane.showMessageDialog(frame,
+                                      "All diagrams were sucessfully captured in png format",
+                                      "Capture ok",
+                                      JOptionPane.INFORMATION_MESSAGE);
+    }
+
+    public void allDiagramCaptureSvg() {
+        if (tabs.size() < 1) {
+            JOptionPane.showMessageDialog(frame,
+                                          "No diagram is under edition",
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return;
+        }
+
+        File file = selectSVGFileForCapture();
+        if (file == null)
+            return;
+
+        TURTLEPanel tp;// = getCurrentTURTLEPanel();
+        TDiagramPanel tdp1;
+        //  BufferedImage image;
+        File file1;
+        String name = file.getAbsolutePath();
+        name = name.substring(0, name.length() - 4);
+
+        //boolean actions;
+        for(int j=0; j<tabs.size(); j++) {
+            tp = (TURTLEPanel)(tabs.get(j));
+            for(int i=0; i<tp.panels.size(); i++) {
+                tdp1 = (TDiagramPanel)(tp.panels.elementAt(i));
+                tdp1.repaint();
+
+                tdp1.performMinimalCapture();
+                String svgImg = tdp1.svgCapture();
+
+                if (i < 10) {
+                    file1 = new File(name + j + "_" + "0" + i);
+                } else {
+                    file1 = new File(name + j + "_" + i);
+                }
+                file1 = FileUtils.addFileExtensionIfMissing(file1, TSVGFilter.getExtension());
+                try {
+                    FileUtils.saveFile(file1, svgImg);
+                } catch(Exception e) {
+                    JOptionPane.showMessageDialog(frame,
+                                                  "Diagrams could NOT be captured in svg format",
+                                                  "Capture failed",
+                                                  JOptionPane.INFORMATION_MESSAGE);
+                    return;
+                }
+
+            }
+        }
+
+        JOptionPane.showMessageDialog(frame,
+                                      "All diagrams were sucessfully captured in svg format",
+                                      "Capture ok",
+                                      JOptionPane.INFORMATION_MESSAGE);
+    }
+
+    public void selectedCapture() {
+        File file = selectFileForCapture();
+        if (file == null)
+            return;
+        BufferedImage image = getCurrentTDiagramPanel().performSelectedCapture();
+        writeImageCapture(image, file, true);
+    }
+
+    public File selectFileForCapture() {
+        File file = null;
+        int returnVal = jfcimg.showSaveDialog(frame);
+        if(returnVal == JFileChooser.APPROVE_OPTION) {
+            file = jfcimg.getSelectedFile();
+            file = FileUtils.addFileExtensionIfMissing(file, TImgFilter.getExtension());
+
+        }
+        if(!checkFileForSave(file)) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The capture could not be performed: invalid file",
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return null;
+        }
+        return file;
+    }
+
+    public File selectSVGFileForCapture() {
+        File file = null;
+        int returnVal = jfcimgsvg.showSaveDialog(frame);
+        if(returnVal == JFileChooser.APPROVE_OPTION) {
+            file = jfcimgsvg.getSelectedFile();
+            file = FileUtils.addFileExtensionIfMissing(file, TSVGFilter.getExtension());
+
+        }
+        if(!checkFileForSave(file)) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The capture could not be performed: invalid file",
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return null;
+        }
+        return file;
+    }
+
+    public void performScreenCapture(Rectangle rect, File file) {
+        frame.paint(frame.getGraphics());
+        try {
+            Robot robot = new Robot();
+            BufferedImage image = robot.createScreenCapture(rect);
+            // save captured image to PNG file
+            ImageIO.write(image, "png", file);
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The capture could not be performed:" + e.getMessage(),
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return;
+        }
+        JOptionPane.showMessageDialog(frame,
+                                      "The capture was correctly performed",
+                                      "Screen capture ok",
+                                      JOptionPane.INFORMATION_MESSAGE);
+        return;
+    }
+
+    public boolean writeImageCapture(BufferedImage image, File file, boolean info) {
+        frame.paint(frame.getGraphics());
+        try {
+            // save captured image to PNG file
+            ImageIO.write(image, "png", file);
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The capture could not be performed:" + e.getMessage(),
+                                          "Error",
+                                          JOptionPane.INFORMATION_MESSAGE);
+            return false;
+        }
+        if (info) {
+            JOptionPane.showMessageDialog(frame,
+                                          "The capture was correctly performed and saved in " + file.getAbsolutePath(),
+                                          "Screen capture ok",
+                                          JOptionPane.INFORMATION_MESSAGE);
+        }
+        return true;
+    }
+
+    public void generateDocumentation() {
+        //TraceManager.addDev("Documentation");
+        ThreadGUIElement t = new ThreadGUIElement(frame, 1, tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName(),"Documentation", "Generating documentation ... Please wait");
+        t.go();
+        /*DocumentationGenerator docgen = new DocumentationGenerator(tabs, mainTabbedPane, ConfigurationTTool.IMGPath, file.getName());
           docgen.setFirstHeadingNumber(2);
           if (docgen.generateDocumentation()) {
           JOptionPane.showMessageDialog(frame,
@@ -5217,1029 +5235,1029 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
           "Error",
           JOptionPane.INFORMATION_MESSAGE);
           }*/
-		//TraceManager.addDev("Documentation=" + docgen.getDocumentation());
-	}
-
-	public void generateDocumentationReq() {
-		TraceManager.addDev("Frame Req");
-		JDialogRequirementTable jdrt = new JDialogRequirementTable(frame, "Selecting table columns");
-		GraphicLib.centerOnParent(jdrt);
-		jdrt.setVisible(true);
-		if (!jdrt.hasBeenCancelled()) {
-			Point [] pts = jdrt.getColumnsInfo();
-			if (pts != null) {
-				for(int i=0; i<pts.length; i++) {
-					TraceManager.addDev("" + i + ": (" + pts[i].x + ", " + pts[i].y + ")");
-				}
-
-				JFrameRequirementTable jfrt = new JFrameRequirementTable("Requirement table", tabs, mainTabbedPane, pts);
-				jfrt.setIconImage(IconManager.img8);
-				//jfrt.setSize(1024, 768);
-				GraphicLib.centerOnParent(jfrt, 1024, 768);
-				jfrt.setVisible(true);
-			} else {
-				TraceManager.addDev("No column to print");
-			}
-		}
-		TraceManager.addDev("Done");
-	}
-
-	public int getTypeButtonSelected() {
-		return typeButtonSelected;
-	}
-
-	public void actionOnButton(int type, int id) {
-		typeButtonSelected = type;
-		idButtonSelected = id;
-		//TDiagramPanel tdp1 = ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp;
-		TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-		//TraceManager.addDev("Selected TDiagramPanel=" + tdp1.getName());
-		tdp1.repaint();
-	}
-
-	public int getIdButtonSelected() {
-		return idButtonSelected;
-	}
-
-	public void addTClass(TURTLEPanel tp, String s)     {
-		if (!(tp instanceof DesignPanel)) {
-			return;
-		}
-
-		((DesignPanel)tp).addTActivityDiagram(s);
-		setPanelMode();
-	}
-
-	public void addTOSClass(TURTLEPanel tp, String s)   {
-		if (!(tp instanceof TURTLEOSDesignPanel)) {
-			return;
-		}
-
-		((TURTLEOSDesignPanel)tp).addTURTLEOSActivityDiagram(s);
-		setPanelMode();
-	}
-
-	public void addTMLTask(TURTLEPanel tp, String s)    {
-		//TraceManager.addDev("ADD TML Task=" + s);
-		if (!(tp instanceof TMLDesignPanel)) {
-			return;
-		}
-
-		((TMLDesignPanel)tp).addTMLActivityDiagram(s);
-		setPanelMode();
-	}
-
-	public void addTMLCPrimitiveComponent(TURTLEPanel tp, String s)     {
-		//TraceManager.addDev("ADD C Primitive Component=" + s);
-		if (!(tp instanceof TMLComponentDesignPanel)) {
-			return;
-		}
-
-		((TMLComponentDesignPanel)tp).addTMLActivityDiagram(s);
-		setPanelMode();
-	}
-
-	public TMLActivityDiagramPanel getReferencedTMLActivityDiagramPanel(TDiagramPanel _tdp, String name) {
-		TURTLEPanel tp;
-		TMLActivityDiagramPanel tmladp;
-		//TraceManager.addDev("global search for: " + name);
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel) {
-				if (tp.hasTDiagramPanel(_tdp)) {
-					tmladp = ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name);
-					if (tmladp != null) {
-						//TraceManager.addDev("Found");
-						return tmladp;
-					}
-				}
-			}
-		}
-
-		TraceManager.addDev("Not found");
-		return null;
-	}
-
-	public TURTLEPanel getTURTLEPanelOfTDiagramPanel(TDiagramPanel _tdp) {
-		TURTLEPanel tp;
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel) {
-				if (tp.hasTDiagramPanel(_tdp)) {
-					return tp;
-
-				}
-			}
-		}
-		return null;
-	}
-
-	public ArrayList<EBRDDPanel> getAllEBRDDPanels() {
-		TURTLEPanel tp;
-		ArrayList<EBRDDPanel> al = new ArrayList<EBRDDPanel>();
-		//TraceManager.addDev("global search for: " + name);
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof RequirementPanel) {
-				((RequirementPanel)tp).addAllEBRDDPanels(al);
-			}
-		}
-
-		return al;
-	}
-
-	public ArrayList<AvatarPDPanel> getAllAvatarPDPanels() {
-		TURTLEPanel tp;
-		ArrayList<AvatarPDPanel> al = new ArrayList<AvatarPDPanel>();
-		//TraceManager.addDev("global search for: " + name);
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof AvatarRequirementPanel) {
-				((AvatarRequirementPanel)tp).addAllAvatarPDPanels(al);
-			}
-		}
-
-		return al;
-	}
-
-	public List<TGComponent> getAllTMLComponents() {
-		TURTLEPanel tp;
-		List<TGComponent> ll = new LinkedList<TGComponent>();
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-
-			if (tp instanceof TMLComponentDesignPanel) {
-				ll.addAll(((TMLComponentDesignPanel)tp).tmlctdp.getComponentList());
-			}
-		}
-
-		return ll;
-	}
-
-	public void removeTClass(TURTLEPanel tp, String s)  {
-		if (!(tp instanceof DesignPanel)) {
-			return;
-		}
-
-		for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				tp.tabbedPane.removeTabAt(i);
-				tp.panels.removeElementAt(i);
-				setPanelMode();
-				return;
-			}
-		}
-	}
-
-	public void removeTOSClass(TURTLEPanel tp, String s)        {
-		if (!(tp instanceof TURTLEOSDesignPanel)) {
-			return;
-		}
-
-		TraceManager.addDev("Removing tab ...");
-		for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				tp.tabbedPane.removeTabAt(i);
-				tp.panels.removeElementAt(i);
-				setPanelMode();
-				return;
-			}
-		}
-	}
-
-	public void removeTMLTask(TURTLEPanel tp, String s) {
-		if (!(tp instanceof TMLDesignPanel)) {
-			return;
-		}
-
-		for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				tp.tabbedPane.removeTabAt(i);
-				tp.panels.removeElementAt(i);
-				setPanelMode();
-				return;
-			}
-		}
-	}
-
-	public void removeAvatarBlock (TURTLEPanel tp, String s) {
-		if (!(tp instanceof AvatarDesignPanel))
-			return;
-
-		for (int i=0; i<tp.tabbedPane.getTabCount(); i++)
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				tp.tabbedPane.removeTabAt(i);
-				tp.panels.removeElementAt(i);
-				this.setPanelMode();
-				return;
-			}
-	}
-
-	public void removeTMLCPrimitiveComponent(TURTLEPanel tp, String s)  {
-		//TraceManager.addDev("Removing panel 0:" + s);
-		if (!(tp instanceof TMLComponentDesignPanel)) {
-			return;
-		}
-
-		//TraceManager.addDev("Removing panel 1:" + s);
-		for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				tp.tabbedPane.removeTabAt(i);
-				tp.panels.removeElementAt(i);
-				setPanelMode();
-				return;
-			}
-		}
-	}
-
-	// for diagrams
-	public void setEditMode() {
-		typeButtonSelected = TGComponentManager.EDIT;
-		idButtonSelected = -1;
-	}
-
-	public String getTabName(TURTLEPanel p) {
-		int index = tabs.indexOf(p);
-		if (index<0) {
-			return "";
-		}
-		return mainTabbedPane.getTitleAt(index);
-	}
-
-	public int getMajorIndexOf(TDiagramPanel tdp) {
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size();i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp.panels.contains(tdp)) {
-				return i;
-			}
-		}
-
-		return -1;
-	}
-
-	public String getMajorTitle(TDiagramPanel tdp) {
-		int index = getMajorIndexOf(tdp);
-
-		if (index == -1) {
-			return "unknown";
-		}
-
-		return mainTabbedPane.getTitleAt(index);
-	}
-
-	public ArrayList<TMLComponentTaskDiagramPanel> getAllPanelsReferencingTMLCCompositeComponent(TMLCCompositeComponent tmlcc) {
-		TURTLEPanel tp;
-		ArrayList<TMLComponentTaskDiagramPanel> foundPanels = new ArrayList<TMLComponentTaskDiagramPanel>();
-
-		for(int i=0; i<tabs.size();i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel) {
-				((TMLComponentDesignPanel)tp).tmlctdp.getPanelsUsingAComponent(tmlcc, foundPanels);
-			}
-		}
-
-		return foundPanels;
-	}
-
-	public void updateReferenceToTMLCCompositeComponent(TMLCCompositeComponent tmlcc) {
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size();i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLComponentDesignPanel) {
-				((TMLComponentDesignPanel)tp).tmlctdp.updateReferenceToTMLCCompositeComponent(tmlcc);
-			}
-		}
-	}
-
-	public TMLCCompositeComponent getCompositeComponent(String name) {
-		int index = name.indexOf("::");
-		if (index == -1) {
-			return null;
-		}
-
-		String panelName = name.substring(0, index);
-		String componentName = name.substring(index+2, name.length());
-
-		TURTLEPanel tp = getTURTLEPanel(panelName);
-
-		if ((tp == null) || (!(tp instanceof TMLComponentDesignPanel))) {
-			return null;
-		}
-
-
-		return ((TMLComponentDesignPanel)(tp)).tmlctdp.getCompositeComponentByName(componentName);
-	}
-
-	public AvatarSMDPanel getAvatarSMDPanel(int indexDesign, String name) {
-
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		if (tp == null) {
-			TraceManager.addDev("null TP");
-			return null;
-		}
-		if (tp instanceof AvatarDesignPanel) {
-			return ((AvatarDesignPanel)tp).getAvatarSMDPanel(name);
-		}
-		TraceManager.addDev("null ADP :" + name);
-		return null;
-	}
-
-	public TActivityDiagramPanel getActivityDiagramPanel(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		if (tp == null) {
-			return null;
-		}
-		if (tp instanceof DesignPanel) {
-			return ((DesignPanel)tp).getActivityDiagramPanel(name);
-		}
-		return null;
-	}
-
-	public TURTLEOSActivityDiagramPanel getTURTLEOSActivityDiagramPanel(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		if (tp == null) {
-			return null;
-		}
-		if (tp instanceof TURTLEOSDesignPanel) {
-			return ((TURTLEOSDesignPanel)tp).getTURTLEOSActivityDiagramPanel(name);
-		}
-		return null;
-	}
-
-	public TMLActivityDiagramPanel getTMLActivityDiagramPanel(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		if (tp == null) {
-			return null;
-		}
-		if (tp instanceof TMLDesignPanel) {
-			return ((TMLDesignPanel)tp).getTMLActivityDiagramPanel(name);
-		}
-		if (tp instanceof TMLComponentDesignPanel) {
-			return ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name);
-		}
-		return null;
-	}
-
-	public ProactiveSMDPanel getSMDPanel(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		if (tp == null) {
-			return null;
-		}
-		if (tp instanceof ProactiveDesignPanel) {
-			return ((ProactiveDesignPanel)tp).getSMDPanel(name);
-		}
-		return null;
-	}
-
-	public int getNbActivityDiagram() {
-		TDiagramPanel tdp;
-		int cpt = 0;
-
-		for(int i = 0; i<getCurrentJTabbedPane().getTabCount(); i++) {
-			tdp = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(i));
-			if (tdp instanceof TActivityDiagramPanel) {
-				cpt ++;
-			}
-		}
-		return cpt;
-	}
-
-	public void setAvatarBDName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setClassDiagramName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setDiplodocusMethodologyDiagramName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setAvatarMethodologyDiagramName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setSysmlsecMethodologyDiagramName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setTMLTaskDiagramName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setTMLComponentTaskDiagramName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setTMLArchitectureDiagramName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setAADName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public void setProacticeCSDName(int indexDesign, String name) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
-		tp.tabbedPane.setTitleAt(0, name);
-	}
-
-	public TDiagramPanel getMainTDiagramPanel(int indexPanel) {
-		if (tabs.size() > indexPanel) {
-			TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexPanel));
-			return tp.tdp;
-		} else {
-			return null;
-		}
-
-	}
-
-	// TMLCP
-	public boolean isTMLCPSDCreated(int index, String s) {
-		return isTMLCPSDCreated(((TURTLEPanel)(tabs.elementAt(index))), s);
-	}
-
-	public boolean isTMLCPSDCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof TMLSDPanel);
-	}
-
-	public boolean isTMLCPCreated(int index, String s) {
-		return isTMLCPCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
-	}
-
-	public boolean isTMLCPCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof TMLCPPanel);
-	}
-
-
-
-
-	// IOD, SD
-
-	public boolean isSDCreated(int index, String s) {
-		return isSDCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
-	}
-
-	public boolean isIODCreated(int index, String s) {
-		return isIODCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
-	}
-
-	public boolean isProActiveSMDCreated(int index, String s) {
-		return isProActiveSMDCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
-	}
-
-	public boolean isSDCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof ui.sd.SequenceDiagramPanel);
-	}
-
-	public boolean isSDZVCreated(int index, String s) {
-		return isSDZVCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
-	}
-
-	public boolean isSDZVCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof ui.sd2.SequenceDiagramPanel);
-	}
-
-	public boolean isUseCaseDiagramCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof UseCaseDiagramPanel);
-	}
-
-	public boolean isAvatarCDCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof AvatarCDPanel);
-	}
-
-	public boolean isAvatarADCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof AvatarADPanel);
-	}
-
-	public boolean isIODCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof InteractionOverviewDiagramPanel);
-	}
-
-	public boolean isProActiveSMDCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof ProactiveSMDPanel);
-	}
-
-	public boolean openSequenceDiagram(String s) {
-		int index = getCurrentJTabbedPane().indexOfTab(s);
-		if (index > -1) {
-			getCurrentJTabbedPane().setSelectedIndex(index);
-			return true;
-		}
-		return false;
-	}
-
-	public boolean openSequenceDiagramZV(String s) {
-		int index = getCurrentJTabbedPane().indexOfTab(s);
-		if (index > -1) {
-			getCurrentJTabbedPane().setSelectedIndex(index);
-			return true;
-		}
-		return false;
-	}
-
-	public boolean openIODiagram(String s) {
-		int index = getCurrentJTabbedPane().indexOfTab(s);
-		if (index > -1) {
-			getCurrentJTabbedPane().setSelectedIndex(index);
-			return true;
-		}
-		return false;
-	}
-
-	// TMLCP
-	public boolean openTMLCPSequenceDiagram(String s) {
-		int index = getCurrentJTabbedPane().indexOfTab(s);
-		if (index > -1) {
-			getCurrentJTabbedPane().setSelectedIndex(index);
-			return true;
-		}
-		return false;
-	}
-
-	public boolean openTMLCPDiagram(String s) {
-		int index = getCurrentJTabbedPane().indexOfTab(s);
-		if (index > -1) {
-			getCurrentJTabbedPane().setSelectedIndex(index);
-			return true;
-		}
-		return false;
-	}
-
-
-	public boolean createTMLCPSequenceDiagram(int index, String s) {
-		return createTMLCPSequenceDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
-	}
-
-	public boolean createTMLCPSequenceDiagram(TURTLEPanel tp, String s) {
-		if(isSDCreated(tp, s)) {
-			return false;
-		}
-
-		if (!(tp instanceof TMLCommunicationPatternPanel) ) {
-			return false;
-		}
-
-
-		((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s);
-
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createUniqueTMLCPSequenceDiagram(TURTLEPanel tp, String s) {
-		int i;
-		for(i=0; i<1000; i++) {
-			if(!isTMLCPSDCreated(tp, s+i)) {
-				break;
-			}
-		}
-
-		((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s+i);
-
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createTMLCPDiagram(int index, String s) {
-		return createTMLCPDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
-	}
-
-	public boolean createTMLCPDiagram(TURTLEPanel tp, String s) {
-		if(isTMLCPCreated(tp, s)) {
-			return false;
-		}
-
-		if (!(tp instanceof TMLCommunicationPatternPanel)) {
-			return false;
-		}
-
-		((TMLCommunicationPatternPanel)tp).addCPDiagram(s);
-		setPanelMode();
-		return true;
-	}
-
-	// End of TMLCP
-
-
-	public ui.sd.SequenceDiagramPanel getSequenceDiagramPanel(int index, String s) {
-		//TraceManager.addDev("Searching for " + s);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getSequenceDiagramPanel(tp, s);
-	}
-
-
-	public ui.sd2.SequenceDiagramPanel getSequenceDiagramPanelZV(int index, String s) {
-		//TraceManager.addDev("Searching for " + s);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getSequenceDiagramPanelZV(tp, s);
-	}
-
-
-	public AttackTreeDiagramPanel getAttackTreeDiagramPanel(int index, int indexTab, String s) {
-		//TraceManager.addDev("Searching for " + s);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getAttackTreeDiagramPanel(tp, indexTab, s);
-	}
-
-	public AttackTreeDiagramPanel getAttackTreeDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (AttackTreeDiagramPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-		/*for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+        //TraceManager.addDev("Documentation=" + docgen.getDocumentation());
+    }
+
+    public void generateDocumentationReq() {
+        TraceManager.addDev("Frame Req");
+        JDialogRequirementTable jdrt = new JDialogRequirementTable(frame, "Selecting table columns");
+        GraphicLib.centerOnParent(jdrt);
+        jdrt.setVisible(true);
+        if (!jdrt.hasBeenCancelled()) {
+            Point [] pts = jdrt.getColumnsInfo();
+            if (pts != null) {
+                for(int i=0; i<pts.length; i++) {
+                    TraceManager.addDev("" + i + ": (" + pts[i].x + ", " + pts[i].y + ")");
+                }
+
+                JFrameRequirementTable jfrt = new JFrameRequirementTable("Requirement table", tabs, mainTabbedPane, pts);
+                jfrt.setIconImage(IconManager.img8);
+                //jfrt.setSize(1024, 768);
+                GraphicLib.centerOnParent(jfrt, 1024, 768);
+                jfrt.setVisible(true);
+            } else {
+                TraceManager.addDev("No column to print");
+            }
+        }
+        TraceManager.addDev("Done");
+    }
+
+    public int getTypeButtonSelected() {
+        return typeButtonSelected;
+    }
+
+    public void actionOnButton(int type, int id) {
+        typeButtonSelected = type;
+        idButtonSelected = id;
+        //TDiagramPanel tdp1 = ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp;
+        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+        //TraceManager.addDev("Selected TDiagramPanel=" + tdp1.getName());
+        tdp1.repaint();
+    }
+
+    public int getIdButtonSelected() {
+        return idButtonSelected;
+    }
+
+    public void addTClass(TURTLEPanel tp, String s)     {
+        if (!(tp instanceof DesignPanel)) {
+            return;
+        }
+
+        ((DesignPanel)tp).addTActivityDiagram(s);
+        setPanelMode();
+    }
+
+    public void addTOSClass(TURTLEPanel tp, String s)   {
+        if (!(tp instanceof TURTLEOSDesignPanel)) {
+            return;
+        }
+
+        ((TURTLEOSDesignPanel)tp).addTURTLEOSActivityDiagram(s);
+        setPanelMode();
+    }
+
+    public void addTMLTask(TURTLEPanel tp, String s)    {
+        //TraceManager.addDev("ADD TML Task=" + s);
+        if (!(tp instanceof TMLDesignPanel)) {
+            return;
+        }
+
+        ((TMLDesignPanel)tp).addTMLActivityDiagram(s);
+        setPanelMode();
+    }
+
+    public void addTMLCPrimitiveComponent(TURTLEPanel tp, String s)     {
+        //TraceManager.addDev("ADD C Primitive Component=" + s);
+        if (!(tp instanceof TMLComponentDesignPanel)) {
+            return;
+        }
+
+        ((TMLComponentDesignPanel)tp).addTMLActivityDiagram(s);
+        setPanelMode();
+    }
+
+    public TMLActivityDiagramPanel getReferencedTMLActivityDiagramPanel(TDiagramPanel _tdp, String name) {
+        TURTLEPanel tp;
+        TMLActivityDiagramPanel tmladp;
+        //TraceManager.addDev("global search for: " + name);
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel) {
+                if (tp.hasTDiagramPanel(_tdp)) {
+                    tmladp = ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name);
+                    if (tmladp != null) {
+                        //TraceManager.addDev("Found");
+                        return tmladp;
+                    }
+                }
+            }
+        }
+
+        TraceManager.addDev("Not found");
+        return null;
+    }
+
+    public TURTLEPanel getTURTLEPanelOfTDiagramPanel(TDiagramPanel _tdp) {
+        TURTLEPanel tp;
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel) {
+                if (tp.hasTDiagramPanel(_tdp)) {
+                    return tp;
+
+                }
+            }
+        }
+        return null;
+    }
+
+    public ArrayList<EBRDDPanel> getAllEBRDDPanels() {
+        TURTLEPanel tp;
+        ArrayList<EBRDDPanel> al = new ArrayList<EBRDDPanel>();
+        //TraceManager.addDev("global search for: " + name);
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof RequirementPanel) {
+                ((RequirementPanel)tp).addAllEBRDDPanels(al);
+            }
+        }
+
+        return al;
+    }
+
+    public ArrayList<AvatarPDPanel> getAllAvatarPDPanels() {
+        TURTLEPanel tp;
+        ArrayList<AvatarPDPanel> al = new ArrayList<AvatarPDPanel>();
+        //TraceManager.addDev("global search for: " + name);
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof AvatarRequirementPanel) {
+                ((AvatarRequirementPanel)tp).addAllAvatarPDPanels(al);
+            }
+        }
+
+        return al;
+    }
+
+    public List<TGComponent> getAllTMLComponents() {
+        TURTLEPanel tp;
+        List<TGComponent> ll = new LinkedList<TGComponent>();
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+
+            if (tp instanceof TMLComponentDesignPanel) {
+                ll.addAll(((TMLComponentDesignPanel)tp).tmlctdp.getComponentList());
+            }
+        }
+
+        return ll;
+    }
+
+    public void removeTClass(TURTLEPanel tp, String s)  {
+        if (!(tp instanceof DesignPanel)) {
+            return;
+        }
+
+        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                tp.tabbedPane.removeTabAt(i);
+                tp.panels.removeElementAt(i);
+                setPanelMode();
+                return;
+            }
+        }
+    }
+
+    public void removeTOSClass(TURTLEPanel tp, String s)        {
+        if (!(tp instanceof TURTLEOSDesignPanel)) {
+            return;
+        }
+
+        TraceManager.addDev("Removing tab ...");
+        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                tp.tabbedPane.removeTabAt(i);
+                tp.panels.removeElementAt(i);
+                setPanelMode();
+                return;
+            }
+        }
+    }
+
+    public void removeTMLTask(TURTLEPanel tp, String s) {
+        if (!(tp instanceof TMLDesignPanel)) {
+            return;
+        }
+
+        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                tp.tabbedPane.removeTabAt(i);
+                tp.panels.removeElementAt(i);
+                setPanelMode();
+                return;
+            }
+        }
+    }
+
+    public void removeAvatarBlock (TURTLEPanel tp, String s) {
+        if (!(tp instanceof AvatarDesignPanel))
+            return;
+
+        for (int i=0; i<tp.tabbedPane.getTabCount(); i++)
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                tp.tabbedPane.removeTabAt(i);
+                tp.panels.removeElementAt(i);
+                this.setPanelMode();
+                return;
+            }
+    }
+
+    public void removeTMLCPrimitiveComponent(TURTLEPanel tp, String s)  {
+        //TraceManager.addDev("Removing panel 0:" + s);
+        if (!(tp instanceof TMLComponentDesignPanel)) {
+            return;
+        }
+
+        //TraceManager.addDev("Removing panel 1:" + s);
+        for(int i = 0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                tp.tabbedPane.removeTabAt(i);
+                tp.panels.removeElementAt(i);
+                setPanelMode();
+                return;
+            }
+        }
+    }
+
+    // for diagrams
+    public void setEditMode() {
+        typeButtonSelected = TGComponentManager.EDIT;
+        idButtonSelected = -1;
+    }
+
+    public String getTabName(TURTLEPanel p) {
+        int index = tabs.indexOf(p);
+        if (index<0) {
+            return "";
+        }
+        return mainTabbedPane.getTitleAt(index);
+    }
+
+    public int getMajorIndexOf(TDiagramPanel tdp) {
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size();i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp.panels.contains(tdp)) {
+                return i;
+            }
+        }
+
+        return -1;
+    }
+
+    public String getMajorTitle(TDiagramPanel tdp) {
+        int index = getMajorIndexOf(tdp);
+
+        if (index == -1) {
+            return "unknown";
+        }
+
+        return mainTabbedPane.getTitleAt(index);
+    }
+
+    public ArrayList<TMLComponentTaskDiagramPanel> getAllPanelsReferencingTMLCCompositeComponent(TMLCCompositeComponent tmlcc) {
+        TURTLEPanel tp;
+        ArrayList<TMLComponentTaskDiagramPanel> foundPanels = new ArrayList<TMLComponentTaskDiagramPanel>();
+
+        for(int i=0; i<tabs.size();i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel) {
+                ((TMLComponentDesignPanel)tp).tmlctdp.getPanelsUsingAComponent(tmlcc, foundPanels);
+            }
+        }
+
+        return foundPanels;
+    }
+
+    public void updateReferenceToTMLCCompositeComponent(TMLCCompositeComponent tmlcc) {
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size();i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLComponentDesignPanel) {
+                ((TMLComponentDesignPanel)tp).tmlctdp.updateReferenceToTMLCCompositeComponent(tmlcc);
+            }
+        }
+    }
+
+    public TMLCCompositeComponent getCompositeComponent(String name) {
+        int index = name.indexOf("::");
+        if (index == -1) {
+            return null;
+        }
+
+        String panelName = name.substring(0, index);
+        String componentName = name.substring(index+2, name.length());
+
+        TURTLEPanel tp = getTURTLEPanel(panelName);
+
+        if ((tp == null) || (!(tp instanceof TMLComponentDesignPanel))) {
+            return null;
+        }
+
+
+        return ((TMLComponentDesignPanel)(tp)).tmlctdp.getCompositeComponentByName(componentName);
+    }
+
+    public AvatarSMDPanel getAvatarSMDPanel(int indexDesign, String name) {
+
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        if (tp == null) {
+            TraceManager.addDev("null TP");
+            return null;
+        }
+        if (tp instanceof AvatarDesignPanel) {
+            return ((AvatarDesignPanel)tp).getAvatarSMDPanel(name);
+        }
+        TraceManager.addDev("null ADP :" + name);
+        return null;
+    }
+
+    public TActivityDiagramPanel getActivityDiagramPanel(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        if (tp == null) {
+            return null;
+        }
+        if (tp instanceof DesignPanel) {
+            return ((DesignPanel)tp).getActivityDiagramPanel(name);
+        }
+        return null;
+    }
+
+    public TURTLEOSActivityDiagramPanel getTURTLEOSActivityDiagramPanel(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        if (tp == null) {
+            return null;
+        }
+        if (tp instanceof TURTLEOSDesignPanel) {
+            return ((TURTLEOSDesignPanel)tp).getTURTLEOSActivityDiagramPanel(name);
+        }
+        return null;
+    }
+
+    public TMLActivityDiagramPanel getTMLActivityDiagramPanel(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        if (tp == null) {
+            return null;
+        }
+        if (tp instanceof TMLDesignPanel) {
+            return ((TMLDesignPanel)tp).getTMLActivityDiagramPanel(name);
+        }
+        if (tp instanceof TMLComponentDesignPanel) {
+            return ((TMLComponentDesignPanel)tp).getTMLActivityDiagramPanel(name);
+        }
+        return null;
+    }
+
+    public ProactiveSMDPanel getSMDPanel(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        if (tp == null) {
+            return null;
+        }
+        if (tp instanceof ProactiveDesignPanel) {
+            return ((ProactiveDesignPanel)tp).getSMDPanel(name);
+        }
+        return null;
+    }
+
+    public int getNbActivityDiagram() {
+        TDiagramPanel tdp;
+        int cpt = 0;
+
+        for(int i = 0; i<getCurrentJTabbedPane().getTabCount(); i++) {
+            tdp = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(i));
+            if (tdp instanceof TActivityDiagramPanel) {
+                cpt ++;
+            }
+        }
+        return cpt;
+    }
+
+    public void setAvatarBDName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setClassDiagramName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setDiplodocusMethodologyDiagramName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setAvatarMethodologyDiagramName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setSysmlsecMethodologyDiagramName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setTMLTaskDiagramName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setTMLComponentTaskDiagramName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setTMLArchitectureDiagramName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setAADName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public void setProacticeCSDName(int indexDesign, String name) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexDesign));
+        tp.tabbedPane.setTitleAt(0, name);
+    }
+
+    public TDiagramPanel getMainTDiagramPanel(int indexPanel) {
+        if (tabs.size() > indexPanel) {
+            TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(indexPanel));
+            return tp.tdp;
+        } else {
+            return null;
+        }
+
+    }
+
+    // TMLCP
+    public boolean isTMLCPSDCreated(int index, String s) {
+        return isTMLCPSDCreated(((TURTLEPanel)(tabs.elementAt(index))), s);
+    }
+
+    public boolean isTMLCPSDCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof TMLSDPanel);
+    }
+
+    public boolean isTMLCPCreated(int index, String s) {
+        return isTMLCPCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+    }
+
+    public boolean isTMLCPCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof TMLCPPanel);
+    }
+
+
+
+
+    // IOD, SD
+
+    public boolean isSDCreated(int index, String s) {
+        return isSDCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+    }
+
+    public boolean isIODCreated(int index, String s) {
+        return isIODCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+    }
+
+    public boolean isProActiveSMDCreated(int index, String s) {
+        return isProActiveSMDCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+    }
+
+    public boolean isSDCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof ui.sd.SequenceDiagramPanel);
+    }
+
+    public boolean isSDZVCreated(int index, String s) {
+        return isSDZVCreated(((TURTLEPanel) (tabs.elementAt(index))), s);
+    }
+
+    public boolean isSDZVCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof ui.sd2.SequenceDiagramPanel);
+    }
+
+    public boolean isUseCaseDiagramCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof UseCaseDiagramPanel);
+    }
+
+    public boolean isAvatarCDCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof AvatarCDPanel);
+    }
+
+    public boolean isAvatarADCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof AvatarADPanel);
+    }
+
+    public boolean isIODCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof InteractionOverviewDiagramPanel);
+    }
+
+    public boolean isProActiveSMDCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof ProactiveSMDPanel);
+    }
+
+    public boolean openSequenceDiagram(String s) {
+        int index = getCurrentJTabbedPane().indexOfTab(s);
+        if (index > -1) {
+            getCurrentJTabbedPane().setSelectedIndex(index);
+            return true;
+        }
+        return false;
+    }
+
+    public boolean openSequenceDiagramZV(String s) {
+        int index = getCurrentJTabbedPane().indexOfTab(s);
+        if (index > -1) {
+            getCurrentJTabbedPane().setSelectedIndex(index);
+            return true;
+        }
+        return false;
+    }
+
+    public boolean openIODiagram(String s) {
+        int index = getCurrentJTabbedPane().indexOfTab(s);
+        if (index > -1) {
+            getCurrentJTabbedPane().setSelectedIndex(index);
+            return true;
+        }
+        return false;
+    }
+
+    // TMLCP
+    public boolean openTMLCPSequenceDiagram(String s) {
+        int index = getCurrentJTabbedPane().indexOfTab(s);
+        if (index > -1) {
+            getCurrentJTabbedPane().setSelectedIndex(index);
+            return true;
+        }
+        return false;
+    }
+
+    public boolean openTMLCPDiagram(String s) {
+        int index = getCurrentJTabbedPane().indexOfTab(s);
+        if (index > -1) {
+            getCurrentJTabbedPane().setSelectedIndex(index);
+            return true;
+        }
+        return false;
+    }
+
+
+    public boolean createTMLCPSequenceDiagram(int index, String s) {
+        return createTMLCPSequenceDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+    }
+
+    public boolean createTMLCPSequenceDiagram(TURTLEPanel tp, String s) {
+        if(isSDCreated(tp, s)) {
+            return false;
+        }
+
+        if (!(tp instanceof TMLCommunicationPatternPanel) ) {
+            return false;
+        }
+
+
+        ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s);
+
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createUniqueTMLCPSequenceDiagram(TURTLEPanel tp, String s) {
+        int i;
+        for(i=0; i<1000; i++) {
+            if(!isTMLCPSDCreated(tp, s+i)) {
+                break;
+            }
+        }
+
+        ((TMLCommunicationPatternPanel)tp).addCPSequenceDiagram(s+i);
+
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createTMLCPDiagram(int index, String s) {
+        return createTMLCPDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+    }
+
+    public boolean createTMLCPDiagram(TURTLEPanel tp, String s) {
+        if(isTMLCPCreated(tp, s)) {
+            return false;
+        }
+
+        if (!(tp instanceof TMLCommunicationPatternPanel)) {
+            return false;
+        }
+
+        ((TMLCommunicationPatternPanel)tp).addCPDiagram(s);
+        setPanelMode();
+        return true;
+    }
+
+    // End of TMLCP
+
+
+    public ui.sd.SequenceDiagramPanel getSequenceDiagramPanel(int index, String s) {
+        //TraceManager.addDev("Searching for " + s);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getSequenceDiagramPanel(tp, s);
+    }
+
+
+    public ui.sd2.SequenceDiagramPanel getSequenceDiagramPanelZV(int index, String s) {
+        //TraceManager.addDev("Searching for " + s);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getSequenceDiagramPanelZV(tp, s);
+    }
+
+
+    public AttackTreeDiagramPanel getAttackTreeDiagramPanel(int index, int indexTab, String s) {
+        //TraceManager.addDev("Searching for " + s);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getAttackTreeDiagramPanel(tp, indexTab, s);
+    }
+
+    public AttackTreeDiagramPanel getAttackTreeDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (AttackTreeDiagramPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+        /*for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
           if (tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
           if (tp.panelAt(i) instanceof AttackTreeDiagramPanel)
           return  (AttackTreeDiagramPanel)(tp.panelAt(i));
           }
           }
           return null;*/
-	}
-
-
-	public TMLCPPanel getTMLCPDiagramPanel(int index, String s) {
-		//TraceManager.addDev("Searching for " + s);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getTMLCPDiagramPanel(tp, s);
-	}
-
-	public TMLCPPanel getTMLCPDiagramPanel(TURTLEPanel tp, String s) {
-		for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				if (tp.panelAt(i) instanceof TMLCPPanel)
-					return  (TMLCPPanel)(tp.panelAt(i));
-			}
-		}
-		return null;
-	}
-
-	public TMLSDPanel getTMLCPSDDiagramPanel(int index, String s) {
-		//TraceManager.addDev("Searching for " + s);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getTMLCPSDDiagramPanel(tp, s);
-	}
-
-	public TMLSDPanel getTMLCPSDDiagramPanel(TURTLEPanel tp, String s) {
-		for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				if (tp.panelAt(i) instanceof TMLSDPanel)
-					return  (TMLSDPanel)(tp.panelAt(i));
-			}
-		}
-		return null;
-	}
-
-	public InteractionOverviewDiagramPanel getIODiagramPanel(int index, String s) {
-		//TraceManager.addDev("Searching for " + s);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getIODiagramPanel(tp, s);
-	}
-
-	public ui.sd.SequenceDiagramPanel getSequenceDiagramPanel(TURTLEPanel tp, String s) {
-		for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				if (tp.panelAt(i) instanceof ui.sd.SequenceDiagramPanel)
-					return  (ui.sd.SequenceDiagramPanel)(tp.panelAt(i));
-			}
-		}
-		return null;
-	}
-
-	public ui.sd2.SequenceDiagramPanel getSequenceDiagramPanelZV(TURTLEPanel tp, String s) {
-		for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				if (tp.panelAt(i) instanceof ui.sd2.SequenceDiagramPanel)
-					return  (ui.sd2.SequenceDiagramPanel)(tp.panelAt(i));
-			}
-		}
-		return null;
-	}
-
-	public InteractionOverviewDiagramPanel getIODiagramPanel(TURTLEPanel tp, String s) {
-		for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				if (tp.panelAt(i) instanceof InteractionOverviewDiagramPanel)
-					return  (InteractionOverviewDiagramPanel)(tp.panelAt(i));
-			}
-		}
-		return null;
-	}
-
-	public UseCaseDiagramPanel getUseCaseDiagramPanel(int index, int indexTab, String s) {
-		//TraceManager.addDev("Searching for " + s + " at index =" + index);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getUseCaseDiagramPanel(tp, indexTab, s);
-	}
-
-	public UseCaseDiagramPanel getUseCaseDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (UseCaseDiagramPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-	public boolean createSequenceDiagram(int index, String s) {
-		return createSequenceDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createSequenceDiagram(TURTLEPanel tp, String s) {
-		if(isSDCreated(tp, s)) {
-			return false;
-		}
-
-		if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
-			return false;
-		}
-
-		if (tp instanceof AnalysisPanel) {
-			((AnalysisPanel)tp).addSequenceDiagram(s);
-		} else if (tp instanceof AvatarAnalysisPanel) {
-			((AvatarAnalysisPanel)tp).addSequenceDiagram(s);
-		}
-		setPanelMode();
-		return true;
-	}
-	public boolean createSequenceDiagramZV(int index, String s) {
-		return createSequenceDiagramZV((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createSequenceDiagramZV(TURTLEPanel tp, String s) {
-		if(isSDCreated(tp, s)) {
-			return false;
-		}
-
-		if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
-			return false;
-		}
-
-		if (tp instanceof AnalysisPanel) {
-			((AnalysisPanel)tp).addSequenceDiagramZV(s);
-		} else if (tp instanceof AvatarAnalysisPanel) {
-			((AvatarAnalysisPanel)tp).addSequenceDiagramZV(s);
-		}
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createUniqueSequenceDiagram(TURTLEPanel tp, String s) {
-		int i;
-		for(i=0; i<1000; i++) {
-			if(!isSDCreated(tp, s+i)) {
-				break;
-			}
-		}
-
-		if (tp instanceof AnalysisPanel) {
-			((AnalysisPanel)tp).addSequenceDiagram(s+i);
-		} else if (tp instanceof AvatarAnalysisPanel) {
-			((AvatarAnalysisPanel)tp).addSequenceDiagram(s+i);
-		}
-
-		setPanelMode();
-		return true;
-	}
-
-
-	public boolean createUniqueSequenceDiagramZV(TURTLEPanel tp, String s) {
-		int i;
-		for(i=0; i<1000; i++) {
-			if(!isSDCreated(tp, s+i)) {
-				break;
-			}
-		}
-
-		if (tp instanceof AnalysisPanel) {
-			((AnalysisPanel)tp).addSequenceDiagramZV(s+i);
-		} else if (tp instanceof AvatarAnalysisPanel) {
-			((AvatarAnalysisPanel)tp).addSequenceDiagramZV(s+i);
-		}
-
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createSequenceDiagramFromUCD(TURTLEPanel tp, String s, UseCaseDiagramPanel _ucdp) {
-		if (!createUniqueSequenceDiagramZV(tp, s)) {
-			return false;
-		}
-
-		if (! ((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
-			return false;
-		}
-
-		if (tp instanceof AnalysisPanel) {
-			((AnalysisPanel)tp).addInstancesToLastSD(_ucdp);
-		} else if (tp instanceof AvatarAnalysisPanel) {
-			((AvatarAnalysisPanel)tp).addInstancesToLastSD(_ucdp);
-		}
-
-		return true;
-	}
-
-
-
-	public boolean createIODiagram(int index, String s) {
-		return createIODiagram((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createIODiagram(TURTLEPanel tp, String s) {
-		if(isIODCreated(tp, s)) {
-			return false;
-		}
-
-		if (!(tp instanceof AnalysisPanel)) {
-			return false;
-		}
-
-		((AnalysisPanel)tp).addIODiagram(s);
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createUseCaseDiagram(int index, String s) {
-		return createUseCaseDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
-	}
-
-	public boolean createUniqueUseCaseDiagram(TURTLEPanel tp, String s) {
-		if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel)))  {
-			return false;
-		}
-
-		int i;
-		for(i=0; i<1000; i++) {
-			if(!isUseCaseDiagramCreated(tp, s + " " + i)) {
-				break;
-			}
-		}
-
-		if (tp instanceof AnalysisPanel) {
-			((AnalysisPanel)tp).addUseCaseDiagram(s + " " + i);
-		} else {
-			((AvatarAnalysisPanel)tp).addUseCaseDiagram(s + " " + i);
-		}
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createUseCaseDiagram(TURTLEPanel tp, String s) {
-		if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel)))  {
-			return false;
-		}
-
-		if (tp instanceof AnalysisPanel) {
-			((AnalysisPanel)tp).addUseCaseDiagram(s);
-		} else {
-			((AvatarAnalysisPanel)tp).addUseCaseDiagram(s);
-		}
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createAvatarCD(int index, String s) {
-		return createAvatarCD((TURTLEPanel) (tabs.elementAt(index)), s);
-	}
-
-	public boolean createUniqueAvatarCD(TURTLEPanel tp, String s) {
-		if (!(tp instanceof AvatarAnalysisPanel))  {
-			return false;
-		}
-
-		int i;
-		for(i=0; i<1000; i++) {
-			if(!isAvatarCDCreated(tp, s + " " + i)) {
-				break;
-			}
-		}
-
-		((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s + " " + i);
-
-
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createAvatarCD(TURTLEPanel tp, String s) {
-		if (!(tp instanceof AvatarAnalysisPanel))  {
-			return false;
-		}
-
-
-		((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s);
-
-
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createAvatarAD(int index, String s) {
-		return createAvatarAD((TURTLEPanel) (tabs.elementAt(index)), s);
-	}
-
-	public boolean createUniqueAvatarAD(TURTLEPanel tp, String s) {
-		if (!(tp instanceof AvatarAnalysisPanel)) {
-			return false;
-		}
-
-		int i;
-		for(i=0; i<1000; i++) {
-			if(!isAvatarADCreated(tp, s + " " + i)) {
-				break;
-			}
-		}
-
-		((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s + " " + i);
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createAvatarAD(TURTLEPanel tp, String s) {
-		if (!(tp instanceof AvatarAnalysisPanel)) {
-			return false;
-		}
-
-
-		((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s);
-
-		setPanelMode();
-		return true;
-	}
-
-	//Changed by Solange from public boolean...
-	public String createProActiveSMD(int index, String s) {
-		//Adde by Solange String name at  the beginning
-		String name=createProActiveSMD((TURTLEPanel)(tabs.elementAt(index)), s);
-		return(name); //changed from return true
-	}
-
-	//Return changed by Solange from boolean to String
-	public String createProActiveSMD(TURTLEPanel tp, String s) {
-
-		//Added by Solange. It fills the lists of components, interfaces, etc
-		TURTLEPanel tp2 = getCurrentTURTLEPanel();
-		gtm.generateLists((ProactiveDesignPanel)tp2);
-		//
-
-		if (!(tp instanceof ProactiveDesignPanel)) {
-			return null; //Changed by Solange from return false
-		}
-
-		s=((ProactiveDesignPanel)tp).addSMD(s);
-		//Added by Solange
-		//  ProactiveSMDPanel temp=((ProactiveDesignPanel)tp).getSMDPanel(s);
-		//Added by Solange
-		//And removed by Emil
+    }
+
+
+    public TMLCPPanel getTMLCPDiagramPanel(int index, String s) {
+        //TraceManager.addDev("Searching for " + s);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getTMLCPDiagramPanel(tp, s);
+    }
+
+    public TMLCPPanel getTMLCPDiagramPanel(TURTLEPanel tp, String s) {
+        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                if (tp.panelAt(i) instanceof TMLCPPanel)
+                    return  (TMLCPPanel)(tp.panelAt(i));
+            }
+        }
+        return null;
+    }
+
+    public TMLSDPanel getTMLCPSDDiagramPanel(int index, String s) {
+        //TraceManager.addDev("Searching for " + s);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getTMLCPSDDiagramPanel(tp, s);
+    }
+
+    public TMLSDPanel getTMLCPSDDiagramPanel(TURTLEPanel tp, String s) {
+        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                if (tp.panelAt(i) instanceof TMLSDPanel)
+                    return  (TMLSDPanel)(tp.panelAt(i));
+            }
+        }
+        return null;
+    }
+
+    public InteractionOverviewDiagramPanel getIODiagramPanel(int index, String s) {
+        //TraceManager.addDev("Searching for " + s);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getIODiagramPanel(tp, s);
+    }
+
+    public ui.sd.SequenceDiagramPanel getSequenceDiagramPanel(TURTLEPanel tp, String s) {
+        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                if (tp.panelAt(i) instanceof ui.sd.SequenceDiagramPanel)
+                    return  (ui.sd.SequenceDiagramPanel)(tp.panelAt(i));
+            }
+        }
+        return null;
+    }
+
+    public ui.sd2.SequenceDiagramPanel getSequenceDiagramPanelZV(TURTLEPanel tp, String s) {
+        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                if (tp.panelAt(i) instanceof ui.sd2.SequenceDiagramPanel)
+                    return  (ui.sd2.SequenceDiagramPanel)(tp.panelAt(i));
+            }
+        }
+        return null;
+    }
+
+    public InteractionOverviewDiagramPanel getIODiagramPanel(TURTLEPanel tp, String s) {
+        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                if (tp.panelAt(i) instanceof InteractionOverviewDiagramPanel)
+                    return  (InteractionOverviewDiagramPanel)(tp.panelAt(i));
+            }
+        }
+        return null;
+    }
+
+    public UseCaseDiagramPanel getUseCaseDiagramPanel(int index, int indexTab, String s) {
+        //TraceManager.addDev("Searching for " + s + " at index =" + index);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getUseCaseDiagramPanel(tp, indexTab, s);
+    }
+
+    public UseCaseDiagramPanel getUseCaseDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (UseCaseDiagramPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+    public boolean createSequenceDiagram(int index, String s) {
+        return createSequenceDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createSequenceDiagram(TURTLEPanel tp, String s) {
+        if(isSDCreated(tp, s)) {
+            return false;
+        }
+
+        if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
+            return false;
+        }
+
+        if (tp instanceof AnalysisPanel) {
+            ((AnalysisPanel)tp).addSequenceDiagram(s);
+        } else if (tp instanceof AvatarAnalysisPanel) {
+            ((AvatarAnalysisPanel)tp).addSequenceDiagram(s);
+        }
+        setPanelMode();
+        return true;
+    }
+    public boolean createSequenceDiagramZV(int index, String s) {
+        return createSequenceDiagramZV((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createSequenceDiagramZV(TURTLEPanel tp, String s) {
+        if(isSDCreated(tp, s)) {
+            return false;
+        }
+
+        if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
+            return false;
+        }
+
+        if (tp instanceof AnalysisPanel) {
+            ((AnalysisPanel)tp).addSequenceDiagramZV(s);
+        } else if (tp instanceof AvatarAnalysisPanel) {
+            ((AvatarAnalysisPanel)tp).addSequenceDiagramZV(s);
+        }
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createUniqueSequenceDiagram(TURTLEPanel tp, String s) {
+        int i;
+        for(i=0; i<1000; i++) {
+            if(!isSDCreated(tp, s+i)) {
+                break;
+            }
+        }
+
+        if (tp instanceof AnalysisPanel) {
+            ((AnalysisPanel)tp).addSequenceDiagram(s+i);
+        } else if (tp instanceof AvatarAnalysisPanel) {
+            ((AvatarAnalysisPanel)tp).addSequenceDiagram(s+i);
+        }
+
+        setPanelMode();
+        return true;
+    }
+
+
+    public boolean createUniqueSequenceDiagramZV(TURTLEPanel tp, String s) {
+        int i;
+        for(i=0; i<1000; i++) {
+            if(!isSDCreated(tp, s+i)) {
+                break;
+            }
+        }
+
+        if (tp instanceof AnalysisPanel) {
+            ((AnalysisPanel)tp).addSequenceDiagramZV(s+i);
+        } else if (tp instanceof AvatarAnalysisPanel) {
+            ((AvatarAnalysisPanel)tp).addSequenceDiagramZV(s+i);
+        }
+
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createSequenceDiagramFromUCD(TURTLEPanel tp, String s, UseCaseDiagramPanel _ucdp) {
+        if (!createUniqueSequenceDiagramZV(tp, s)) {
+            return false;
+        }
+
+        if (! ((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel))) {
+            return false;
+        }
+
+        if (tp instanceof AnalysisPanel) {
+            ((AnalysisPanel)tp).addInstancesToLastSD(_ucdp);
+        } else if (tp instanceof AvatarAnalysisPanel) {
+            ((AvatarAnalysisPanel)tp).addInstancesToLastSD(_ucdp);
+        }
+
+        return true;
+    }
+
+
+
+    public boolean createIODiagram(int index, String s) {
+        return createIODiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createIODiagram(TURTLEPanel tp, String s) {
+        if(isIODCreated(tp, s)) {
+            return false;
+        }
+
+        if (!(tp instanceof AnalysisPanel)) {
+            return false;
+        }
+
+        ((AnalysisPanel)tp).addIODiagram(s);
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createUseCaseDiagram(int index, String s) {
+        return createUseCaseDiagram((TURTLEPanel) (tabs.elementAt(index)), s);
+    }
+
+    public boolean createUniqueUseCaseDiagram(TURTLEPanel tp, String s) {
+        if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel)))  {
+            return false;
+        }
+
+        int i;
+        for(i=0; i<1000; i++) {
+            if(!isUseCaseDiagramCreated(tp, s + " " + i)) {
+                break;
+            }
+        }
+
+        if (tp instanceof AnalysisPanel) {
+            ((AnalysisPanel)tp).addUseCaseDiagram(s + " " + i);
+        } else {
+            ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s + " " + i);
+        }
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createUseCaseDiagram(TURTLEPanel tp, String s) {
+        if (!((tp instanceof AnalysisPanel) || (tp instanceof AvatarAnalysisPanel)))  {
+            return false;
+        }
+
+        if (tp instanceof AnalysisPanel) {
+            ((AnalysisPanel)tp).addUseCaseDiagram(s);
+        } else {
+            ((AvatarAnalysisPanel)tp).addUseCaseDiagram(s);
+        }
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createAvatarCD(int index, String s) {
+        return createAvatarCD((TURTLEPanel) (tabs.elementAt(index)), s);
+    }
+
+    public boolean createUniqueAvatarCD(TURTLEPanel tp, String s) {
+        if (!(tp instanceof AvatarAnalysisPanel))  {
+            return false;
+        }
+
+        int i;
+        for(i=0; i<1000; i++) {
+            if(!isAvatarCDCreated(tp, s + " " + i)) {
+                break;
+            }
+        }
+
+        ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s + " " + i);
+
+
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createAvatarCD(TURTLEPanel tp, String s) {
+        if (!(tp instanceof AvatarAnalysisPanel))  {
+            return false;
+        }
+
+
+        ((AvatarAnalysisPanel)tp).addAvatarContextDiagram(s);
+
+
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createAvatarAD(int index, String s) {
+        return createAvatarAD((TURTLEPanel) (tabs.elementAt(index)), s);
+    }
+
+    public boolean createUniqueAvatarAD(TURTLEPanel tp, String s) {
+        if (!(tp instanceof AvatarAnalysisPanel)) {
+            return false;
+        }
+
+        int i;
+        for(i=0; i<1000; i++) {
+            if(!isAvatarADCreated(tp, s + " " + i)) {
+                break;
+            }
+        }
+
+        ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s + " " + i);
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createAvatarAD(TURTLEPanel tp, String s) {
+        if (!(tp instanceof AvatarAnalysisPanel)) {
+            return false;
+        }
+
+
+        ((AvatarAnalysisPanel)tp).addAvatarActivityDiagram(s);
+
+        setPanelMode();
+        return true;
+    }
+
+    //Changed by Solange from public boolean...
+    public String createProActiveSMD(int index, String s) {
+        //Adde by Solange String name at  the beginning
+        String name=createProActiveSMD((TURTLEPanel)(tabs.elementAt(index)), s);
+        return(name); //changed from return true
+    }
+
+    //Return changed by Solange from boolean to String
+    public String createProActiveSMD(TURTLEPanel tp, String s) {
+
+        //Added by Solange. It fills the lists of components, interfaces, etc
+        TURTLEPanel tp2 = getCurrentTURTLEPanel();
+        gtm.generateLists((ProactiveDesignPanel)tp2);
+        //
+
+        if (!(tp instanceof ProactiveDesignPanel)) {
+            return null; //Changed by Solange from return false
+        }
+
+        s=((ProactiveDesignPanel)tp).addSMD(s);
+        //Added by Solange
+        //  ProactiveSMDPanel temp=((ProactiveDesignPanel)tp).getSMDPanel(s);
+        //Added by Solange
+        //And removed by Emil
 
-		/*
+        /*
           LinkedList cmps=gtm.gpdtemp.getProCSDComponentsList();
           for (int i=0;i<cmps.size();i++)
           {
@@ -6254,2011 +6272,2013 @@ public  class MainGUI implements ActionListener, WindowListener, KeyListener, Pe
           }
           }
           }
-		 */
-		//
-		setPanelMode();
-		return(s); //Changes by Solange from return true
-	}
-
-	public boolean createAvatarRD(int index, String s) {
-		return createAvatarRD((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createAvatarRD(TURTLEPanel tp, String s) {
-		if (!(tp instanceof AvatarRequirementPanel)) {
-			return false;
-		}
-
-		((AvatarRequirementPanel)tp).addAvatarRD(s);
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createAvatarMAD(int index, String s) {
-		return createAvatarMAD((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createAvatarMAD(TURTLEPanel tp, String s) {
-		if (!(tp instanceof AvatarMADsPanel)) {
-			return false;
-		}
-
-		((AvatarMADsPanel)tp).addAvatarMADPanel(s);
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createAvatarPD(int index, String s) {
-		return createAvatarPD((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createAvatarPD(TURTLEPanel tp, String s) {
-		if (!(tp instanceof AvatarRequirementPanel)) {
-			return false;
-		}
-
-		((AvatarRequirementPanel)tp).addAvatarPD(s);
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createADDDiagram(int index, String s) {
-		return createADDDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createADDDiagram(TURTLEPanel tp, String s) {
-		if (!(tp instanceof ADDPanel)) {
-			return false;
-		}
-
-		((ADDPanel)tp).addDeploymentPanelDiagram(s);
-		setPanelMode();
-		return true;
-	}
-
-
-	public boolean isRequirementCreated(int index, String s) {
-		return isRequirementCreated(((TURTLEPanel)(tabs.elementAt(index))), s);
-	}
-
-	public boolean isRequirementCreated(TURTLEPanel tp, String s) {
-		int index = tp.tabbedPane.indexOfTab(s);
-		if (index == -1) {
-			return false;
-		}
-		return (tp.panelAt(index) instanceof RequirementDiagramPanel);
-	}
-
-	public boolean createRequirementDiagram(int index, String s) {
-		return createRequirementDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createRequirementDiagram(TURTLEPanel tp, String s) {
-		if (!(tp instanceof RequirementPanel)) {
-			return false;
-		}
-
-		((RequirementPanel)tp).addRequirementDiagram(s);
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createAttackTreeDiagram(int index, String s) {
-		return createAttackTreeDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createAttackTreeDiagram(TURTLEPanel tp, String s) {
-		if (!(tp instanceof AttackTreePanel)) {
-			return false;
-		}
-
-		((AttackTreePanel)tp).addAttackTreeDiagram(s);
-		setPanelMode();
-		return true;
-	}
-
-	public boolean createEBRDD(int index, String s) {
-		return createEBRDD((TURTLEPanel)(tabs.elementAt(index)), s);
-	}
-
-	public boolean createEBRDD(TURTLEPanel tp, String s) {
-		if (!(tp instanceof RequirementPanel)) {
-			return false;
-		}
-
-		((RequirementPanel)tp).addEBRDD(s);
-		setPanelMode();
-		return true;
-	}
-
-	public void generateOntologyForCurrentDiagram() {
-		TraceManager.addDev("Ontology for current diagram");
-		try {
-			TURTLEPanel tp = getCurrentTURTLEPanel();
-			String modeling = gtm.makeOneDiagramXMLFromGraphicalModel(tp, tp.tabbedPane.getSelectedIndex());
-			TraceManager.addDev("Model made: " + modeling);
-		} catch (Exception e) {
-		}
-
-	}
-
-	public void generateOntologyForCurrentSetOfDiagrams() {
-		TraceManager.addDev("Ontology for current set of diagrams");
-		try {
-			String modeling = gtm.makeXMLFromTurtleModeling(mainTabbedPane.getSelectedIndex());
-			TraceManager.addDev("Model made: " + modeling);
-		} catch (Exception e) {
-		}
-
-	}
-
-	public void generateOntologyForAllDiagrams() {
-		TraceManager.addDev("Ontology for all diagrams");
-		try {
-			/*String modeling =*/ gtm.makeXMLFromTurtleModeling(-1);
-			TraceManager.addDev("Model made");
-		} catch (Exception e) {
-		}
-
-	}
-
-
-
-	public AvatarRDPanel getAvatarRDPanel(int index, int indexTab, String s) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getAvatarRDPanel(tp, indexTab, s);
-	}
-
-	public AvatarRDPanel getAvatarRDPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (AvatarRDPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-	public AvatarMADPanel getAvatarMADPanel(int index, int indexTab, String s) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getAvatarMADPanel(tp, indexTab, s);
-	}
-
-	public AvatarMADPanel getAvatarMADPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (AvatarMADPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-	public AvatarPDPanel getAvatarPDPanel(int index, int indexTab, String s) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getAvatarPDPanel(tp, indexTab, s);
-	}
-
-	public ADDDiagramPanel getAvatarADDPanel(int index, int indexTab, String s) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getAvatarADDPanel(tp, indexTab, s);
-	}
-
-	public ADDDiagramPanel getAvatarADDPanelByIndex(int index, int indexTab) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getAvatarADDPanelByIndex(tp, indexTab);
-	}
-
-
-	public AvatarPDPanel getAvatarPDPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (AvatarPDPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-	public ADDDiagramPanel getAvatarADDPanel(TURTLEPanel tp, int indexTab, String s) {
-		TraceManager.addDev("index=" + indexTab + " s=" + s + "title=" +tp.tabbedPane.getTitleAt(indexTab));
-
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (ADDDiagramPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-	public ADDDiagramPanel getAvatarADDPanelByIndex(TURTLEPanel tp, int indexTab) {
-		//TraceManager.addDev("index=" + indexTab + " s=" + s + "title=" +tp.tabbedPane.getTitleAt(indexTab));
-
-		//if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-		return (ADDDiagramPanel)(tp.panelAt(indexTab));
-		//}
-
-	}
-
-	public AvatarCDPanel getAvatarCDPanel(int index, int indexTab, String s) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getAvatarCDPanel(tp, indexTab, s);
-	}
-
-
-	public AvatarCDPanel getAvatarCDPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (AvatarCDPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-	public AvatarADPanel getAvatarADPanel(int index, int indexTab, String s) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getAvatarADPanel(tp, indexTab, s);
-	}
-
-
-	public AvatarADPanel getAvatarADPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (AvatarADPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-	public RequirementDiagramPanel getRequirementDiagramPanel(int index, String s) {
-		//TraceManager.addDev("Searching for " + s);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getRequirementDiagramPanel(tp, s);
-	}
-
-	public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, String s) {
-		for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				if (tp.panelAt(i) instanceof RequirementDiagramPanel)
-					return  (RequirementDiagramPanel)(tp.panelAt(i));
-			}
-		}
-		return null;
-	}
-
-	public RequirementDiagramPanel getRequirementDiagramPanel(int index, int indexTab, String s) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getRequirementDiagramPanel(tp, indexTab, s);
-	}
-
-
-	public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (RequirementDiagramPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-	public EBRDDPanel getEBRDDPanel(int index, String s) {
-		//TraceManager.addDev("Searching for " + s);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getEBRDDPanel(tp, s);
-	}
-
-	public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, String s) {
-		for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
-			if (tp.tabbedPane.getTitleAt(i).equals(s)) {
-				if (tp.panelAt(i) instanceof EBRDDPanel)
-					return  (EBRDDPanel)(tp.panelAt(i));
-			}
-		}
-		return null;
-	}
-
-	public EBRDDPanel getEBRDDPanel(int index, int indexTab, String s) {
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-		return getEBRDDPanel(tp, indexTab, s);
-	}
-
-
-	public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, int indexTab, String s) {
-		if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
-			return (EBRDDPanel)(tp.panelAt(indexTab));
-		}
-		return null;
-	}
-
-
-	public void alignInstances() {
-		//TraceManager.addDev("Align instances");
-		if (getCurrentTDiagramPanel() instanceof ui.sd.SequenceDiagramPanel) {
-			((ui.sd.SequenceDiagramPanel)(getCurrentTDiagramPanel())).alignInstances();
-			changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
-			getCurrentTDiagramPanel().repaint();
-		}
-
-		if (getCurrentTDiagramPanel() instanceof ui.sd2.SequenceDiagramPanel) {
-			((ui.sd2.SequenceDiagramPanel)(getCurrentTDiagramPanel())).alignInstances();
-			changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
-			getCurrentTDiagramPanel().repaint();
-		}
-
-		if (getCurrentTDiagramPanel() instanceof TMLSDPanel) {
-			((TMLSDPanel)(getCurrentTDiagramPanel())).alignInstances();
-			changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
-			getCurrentTDiagramPanel().repaint();
-		}
-	}
-
-
-	public void alignPartitions() {
-		//TraceManager.addDev("Align instances");
-		if (getCurrentTDiagramPanel() instanceof AvatarADPanel) {
-			((AvatarADPanel)(getCurrentTDiagramPanel())).alignPartitions();
-			changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
-			getCurrentTDiagramPanel().repaint();
-		}
-	}
-
-	public void enhanceDiagram() {
-		getCurrentTDiagramPanel().enhance();
-	}
-
-	public JTabbedPane getCurrentJTabbedPane() {
-		return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tabbedPane;
-	}
-
-	public int getCurrentSelectedIndex() {
-		return mainTabbedPane.getSelectedIndex();
-	}
-
-
-	public TDiagramPanel getCurrentTDiagramPanel() {
-		try {
-			TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()));
-			return (TDiagramPanel)(tp.panels.elementAt(tp.tabbedPane.getSelectedIndex()));
-		} catch (Exception e) {
-			return null;
-		}
-	}
-
-	public TDiagramPanel getCurrentMainTDiagramPanel() {
-		return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp;
-	}
-
-	public void selectDummyTab (int index) {
-		if (this.tabs.size () < index+1)
-			return;
-		this.dummySelectedTab = (TURTLEPanel) this.tabs.elementAt (index);
-	}
-
-	public void forgetDummyTab () {
-		this.dummySelectedTab = null;
-	}
-
-	public TURTLEPanel getCurrentTURTLEPanel() {
-		if (this.dummySelectedTab != null)
-			return this.dummySelectedTab;
-
-		if (tabs.size() == 0) {
-			return null;
-		} else {
-			return (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()));
-		}
-	}
-
-
-	public void reinitCountOfPanels() {
-		int i, j;
-		TURTLEPanel tp;
-		for(i = 0; i<mainTabbedPane.getTabCount(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			for(j=0; j<tp.tabbedPane.getTabCount(); j++) {
-				((TDiagramPanel)(tp.panels.elementAt(j))).count = 0;
-			}
-		}
-	}
-
-	public void setPanelMode() {
-		int index;
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		index = tp.tabbedPane.getSelectedIndex();
-
-		if (index < tp.panels.size() -1) {
-			setMode(FORWARD_DIAG);
-		} else {
-			setMode(NO_FORWARD_DIAG);
-		}
-
-		if (index > 0) {
-			setMode(BACKWARD_DIAG);
-		} else {
-			setMode(NO_BACKWARD_DIAG);
-		}
-
-		setMode(METHO_CHANGED);
-
-	}
-
-	public void paneMADAction(ChangeEvent e) {
-		//TraceManager.addDev("Pane design action size=" + tabs.size());
-		try {
-
-			TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-			//TraceManager.addDev("Pane design action 1");
-			if (activetdp != null) {
-				activetdp.activateActions(false);
-				unactivateDrawing();
-				activetdp.stopAddingConnector();
-			}
-			//TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-			tdp1.activateActions(true);
-			activetdp = tdp1;
-
-			setEditMode();
-			setPanelMode();
-			//TraceManager.addDev("Pane design action 3");
-
-			// activate the   drawing   of the right pane
-			basicActivateDrawing();
-
-		} catch (Exception ex) {
-			//TraceManager.addDev("Exception pane design action");
-		}
-	}
-
-	public void paneDesignAction(ChangeEvent e) {
-		//TraceManager.addDev("Pane design action size=" + tabs.size());
-		try {
-
-			TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-			//TraceManager.addDev("Pane design action 1");
-			if (activetdp != null) {
-				activetdp.activateActions(false);
-				unactivateDrawing();
-				activetdp.stopAddingConnector();
-			}
-			//TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-			tdp1.activateActions(true);
-			activetdp = tdp1;
-
-			setEditMode();
-			setPanelMode();
-			//TraceManager.addDev("Pane design action 3");
-
-			// activate the   drawing   of the right pane
-			basicActivateDrawing();
-
-		} catch (Exception ex) {
-			//TraceManager.addDev("Exception pane design action");
-		}
-	}
-
-	public void paneDiplodocusMethodologyAction(ChangeEvent e) {
-		//TraceManager.addDev("Pane design action size=" + tabs.size());
-		try {
-
-			TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-			//TraceManager.addDev("Pane design action 1");
-			if (activetdp != null) {
-
-				activetdp.activateActions(false);
-				unactivateDrawing();
-				activetdp.stopAddingConnector();
-			}
-			//TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-			tdp1.activateActions(true);
-			activetdp = tdp1;
-
-			setEditMode();
-			setPanelMode();
-			//TraceManager.addDev("Pane design action 3");
-
-			// activate the   drawing   of the right pane
-			basicActivateDrawing();
-
-		} catch (Exception ex) {
-			//TraceManager.addDev("Exception pane design action");
-		}
-	}
-
-	public void paneAvatarMethodologyAction(ChangeEvent e) {
-		//TraceManager.addDev("Pane design action size=" + tabs.size());
-		try {
-
-			TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-			//TraceManager.addDev("Pane design action 1");
-			if (activetdp != null) {
-
-				activetdp.activateActions(false);
-				unactivateDrawing();
-				activetdp.stopAddingConnector();
-			}
-			//TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-			tdp1.activateActions(true);
-			activetdp = tdp1;
-
-			setEditMode();
-			setPanelMode();
-			//TraceManager.addDev("Pane design action 3");
-
-			// activate the   drawing   of the right pane
-			basicActivateDrawing();
-
-		} catch (Exception ex) {
-			//TraceManager.addDev("Exception pane design action");
-		}
-	}
-
-	public void paneAnalysisAction(ChangeEvent e) {
-		//TraceManager.addDev("Pane analysis action size=" + tabs.size());
-		try {
-
-			TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-			//TraceManager.addDev("Pane analysis action 1 on " + tdp1.getName());
-			if (activetdp != null) {
-				activetdp.activateActions(false);
-				unactivateDrawing();
-				activetdp.stopAddingConnector();
-			}
-			//TraceManager.addDev("Pane analysis action 2");
-			tdp1.activateActions(true);
-			activetdp = tdp1;
-
-			setEditMode();
-			setPanelMode();
-			//TraceManager.addDev("Pane analysis action 3");
-
-			// activate the   drawing   of the right pane
-			basicActivateDrawing();
-
-		} catch (Exception ex) {
-			//TraceManager.addDev("Exception pane analysis action");
-		}
-	}
-
-	public void paneDeployAction(ChangeEvent e) {
-		//TraceManager.addDev("Pane design action size=" + tabs.size());
-		try {
-
-			TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-			//TraceManager.addDev("Pane design action 1");
-			if (activetdp != null) {
-				activetdp.activateActions(false);
-				unactivateDrawing();
-				activetdp.stopAddingConnector();
-			}
-			//TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-			tdp1.activateActions(true);
-			activetdp = tdp1;
-
-			setEditMode();
-			setPanelMode();
-			//TraceManager.addDev("Pane design action 3");
-
-			// activate the   drawing   of the right pane
-			basicActivateDrawing();
-
-		} catch (Exception ex) {
-			//TraceManager.addDev("Exception pane design action");
-		}
-	}
-
-	public void paneRequirementAction(ChangeEvent e) {
-		try {
-
-			TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
-			//TraceManager.addDev("Pane design action 1");
-			if (activetdp != null) {
-				activetdp.activateActions(false);
-				unactivateDrawing();
-				activetdp.stopAddingConnector();
-			}
-			//TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
-			tdp1.activateActions(true);
-			activetdp = tdp1;
-
-			setEditMode();
-			setPanelMode();
-
-			// activate the   drawing   of the right pane
-			basicActivateDrawing();
-
-		} catch (Exception ex) {
-			//TraceManager.addDev("Exception pane design action");
-		}
-	}
-
-	// nameTab : array of strings not to be removed
-	public void removeAnalysisDiagrams(String [] nameTab) {
-		int i, j;
-		String value;
-		boolean found;
-
-		for(i=1; i<getCurrentJTabbedPane().getTabCount(); i++) {
-			value = getCurrentJTabbedPane().getTitleAt(i);
-			found = false;
-			for(j=0; j<nameTab.length; j++) {
-				if (nameTab[j] != null) {
-					if (nameTab[j].compareTo(value) ==0) {
-						found = true;
-						break;
-					}
-
-				}
-			}
-			if (!found) {
-				TraceManager.addDev("Removing" + getCurrentJTabbedPane().getTitleAt(i));
-				getCurrentJTabbedPane().remove(i);
-				getCurrentTURTLEPanel().removeElementAt(i);
-				i--;
-			}
-		}
-	}
-
-	public void renameTab(TDiagramPanel tdp) {
-		String value;
-		int index, index1;
-
-		index = getCurrentJTabbedPane().getSelectedIndex();
-		value = getCurrentJTabbedPane().getTitleAt(index);
-
-		//String s = (String)JOptionPane.showInputDialog(this, "Name of the diagram:", JOptionPane.QUESTION_MESSAGE);
-		String s = (String)JOptionPane.showInputDialog(frame, "Name of the diagram:", "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, value);
-
-		if ((s != null) && (s.length() > 0)){
-			// name already in use?
-			index1 = getCurrentJTabbedPane().indexOfTab(s);
-			/*if (methoMode == METHO_ANALYSIS) {
+        */
+        //
+        setPanelMode();
+        return(s); //Changes by Solange from return true
+    }
+
+    public boolean createAvatarRD(int index, String s) {
+        return createAvatarRD((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createAvatarRD(TURTLEPanel tp, String s) {
+        if (!(tp instanceof AvatarRequirementPanel)) {
+            return false;
+        }
+
+        ((AvatarRequirementPanel)tp).addAvatarRD(s);
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createAvatarMAD(int index, String s) {
+        return createAvatarMAD((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createAvatarMAD(TURTLEPanel tp, String s) {
+        if (!(tp instanceof AvatarMADsPanel)) {
+            return false;
+        }
+
+        ((AvatarMADsPanel)tp).addAvatarMADPanel(s);
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createAvatarPD(int index, String s) {
+        return createAvatarPD((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createAvatarPD(TURTLEPanel tp, String s) {
+        if (!(tp instanceof AvatarRequirementPanel)) {
+            return false;
+        }
+
+        ((AvatarRequirementPanel)tp).addAvatarPD(s);
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createADDDiagram(int index, String s) {
+        return createADDDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createADDDiagram(TURTLEPanel tp, String s) {
+        if (!(tp instanceof ADDPanel)) {
+            return false;
+        }
+
+        ((ADDPanel)tp).addDeploymentPanelDiagram(s);
+        setPanelMode();
+        return true;
+    }
+
+
+    public boolean isRequirementCreated(int index, String s) {
+        return isRequirementCreated(((TURTLEPanel)(tabs.elementAt(index))), s);
+    }
+
+    public boolean isRequirementCreated(TURTLEPanel tp, String s) {
+        int index = tp.tabbedPane.indexOfTab(s);
+        if (index == -1) {
+            return false;
+        }
+        return (tp.panelAt(index) instanceof RequirementDiagramPanel);
+    }
+
+    public boolean createRequirementDiagram(int index, String s) {
+        return createRequirementDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createRequirementDiagram(TURTLEPanel tp, String s) {
+        if (!(tp instanceof RequirementPanel)) {
+            return false;
+        }
+
+        ((RequirementPanel)tp).addRequirementDiagram(s);
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createAttackTreeDiagram(int index, String s) {
+        return createAttackTreeDiagram((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createAttackTreeDiagram(TURTLEPanel tp, String s) {
+        if (!(tp instanceof AttackTreePanel)) {
+            return false;
+        }
+
+        ((AttackTreePanel)tp).addAttackTreeDiagram(s);
+        setPanelMode();
+        return true;
+    }
+
+    public boolean createEBRDD(int index, String s) {
+        return createEBRDD((TURTLEPanel)(tabs.elementAt(index)), s);
+    }
+
+    public boolean createEBRDD(TURTLEPanel tp, String s) {
+        if (!(tp instanceof RequirementPanel)) {
+            return false;
+        }
+
+        ((RequirementPanel)tp).addEBRDD(s);
+        setPanelMode();
+        return true;
+    }
+
+    public void generateOntologyForCurrentDiagram() {
+        TraceManager.addDev("Ontology for current diagram");
+        try {
+            TURTLEPanel tp = getCurrentTURTLEPanel();
+            String modeling = gtm.makeOneDiagramXMLFromGraphicalModel(tp, tp.tabbedPane.getSelectedIndex());
+            TraceManager.addDev("Model made: " + modeling);
+        } catch (Exception e) {
+        }
+
+    }
+
+    public void generateOntologyForCurrentSetOfDiagrams() {
+        TraceManager.addDev("Ontology for current set of diagrams");
+        try {
+            String modeling = gtm.makeXMLFromTurtleModeling(mainTabbedPane.getSelectedIndex());
+            TraceManager.addDev("Model made: " + modeling);
+        } catch (Exception e) {
+        }
+
+    }
+
+    public void generateOntologyForAllDiagrams() {
+        TraceManager.addDev("Ontology for all diagrams");
+        try {
+            /*String modeling =*/ gtm.makeXMLFromTurtleModeling(-1);
+            TraceManager.addDev("Model made");
+        } catch (Exception e) {
+        }
+
+    }
+
+
+
+    public AvatarRDPanel getAvatarRDPanel(int index, int indexTab, String s) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getAvatarRDPanel(tp, indexTab, s);
+    }
+
+    public AvatarRDPanel getAvatarRDPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (AvatarRDPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+    public AvatarMADPanel getAvatarMADPanel(int index, int indexTab, String s) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getAvatarMADPanel(tp, indexTab, s);
+    }
+
+    public AvatarMADPanel getAvatarMADPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (AvatarMADPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+    public AvatarPDPanel getAvatarPDPanel(int index, int indexTab, String s) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getAvatarPDPanel(tp, indexTab, s);
+    }
+
+    public ADDDiagramPanel getAvatarADDPanel(int index, int indexTab, String s) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getAvatarADDPanel(tp, indexTab, s);
+    }
+
+    public ADDDiagramPanel getAvatarADDPanelByIndex(int index, int indexTab) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getAvatarADDPanelByIndex(tp, indexTab);
+    }
+
+
+    public AvatarPDPanel getAvatarPDPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (AvatarPDPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+    public ADDDiagramPanel getAvatarADDPanel(TURTLEPanel tp, int indexTab, String s) {
+        TraceManager.addDev("index=" + indexTab + " s=" + s + "title=" +tp.tabbedPane.getTitleAt(indexTab));
+
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (ADDDiagramPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+    public ADDDiagramPanel getAvatarADDPanelByIndex(TURTLEPanel tp, int indexTab) {
+        //TraceManager.addDev("index=" + indexTab + " s=" + s + "title=" +tp.tabbedPane.getTitleAt(indexTab));
+
+        //if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+        return (ADDDiagramPanel)(tp.panelAt(indexTab));
+        //}
+
+    }
+
+    public AvatarCDPanel getAvatarCDPanel(int index, int indexTab, String s) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getAvatarCDPanel(tp, indexTab, s);
+    }
+
+
+    public AvatarCDPanel getAvatarCDPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (AvatarCDPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+    public AvatarADPanel getAvatarADPanel(int index, int indexTab, String s) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getAvatarADPanel(tp, indexTab, s);
+    }
+
+
+    public AvatarADPanel getAvatarADPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (AvatarADPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+    public RequirementDiagramPanel getRequirementDiagramPanel(int index, String s) {
+        //TraceManager.addDev("Searching for " + s);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getRequirementDiagramPanel(tp, s);
+    }
+
+    public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, String s) {
+        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                if (tp.panelAt(i) instanceof RequirementDiagramPanel)
+                    return  (RequirementDiagramPanel)(tp.panelAt(i));
+            }
+        }
+        return null;
+    }
+
+    public RequirementDiagramPanel getRequirementDiagramPanel(int index, int indexTab, String s) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getRequirementDiagramPanel(tp, indexTab, s);
+    }
+
+
+    public RequirementDiagramPanel getRequirementDiagramPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (RequirementDiagramPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+    public EBRDDPanel getEBRDDPanel(int index, String s) {
+        //TraceManager.addDev("Searching for " + s);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getEBRDDPanel(tp, s);
+    }
+
+    public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, String s) {
+        for(int i=0; i<tp.tabbedPane.getTabCount(); i++) {
+            if (tp.tabbedPane.getTitleAt(i).equals(s)) {
+                if (tp.panelAt(i) instanceof EBRDDPanel)
+                    return  (EBRDDPanel)(tp.panelAt(i));
+            }
+        }
+        return null;
+    }
+
+    public EBRDDPanel getEBRDDPanel(int index, int indexTab, String s) {
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+        return getEBRDDPanel(tp, indexTab, s);
+    }
+
+
+    public EBRDDPanel getEBRDDPanel(TURTLEPanel tp, int indexTab, String s) {
+        if(tp.tabbedPane.getTitleAt(indexTab).equals(s)) {
+            return (EBRDDPanel)(tp.panelAt(indexTab));
+        }
+        return null;
+    }
+
+
+    public void alignInstances() {
+        //TraceManager.addDev("Align instances");
+        if (getCurrentTDiagramPanel() instanceof ui.sd.SequenceDiagramPanel) {
+            ((ui.sd.SequenceDiagramPanel)(getCurrentTDiagramPanel())).alignInstances();
+            changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
+            getCurrentTDiagramPanel().repaint();
+        }
+
+        if (getCurrentTDiagramPanel() instanceof ui.sd2.SequenceDiagramPanel) {
+            ((ui.sd2.SequenceDiagramPanel)(getCurrentTDiagramPanel())).alignInstances();
+            changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
+            getCurrentTDiagramPanel().repaint();
+        }
+
+        if (getCurrentTDiagramPanel() instanceof TMLSDPanel) {
+            ((TMLSDPanel)(getCurrentTDiagramPanel())).alignInstances();
+            changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
+            getCurrentTDiagramPanel().repaint();
+        }
+    }
+
+
+    public void alignPartitions() {
+        //TraceManager.addDev("Align instances");
+        if (getCurrentTDiagramPanel() instanceof AvatarADPanel) {
+            ((AvatarADPanel)(getCurrentTDiagramPanel())).alignPartitions();
+            changeMade(getCurrentTDiagramPanel(), TDiagramPanel.MOVE_COMPONENT);
+            getCurrentTDiagramPanel().repaint();
+        }
+    }
+
+    public void enhanceDiagram() {
+        getCurrentTDiagramPanel().enhance();
+    }
+
+    public JTabbedPane getCurrentJTabbedPane() {
+        return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tabbedPane;
+    }
+
+    public int getCurrentSelectedIndex() {
+        return mainTabbedPane.getSelectedIndex();
+    }
+
+
+    public TDiagramPanel getCurrentTDiagramPanel() {
+        try {
+            TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()));
+            return (TDiagramPanel)(tp.panels.elementAt(tp.tabbedPane.getSelectedIndex()));
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    public TDiagramPanel getCurrentMainTDiagramPanel() {
+        return ((TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()))).tdp;
+    }
+
+    public void selectDummyTab (int index) {
+        if (this.tabs.size () < index+1)
+            return;
+        this.dummySelectedTab = (TURTLEPanel) this.tabs.elementAt (index);
+    }
+
+    public void forgetDummyTab () {
+        this.dummySelectedTab = null;
+    }
+
+    public TURTLEPanel getCurrentTURTLEPanel() {
+        if (this.dummySelectedTab != null)
+            return this.dummySelectedTab;
+
+        if (tabs.size() == 0) {
+            return null;
+        } else {
+            return (TURTLEPanel)(tabs.elementAt(mainTabbedPane.getSelectedIndex()));
+        }
+    }
+
+
+    public void reinitCountOfPanels() {
+        int i, j;
+        TURTLEPanel tp;
+        for(i = 0; i<mainTabbedPane.getTabCount(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            for(j=0; j<tp.tabbedPane.getTabCount(); j++) {
+                ((TDiagramPanel)(tp.panels.elementAt(j))).count = 0;
+            }
+        }
+    }
+
+    public void setPanelMode() {
+        int index;
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        index = tp.tabbedPane.getSelectedIndex();
+
+        if (index < tp.panels.size() -1) {
+            setMode(FORWARD_DIAG);
+        } else {
+            setMode(NO_FORWARD_DIAG);
+        }
+
+        if (index > 0) {
+            setMode(BACKWARD_DIAG);
+        } else {
+            setMode(NO_BACKWARD_DIAG);
+        }
+
+        setMode(METHO_CHANGED);
+
+    }
+
+    public void paneMADAction(ChangeEvent e) {
+        //TraceManager.addDev("Pane design action size=" + tabs.size());
+        try {
+
+            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+            //TraceManager.addDev("Pane design action 1");
+            if (activetdp != null) {
+                activetdp.activateActions(false);
+                unactivateDrawing();
+                activetdp.stopAddingConnector();
+            }
+            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+            tdp1.activateActions(true);
+            activetdp = tdp1;
+
+            setEditMode();
+            setPanelMode();
+            //TraceManager.addDev("Pane design action 3");
+
+            // activate the   drawing   of the right pane
+            basicActivateDrawing();
+
+        } catch (Exception ex) {
+            //TraceManager.addDev("Exception pane design action");
+        }
+    }
+
+    public void paneDesignAction(ChangeEvent e) {
+        //TraceManager.addDev("Pane design action size=" + tabs.size());
+        try {
+
+            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+            //TraceManager.addDev("Pane design action 1");
+            if (activetdp != null) {
+                activetdp.activateActions(false);
+                unactivateDrawing();
+                activetdp.stopAddingConnector();
+            }
+            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+            tdp1.activateActions(true);
+            activetdp = tdp1;
+
+            setEditMode();
+            setPanelMode();
+            //TraceManager.addDev("Pane design action 3");
+
+            // activate the   drawing   of the right pane
+            basicActivateDrawing();
+
+        } catch (Exception ex) {
+            //TraceManager.addDev("Exception pane design action");
+        }
+    }
+
+    public void paneDiplodocusMethodologyAction(ChangeEvent e) {
+        //TraceManager.addDev("Pane design action size=" + tabs.size());
+        try {
+
+            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+            //TraceManager.addDev("Pane design action 1");
+            if (activetdp != null) {
+
+                activetdp.activateActions(false);
+                unactivateDrawing();
+                activetdp.stopAddingConnector();
+            }
+            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+            tdp1.activateActions(true);
+            activetdp = tdp1;
+
+            setEditMode();
+            setPanelMode();
+            //TraceManager.addDev("Pane design action 3");
+
+            // activate the   drawing   of the right pane
+            basicActivateDrawing();
+
+        } catch (Exception ex) {
+            //TraceManager.addDev("Exception pane design action");
+        }
+    }
+
+    public void paneAvatarMethodologyAction(ChangeEvent e) {
+        //TraceManager.addDev("Pane design action size=" + tabs.size());
+        try {
+
+            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+            //TraceManager.addDev("Pane design action 1");
+            if (activetdp != null) {
+
+                activetdp.activateActions(false);
+                unactivateDrawing();
+                activetdp.stopAddingConnector();
+            }
+            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+            tdp1.activateActions(true);
+            activetdp = tdp1;
+
+            setEditMode();
+            setPanelMode();
+            //TraceManager.addDev("Pane design action 3");
+
+            // activate the   drawing   of the right pane
+            basicActivateDrawing();
+
+        } catch (Exception ex) {
+            //TraceManager.addDev("Exception pane design action");
+        }
+    }
+
+    public void paneAnalysisAction(ChangeEvent e) {
+        //TraceManager.addDev("Pane analysis action size=" + tabs.size());
+        try {
+
+            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+            //TraceManager.addDev("Pane analysis action 1 on " + tdp1.getName());
+            if (activetdp != null) {
+                activetdp.activateActions(false);
+                unactivateDrawing();
+                activetdp.stopAddingConnector();
+            }
+            //TraceManager.addDev("Pane analysis action 2");
+            tdp1.activateActions(true);
+            activetdp = tdp1;
+
+            setEditMode();
+            setPanelMode();
+            //TraceManager.addDev("Pane analysis action 3");
+
+            // activate the   drawing   of the right pane
+            basicActivateDrawing();
+
+        } catch (Exception ex) {
+            //TraceManager.addDev("Exception pane analysis action");
+        }
+    }
+
+    public void paneDeployAction(ChangeEvent e) {
+        //TraceManager.addDev("Pane design action size=" + tabs.size());
+        try {
+
+            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+            //TraceManager.addDev("Pane design action 1");
+            if (activetdp != null) {
+                activetdp.activateActions(false);
+                unactivateDrawing();
+                activetdp.stopAddingConnector();
+            }
+            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+            tdp1.activateActions(true);
+            activetdp = tdp1;
+
+            setEditMode();
+            setPanelMode();
+            //TraceManager.addDev("Pane design action 3");
+
+            // activate the   drawing   of the right pane
+            basicActivateDrawing();
+
+        } catch (Exception ex) {
+            //TraceManager.addDev("Exception pane design action");
+        }
+    }
+
+    public void paneRequirementAction(ChangeEvent e) {
+        try {
+
+            TDiagramPanel tdp1 = (TDiagramPanel)(getCurrentTURTLEPanel().panels.elementAt(getCurrentJTabbedPane().getSelectedIndex()));
+            //TraceManager.addDev("Pane design action 1");
+            if (activetdp != null) {
+                activetdp.activateActions(false);
+                unactivateDrawing();
+                activetdp.stopAddingConnector();
+            }
+            //TraceManager.addDev("Pane design action 1 on "+ tdp1.getName());
+            tdp1.activateActions(true);
+            activetdp = tdp1;
+
+            setEditMode();
+            setPanelMode();
+
+            // activate the   drawing   of the right pane
+            basicActivateDrawing();
+
+        } catch (Exception ex) {
+            //TraceManager.addDev("Exception pane design action");
+        }
+    }
+
+    // nameTab : array of strings not to be removed
+    public void removeAnalysisDiagrams(String [] nameTab) {
+        int i, j;
+        String value;
+        boolean found;
+
+        for(i=1; i<getCurrentJTabbedPane().getTabCount(); i++) {
+            value = getCurrentJTabbedPane().getTitleAt(i);
+            found = false;
+            for(j=0; j<nameTab.length; j++) {
+                if (nameTab[j] != null) {
+                    if (nameTab[j].compareTo(value) ==0) {
+                        found = true;
+                        break;
+                    }
+
+                }
+            }
+            if (!found) {
+                TraceManager.addDev("Removing" + getCurrentJTabbedPane().getTitleAt(i));
+                getCurrentJTabbedPane().remove(i);
+                getCurrentTURTLEPanel().removeElementAt(i);
+                i--;
+            }
+        }
+    }
+
+    public void renameTab(TDiagramPanel tdp) {
+        String value;
+        int index, index1;
+
+        index = getCurrentJTabbedPane().getSelectedIndex();
+        value = getCurrentJTabbedPane().getTitleAt(index);
+
+        //String s = (String)JOptionPane.showInputDialog(this, "Name of the diagram:", JOptionPane.QUESTION_MESSAGE);
+        String s = (String)JOptionPane.showInputDialog(frame, "Name of the diagram:", "setting value", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, value);
+
+        if ((s != null) && (s.length() > 0)){
+            // name already in use?
+            index1 = getCurrentJTabbedPane().indexOfTab(s);
+            /*if (methoMode == METHO_ANALYSIS) {
               index1 = mainAnalysisTabbedPane.indexOfTab(s);
 
               } else {
               index1 = getCurrentJTabbedPane.indexOfTab(s);
 
               }*/
-			if (index1 > -1) {
-				JOptionPane.showMessageDialog(frame, "Name is already in use", "Error", JOptionPane.INFORMATION_MESSAGE);
-			} else {
-				/*if (methoMode == METHO_ANALYSIS) {
+            if (index1 > -1) {
+                JOptionPane.showMessageDialog(frame, "Name is already in use", "Error", JOptionPane.INFORMATION_MESSAGE);
+            } else {
+                /*if (methoMode == METHO_ANALYSIS) {
                   mainAnalysisTabbedPane.setTitleAt(index, s);
                   } else {
                   mainDesignTabbedPane.setTitleAt(index, s);
                   }*/
-				if (isAValidTabName(s)) {
-					JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE);
-				} else {
-					getCurrentJTabbedPane().setTitleAt(index, s);
-					tdp.setName(s);
-					changeMade(tdp, TDiagramPanel.NEW_COMPONENT);
-				}
-			}
-		}
-	}
-
-	public void deleteTab(TDiagramPanel tdp) {
-		//TraceManager.addDev("Delete");
-
-		// We know the selected tab -> remove this tab
-
-		int index;
-		JTabbedPane jtp = getCurrentJTabbedPane();
-		index = jtp.getSelectedIndex();
-		getCurrentTURTLEPanel().panels.removeElementAt(index);
-		jtp.remove(index);
-
-		// Signal the change
-		changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-
-	}
-
-	private void basicActivateDrawing() {
-		activetdp.setDraw(true);
-		if (activetdp.mode == TDiagramPanel.SELECTED_COMPONENTS) {
-			setMode(MainGUI.CUTCOPY_OK);
-			setMode(MainGUI.EXPORT_LIB_OK);
-		} else {
-			setMode(MainGUI.CUTCOPY_KO);
-			setMode(MainGUI.EXPORT_LIB_KO);
-		}
-	}
-
-	private void unactivateDrawing() {
-		activetdp.setDraw(false);
-	}
-
-	public void paneAction(ChangeEvent e) {
-		//TraceManager.addDev("Pane action");
-		TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-		if (tdp1 != null) {
-			//TraceManager.addDev("Stop Adding connector in maingui");
-			tdp1.stopAddingConnector();
-		}
-
-		try {
-			if (getCurrentTURTLEPanel() instanceof DesignPanel) {
-				setMethodologicalMode(METHO_DESIGN);
-				paneDesignAction(e);
-			} else if (getCurrentTURTLEPanel() instanceof AnalysisPanel) {
-				setMethodologicalMode(METHO_ANALYSIS);
-				paneAnalysisAction(e);
-			} else {
-				setMethodologicalMode(METHO_DEPLOY);
-				paneDeployAction(e);
-			}
-
-			if ((getCurrentTURTLEPanel() instanceof AvatarDesignPanel) || (getCurrentTURTLEPanel() instanceof AvatarRequirementPanel) || (getCurrentTURTLEPanel() instanceof AttackTreePanel) || (getCurrentTURTLEPanel() instanceof ADDPanel)) {
-				mainBar.showAvatarActions(true);
-			} else if ((getCurrentTURTLEPanel() instanceof TMLDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLComponentDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLArchiPanel)){
-				mainBar.showDiplodocusActions(true);
-			}  else {
-				mainBar.showAvatarActions(false);
-			}
-
-			setMode(PANEL_CHANGED);
-
-			setEditMode();
-			setPanelMode();
-
-
-		} catch (Exception ex) {
-			//TraceManager.addDev("Exception pane action: " + ex.getMessage());
-		}
-	}
-
-	public JFrame getFrame() {
-		return frame;
-	}
-
-	public boolean newTClassName(TURTLEPanel tp, String old, String niou) {
-		JTabbedPane jtp = tp.tabbedPane;
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			if (jtp.getTitleAt(i).equals(niou)) {
-				return false;
-			}
-		}
-		//TraceManager.addDev("old " + old + " niou " + niou);
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			//TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-			if (jtp.getTitleAt(i).equals(old)) {
-				jtp.setTitleAt(i, niou);
-				jtp.setToolTipTextAt(i, "Opens the activity diagram of " + niou);
-				TDiagramPanel tdp;
-				//change panel name
-				for(int j=0; j<tp.panels.size(); j++) {
-					tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-					if (tdp.getName().equals(old)) {
-						tdp.setName(niou);
-					}
-				}
-
-				return true;
-			}
-		}
-		// internal error
-		ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-		return false;
-	}
-
-	public boolean newTOSClassName(TURTLEPanel tp, String old, String niou) {
-		JTabbedPane jtp = tp.tabbedPane;
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			if (jtp.getTitleAt(i).equals(niou)) {
-				return false;
-			}
-		}
-		//TraceManager.addDev("old " + old + " niou " + niou);
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			//TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-			if (jtp.getTitleAt(i).equals(old)) {
-				jtp.setTitleAt(i, niou);
-				jtp.setToolTipTextAt(i, "Opens the TURTLE-OS activity diagram of " + niou);
-				TDiagramPanel tdp;
-				//change panel name
-				for(int j=0; j<tp.panels.size(); j++) {
-					tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-					if (tdp.getName().equals(old)) {
-						tdp.setName(niou);
-					}
-				}
-
-				return true;
-			}
-		}
-		// internal error
-		ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-		return false;
-	}
-
-	public boolean newTMLTaskName(TURTLEPanel tp, String old, String niou) {
-		//TraceManager.addDev("Panel=" + tp + " Old  task name = " + old + " New task name=" + niou);
-		JTabbedPane jtp = tp.tabbedPane;
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			//TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
-			if (jtp.getTitleAt(i).equals(niou)) {
-				return false;
-			}
-		}
-		//TraceManager.addDev("old " + old + " niou " + niou);
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			//TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-			//TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
-			if (jtp.getTitleAt(i).equals(old)) {
-				jtp.setTitleAt(i, niou);
-				jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou);
-				TDiagramPanel tdp;
-				//change panel name
-				for(int j=0; j<tp.panels.size(); j++) {
-					tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-					if (tdp.getName().equals(old)) {
-						tdp.setName(niou);
-						//TraceManager.addDev("Renamed to " + niou);
-					}
-				}
-
-				return true;
-			}
-		}
-		// internal error
-		ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-		return false;
-	}
-
-	public boolean nameComponentInUse(TURTLEPanel tp, String old, String niou) {
-		JTabbedPane jtp = tp.tabbedPane;
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			if (jtp.getTitleAt(i).equals(niou)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	public boolean newTMLComponentTaskName(TURTLEPanel tp, String old, String niou) {
-		JTabbedPane jtp = tp.tabbedPane;
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			if (jtp.getTitleAt(i).equals(niou)) {
-				return false;
-			}
-		}
-		TraceManager.addDev("old " + old + " niou " + niou);
-		for(int i = 0; i<jtp.getTabCount(); i++) {
-			TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
-			if (jtp.getTitleAt(i).equals(old)) {
-				jtp.setTitleAt(i, niou);
-				jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou);
-				TDiagramPanel tdp;
-				//change panel name
-				for(int j=0; j<tp.panels.size(); j++) {
-					tdp = (TDiagramPanel)(tp.panels.elementAt(j));
-					if (tdp.getName().equals(old)) {
-						tdp.setName(niou);
-					}
-				}
-
-				return true;
-			}
-		}
-		// internal error
-		ErrorGUI.exit(ErrorGUI.ERROR_TAB);
-		return false;
-	}
-
-	public void cloneTab(int index) {
-		String s = gtm.makeXMLFromTurtleModeling(index, "_cloned");
-		try {
-			gtm.loadModelingFromXML(s);
-			changeMade(null, -1);
-		} catch (MalformedModelingException mme) {
-			JOptionPane.showMessageDialog(frame, "Modeling could not be loaded (unsupported file) ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
-			frame.setTitle("TTool: unamed project");
-		}
-
-	}
-	public void cloneRenameTab(int index, String s){
-		cloneTab(index);
-		mainTabbedPane.setTitleAt(tabs.size()-1, mainTabbedPane.getTitleAt(index)+"_"+s);
-	}
-	public void requestRemoveTab(int index) {
-		if (index >= tabs.size()) {
-			return;
-		}
-
-		tabs.removeElementAt(index);
-		mainTabbedPane.remove(index);
-		changeMade(null, -1);
-	}
-
-	public void requestMoveRightTab(int index) {
-		//TraceManager.addDev("Move right");
-		if (index > tabs.size()-2) {
-			return;
-		}
-		requestMoveTabFromTo(index, index + 1);
-		changeMade(null, -1);
-	}
-
-	public void requestMoveLeftTab(int index) {
-		//TraceManager.addDev("Move left");
-		if (index < 1) {
-			return;
-		}
-		requestMoveTabFromTo(index, index-1);
-		changeMade(null, -1);
-	}
-
-	public void requestMoveTabFromTo(int src, int dst) {
-
-		// Get all the properties
-		Component comp = mainTabbedPane.getComponentAt(src);
-		String label = mainTabbedPane.getTitleAt(src);
-		Icon icon = mainTabbedPane.getIconAt(src);
-		Icon iconDis = mainTabbedPane.getDisabledIconAt(src);
-		String tooltip = mainTabbedPane.getToolTipTextAt(src);
-		boolean enabled = mainTabbedPane.isEnabledAt(src);
-		int keycode = mainTabbedPane.getMnemonicAt(src);
-		int mnemonicLoc = mainTabbedPane.getDisplayedMnemonicIndexAt(src);
-		Color fg = mainTabbedPane.getForegroundAt(src);
-		Color bg = mainTabbedPane.getBackgroundAt(src);
-
-		// Remove the tab
-		mainTabbedPane.remove(src);
-
-		// Add a new tab
-		mainTabbedPane.insertTab(label, icon, comp, tooltip, dst);
-
-		// Restore all properties
-		mainTabbedPane.setDisabledIconAt(dst, iconDis);
-		mainTabbedPane.setEnabledAt(dst, enabled);
-		mainTabbedPane.setMnemonicAt(dst, keycode);
-		mainTabbedPane.setDisplayedMnemonicIndexAt(dst, mnemonicLoc);
-		mainTabbedPane.setForegroundAt(dst, fg);
-		mainTabbedPane.setBackgroundAt(dst, bg);
-
-		TURTLEPanel o = tabs.elementAt(src);
-		tabs.removeElementAt(src);
-		tabs.insertElementAt(o, dst);
-
-		mainTabbedPane.setSelectedIndex(dst);
-	}
-
-	public void requestRenameTab(int index) {
-		String oldName = mainTabbedPane.getTitleAt(index);
-		String s = (String)JOptionPane.showInputDialog(frame, "Name: ", "Renaming a tab", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, mainTabbedPane.getTitleAt(index));
-		if ((s != null) && (s.length() > 0)){
-			// name already in use?
-			if (s.compareTo(oldName) != 0) {
-				if (isAValidTabName(s)) {
-					mainTabbedPane.setTitleAt(index, s);
-					changeMade(getCurrentTDiagramPanel(), /*((TURTLEPanel)(tabs.elementAt(index))).tdp*/TDiagramPanel.MOVE_COMPONENT);
-
-					TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-					if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel)) {
-						renameMapping(oldName, s);
-					}
-				} else {
-					JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE);
-				}
-
-			}
-		}
-		changeMade(null, -1);
-	}
-
-	public void renameMapping(String oldName, String newName) {
-		TURTLEPanel tp;
-
-		for(int i = 0; i<mainTabbedPane.getTabCount(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof TMLArchiPanel) {
-				((TMLArchiPanel)tp).renameMapping(oldName, newName);
-			}
-		}
-
-	}
-
-	public void renameDeployment(String oldName, String newName) {
-		TURTLEPanel tp;
-
-		for(int i = 0; i<mainTabbedPane.getTabCount(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (tp instanceof ADDPanel) {
-				((ADDPanel)tp).renameDeployment(oldName, newName);
-			}
-		}
-
-	}
-
-	public boolean selectTDiagramPanel(TDiagramPanel tdp) {
-		return (selectTab(getPoint(tdp)) == tdp);
-	}
-
-	public boolean selectTab(TURTLEPanel tp, String s) {
-		int j;
-		int index1 = tabs.indexOf(tp);
-
-		if (mainTabbedPane.getSelectedIndex() != index1) {
-			mainTabbedPane.setSelectedIndex(index1);
-		}
-
-		for(j=0; j<tp.tabbedPane.getTabCount(); j++) {
-			if (tp.tabbedPane.getTitleAt(j).equals(s)) {
-				tp.tabbedPane.setSelectedIndex(j);
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	public boolean selectTab(String s) {
-		return selectTab(getCurrentTURTLEPanel(), s);
-	}
-
-	public void openTMLTaskActivityDiagram(String panel, String tab) {
-		int index = mainTabbedPane.indexOfTab(panel);
-		if (index != -1) {
-			mainTabbedPane.setSelectedIndex(index);
-		}
-		openTMLTaskActivityDiagram(tab);
-	}
-
-	public void openTMLTaskActivityDiagram(String tab) {
-		selectTab(getCurrentTURTLEPanel(), tab);
-	}
-
-	public void refreshCurrentPanel() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public void openAVATARSMD(String tab) {
-		TDiagramPanel cur = getCurrentTDiagramPanel();
-		selectTab(getCurrentTURTLEPanel(), tab);
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp == cur) {
-			tdp.repaint();
-		}
-	}
-
-	public boolean selectHighLevelTab(String s) {
-		TURTLEPanel tp = getTURTLEPanel(s);
-		if (s != null) {
-			selectTab(tp);
-			return true;
-		}
-		return false;
-	}
-
-	public TDiagramPanel selectTab(Point p) {
-		mainTabbedPane.setSelectedIndex(p.x);
-		TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(p.x));
-		tp.tabbedPane.setSelectedIndex(p.y);
-		return (TDiagramPanel)(tp.panels.elementAt(p.y));
-
-	}
-
-	public Point getCurrentSelectedPoint() {
-		Point p = new Point();
-
-		p.x = mainTabbedPane.getSelectedIndex();
-		if (getCurrentTURTLEPanel() == null) {
-			p.y = -1;
-		} else {
-			p.y = getCurrentTURTLEPanel().tabbedPane.getSelectedIndex();
-		}
-
-		return p;
-	}
-
-	public Point getPoint(TDiagramPanel tdp) {
-		Point p = new Point();
-
-		int index;
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			index = tp.panels.indexOf(tdp);
-			if (index > -1) {
-				p.x = i;
-				p.y = index;
-				return p;
-			}
-		}
-		p.x = 0;
-		p.y = 0;
-
-		return p;
-	}
-
-	public DesignPanel getDesignPanel(String name) {
-		int index = mainTabbedPane.indexOfTab(name);
-		try {
-			TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
-
-			if (tp instanceof DesignPanel) {
-				return (DesignPanel)tp;
-			} else {
-				return null;
-			}
-		} catch (Exception e) {
-			return null;
-		}
-	}
-	//---------------------------------- DDD ------------------------------------
-	// return current deployment panel
-
-	public ADDDiagramPanel getDeploymentPanel() {
-		ADDDiagramPanel deploymentDiagram =  null ; //(ADDDiagramPanel)activetdp;
-		TURTLEPanel tp = getCurrentTURTLEPanel();
-		Vector<TDiagramPanel> ps = tp.panels;
-		for(TDiagramPanel panel : ps ){
-			if (panel instanceof ADDDiagramPanel){
-				deploymentDiagram = (ADDDiagramPanel)panel;
-			}
-		}
-		if(deploymentDiagram == null)
-			System.err.println("No ADDDiagramPanel found : MainGUI.getDeploymentPanel()");
-		return deploymentDiagram;
-	}
-
-
-	public ADDDiagramPanel getFirstAvatarDeploymentPanelFound(){
-		ADDDiagramPanel adp = null;
-		for(int i =0 ; i<tabs.size();i++)
-			if(tabs.get(i) instanceof ADDPanel){
-				adp = ((ADDPanel)tabs.get(i)).tmladd;
-			}
-		if (adp == null)
-			System.err.println("No AvatarDeployment Panel Found : MainGUI.getFirstAvatarDeploymentPanelFound()");
-		return adp;
-	}
-
-
-	// find the first Design Panel in MainGUI.tabs
-
-	public AvatarDesignPanel getFirstAvatarDesignPanelFound(){
-		AvatarDesignPanel adp = null;
-		for(int i =0 ; i<tabs.size();i++)
-			if(tabs.get(i) instanceof AvatarDesignPanel){
-				adp = (AvatarDesignPanel)tabs.get(i);
-			}
-		if (adp == null)
-			System.err.println("No AvatarDesign Panel Found : MainGUI.getFirstAvatarDesignPanel()");
-		return adp;
-	}
-
-
-	public void extracDeploymentDiagramToFile(){
-
-		ADDDiagramPanel deploymentDiagramPanel = getDeploymentPanel();
-		AvatarDesignPanel designDiagramPanel = getFirstAvatarDesignPanelFound();
-
-		AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel);
-		/*AvatarddSpecification avddspec =*/ avdeploymenttranslator.getAvatarddSpecification();
-
-
-		AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator( designDiagramPanel);
-		List<AvatarBDStateMachineOwner> adp =  designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList();
-		/*AvatarSpecification avaspec =*/ avdesigntranslator.generateAvatarSpecification(adp);
-
-		//DG
-		//LinkedList<AvatarComponent> components = AvatarddSpecification.getComponents();
-		//AvatarToFile tofile;
-		//tofile =  new AvatarToFile(components,avaspec);
-		//tofile.extracParamToFile();
-	}
-
-	public void avatarToSoclib(){
-		//DG 6.2. appelee nulle part?
-
-		ADDDiagramPanel deploymentDiagramPanel = getDeploymentPanel();
-		AvatarDesignPanel designDiagramPanel = getFirstAvatarDesignPanelFound();
-
-		AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel);
-		AvatarddSpecification avddspec = avdeploymenttranslator.getAvatarddSpecification();
-
-
-		AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator( designDiagramPanel);
-
-		LinkedList<AvatarBDStateMachineOwner> adp =  designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList();
-		AvatarSpecification avaspec = avdesigntranslator.generateAvatarSpecification(adp);
-
-		// Generator for block tasks and application main file
-
-		TasksAndMainGenerator gene = new TasksAndMainGenerator(avddspec,avaspec);
-		gene.generateSoclib(false,false);
-		try{
-			//System.err.println("ok");
-			gene.saveInFiles(TasksAndMainGenerator.getGeneratedPath());
-		}catch(FileException e){
-			System.err.println("FileException : MainGUI.avatarToSoclib()");
-		}
-
-	}
-	//--------------------end DDD------------------------------------------------
-
-	public boolean selectMainTab(String id) {
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			if (getTabName(tp).compareTo(id) == 0) {
-				selectTab(tp);
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	public void selectTab(TURTLEPanel tp) {
-		int index1 = tabs.indexOf(tp);
-		mainTabbedPane.setSelectedIndex(index1);
-	}
-
-	public void selectTab(TDiagramPanel tdp) {
-		int index;
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			index = tp.panels.indexOf(tdp);
-			if (index > -1) {
-				selectTab(tp);
-				tp.tabbedPane.setSelectedIndex(index);
-			}
-		}
-	}
-
-	public void toggleAttributes() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
-			//TraceManager.addDev("Toggle attributes");
-			TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
-			tdcp.setAttributesVisible(!tdcp.areAttributesVisible());
-			tdcp.checkAllMySize();
-			tdcp.repaint();
-			changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	// AVATAR Simulation
-	public void setAVATARIDs(boolean b) {
-		TDiagramPanel.AVATAR_ID_ON = b;
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public void toggleAVATARIDs() {
-		setAVATARIDs(!TDiagramPanel.AVATAR_ID_ON);
-		TraceManager.addDev("AVATAR id: " + TDiagramPanel.AVATAR_ID_ON);
-	}
-
-	// For simulation purpose
-	public void resetAllDIPLOIDs() {
-		TURTLEPanel tp;
-
-		for(int i=0; i<tabs.size(); i++) {
-			tp = (TURTLEPanel)(tabs.elementAt(i));
-			tp.resetAllDIPLOIDs();
-		}
-	}
-
-	public void toggleDiploIDs() {
-		setDiploIDs(!TDiagramPanel.DIPLO_ID_ON);
-	}
-
-	public void toggleTEPEIDs() {
-		setTEPEIDs(!TDiagramPanel.TEPE_ID_ON);
-	}
-
-	public void toggleDiploAnimate() {
-		setDiploAnimate(!TDiagramPanel.DIPLO_ANIMATE_ON);
-	}
-
-	public int isRunningAvatarComponent(TGComponent _tgc) {
-		if(jfais.isVisible()) {
-			if (jfais.isRunningComponent(_tgc)) {
-				return 1;
-			}
-			if (jfais.isSelectedComponentFromTransaction(_tgc)) {
-				return 2;
-			}
-		}
-		return 0;
-	}
-
-	public String[] hasMessageInformationForAvatarConnector(AvatarBDPortConnector _conn) {
-		if(jfais.isVisible()) {
-			return jfais.getFirstMessagesOnEachConnectorSide(_conn);
-		}
-		return null;
-	}
-
-	public void setDiploAnimate(boolean b) {
-		TDiagramPanel.DIPLO_ANIMATE_ON = b;
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public void setAvatarAnimate(boolean b) {
-		TDiagramPanel.AVATAR_ANIMATE_ON = b;
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public void setDiploIDs(boolean b) {
-		TDiagramPanel.DIPLO_ID_ON = b;
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public void setTEPEIDs(boolean b) {
-		TDiagramPanel.TEPE_ID_ON = b;
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public void setTransationProgression(boolean b) {
-		TDiagramPanel.DIPLO_TRANSACTION_PROGRESSION_ON = b;
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public synchronized RunningInfo isRunningID(int id) {
-		if (runningIDs == null) {
-			return null;
-		}
-
-		for(RunningInfo ri: runningIDs) {
-			if (ri.id == id) {
-				return ri;
-			}
-		}
-
-		return null;
-	}
-	public synchronized ArrayList<SimulationTransaction> getTransactions(int id){
-		if (transactionMap == null) {
-			return null;
-		}
-
-		return transactionMap.get(id);
-	}
-	public synchronized ConcurrentHashMap<String,String> getStatus(int id){
-		if (statusMap == null) {
-			return null;
-		}
-
-		return statusMap;
-	}
-
-	public String getStatus(String s){
-		if (statusMap==null){
-			return null;
-		}
-		return statusMap.get(s);
-	}
-	public synchronized LoadInfo isLoadID(int id) {
-		if (loadIDs == null) {
-			return null;
-		}
-
-		for(LoadInfo li: loadIDs) {
-			if (li.id == id) {
-				return li;
-			}
-		}
-
-		return null;
-	}
-
-	public synchronized void resetRunningID() {
-		if (runningIDs != null) {
-			runningIDs.clear();
-		}
-		runningIDs = null;
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public synchronized void resetLoadID() {
-		if (loadIDs != null) {
-			loadIDs.clear();
-		}
-		loadIDs = null;
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-	public synchronized void resetTransactions() {
-		transactionMap.clear();
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-	public synchronized void resetStatus() {
-		statusMap.clear();
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public synchronized void addRunningIDTaskState(int _id, String _state) {
-		if (runningIDs == null) {
-			return;
-		}
-
-		if (_state == null) {
-			_state = "unknown";
-		}
-
-		for(RunningInfo ri: runningIDs) {
-			if (ri.id == _id) {
-				ri.state = _state.toLowerCase();
-				//TraceManager.addDev("Updated state on UML diagram");
-				TDiagramPanel tdp = getCurrentTDiagramPanel();
-				if (tdp != null) {
-					tdp.repaint();
-				}
-				return;
-			}
-		}
-
-	}
-
-	public synchronized void addRunningID(int _id, int _nextCommand, String _progression, String _startTime, String _finishTime, String _transStartTime, String _transFinishTime, String _state) {
-		if (runningIDs == null) {
-			runningIDs = new ArrayList<RunningInfo>();
-		}
-		RunningInfo ri = new RunningInfo();
-		if (_state == null) {
-			_state = "unknown";
-		}
-		ri.id = _id;
-		ri.nextCommand = _nextCommand;
-		ri.progression = _progression;
-		ri.startTime = _startTime;
-		ri.finishTime = _finishTime;
-		ri.transStartTime = _transStartTime;
-		ri.transFinishTime = _transFinishTime;
-		ri.state = _state.toLowerCase();
-		runningIDs.add(ri);
-		//TraceManager.addDev("Running id " + id +  " added");
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-	public synchronized void addTransaction(int _id, SimulationTransaction st){
-		if (transactionMap.containsKey(_id)){
-			if (!transactionMap.get(_id).contains(st)){
-				transactionMap.get(_id).add(st);
-			}
-		}
-		else {
-			ArrayList<SimulationTransaction> ts = new ArrayList<SimulationTransaction>();
-			ts.add(st);
-			transactionMap.put(_id, ts);
-		}
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public synchronized void addStatus(String task, String stat){
-		statusMap.put(task, stat);
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public synchronized void addLoadInfo(int _id, double _load, long _energy) {
-		if (loadIDs == null) {
-			loadIDs = new ArrayList<LoadInfo>();
-		}
-
-		removeLoadId(_id);
-		LoadInfo li = new LoadInfo();
-		li.id = _id;
-		li.load = _load;
-		li.energy = _energy;
-		loadIDs.add(li);
-		//TraceManager.addDev("Running id " + _id +  " added load=" + _load);
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.repaint();
-		}
-	}
-
-	public synchronized void removeRunningId(Integer id) {
-		if (runningIDs == null) {
-			return ;
-		}
-
-		for(RunningInfo ri: runningIDs) {
-			if (ri.id == id.intValue()) {
-				runningIDs.remove(ri);
-				//TraceManager.addDev("Running id " + i +  " removed");
-				return;
-			}
-		}
-		getCurrentTDiagramPanel().repaint();
-	}
-
-	public synchronized void removeLoadId(int _id) {
-		if (loadIDs == null) {
-			return ;
-		}
-
-		for(LoadInfo li: loadIDs) {
-			if (li.id == _id) {
-				loadIDs.remove(li);
-				//TraceManager.addDev("Running id " + i +  " removed");
-				return;
-			}
-		}
-		getCurrentTDiagramPanel().repaint();
-	}
-
-	public void toggleGates() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
-			//TraceManager.addDev("Toggle gates");
-			TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
-			tdcp.setGatesVisible(!tdcp.areGatesVisible());
-			tdcp.checkAllMySize();
-			tdcp.repaint();
-			changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	public void toggleSynchro() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
-			//TraceManager.addDev("Toggle synchro");
-			TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
-			tdcp.setSynchroVisible(!tdcp.areSynchroVisible());
-			tdcp.checkAllMySize();
-			tdcp.repaint();
-			changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	public void toggleJava() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if ((tdp != null) && (tdp instanceof TActivityDiagramPanel)){
-			//TraceManager.addDev("Toggle synchro");
-			TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp;
-			tadp.setJavaVisible(!tadp.isJavaVisible());
-			tadp.checkAllMySize();
-			tadp.repaint();
-			changeMade(tadp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	public void toggleInternalComment() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null) {
-			tdp.setInternalCommentVisible((tdp.getInternalCommentVisible() + 1) % 3);
-			tdp.checkAllMySize();
-			tdp.repaint();
-			changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	public void toggleAttr() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if (tdp != null){
-			//TraceManager.addDev("Toggle attributes");
-			tdp.setAttributes((tdp.getAttributeState() + 1) % 3);
-			tdp.checkAllMySize();
-			tdp.repaint();
-			changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	public void toggleChannels() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
-			//TraceManager.addDev("Toggle attributes");
-			TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
-			tmltdp.setChannelsVisible(!tmltdp.areChannelsVisible());
-			tmltdp.checkAllMySize();
-			tmltdp.repaint();
-			changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	public void toggleEvents() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
-			//TraceManager.addDev("Toggle attributes");
-			TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
-			tmltdp.setEventsVisible(!tmltdp.areEventsVisible());
-			tmltdp.checkAllMySize();
-			tmltdp.repaint();
-			changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	public void toggleRequests() {
-		TDiagramPanel tdp = getCurrentTDiagramPanel();
-		if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
-			//TraceManager.addDev("Toggle attributes");
-			TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
-			tmltdp.setRequestsVisible(!tmltdp.areRequestsVisible());
-			tmltdp.checkAllMySize();
-			tmltdp.repaint();
-			changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
-		}
-	}
-
-	public boolean isAValidTabName(String name) {
-		return name.matches("((\\w)*(\\s)*)*");
-	}
-
-
-
-	public void windowClosing(WindowEvent e) {
-		//frame.setVisible(false);
-		quitApplication();
-	}
-
-	public void windowClosed(WindowEvent e) {
-	}
-
-	public void windowOpened(WindowEvent e) {
-	}
-
-	public void windowIconified(WindowEvent e) {
-	}
-
-	public void windowDeiconified(WindowEvent e) {
-	}
-
-	public void windowActivated(WindowEvent e) {
-	}
-
-	public void windowDeactivated(WindowEvent e) {
-	}
-
-
-	// TGUIACtions Event listener
-
-	public void keyTyped(KeyEvent e) {
-		TraceManager.addDev("KEY TYPED");
-	}
-
-	public void keyPressed(KeyEvent e) {
-		TraceManager.addDev("KEY PRESSED: ");
-	}
-
-	public void keyReleased(KeyEvent e) {
-		TraceManager.addDev("KEY RELEASED: ");
-	}
-
-	public void actionPerformed(ActionEvent evt)  {
-		String command = evt.getActionCommand();
-		//TraceManager.addDev("Command:" + command);
-		TDiagramPanel tdp1 = getCurrentTDiagramPanel();
-		if (tdp1 != null) {
-			//TraceManager.addDev("Stop Adding connector in maingui");
-			tdp1.stopAddingConnector();
-		}
-
-		ActionPerformer.actionPerformed(this, evt, command, tdp1);
-
-
-	}
-
-	private  class PopupListener extends MouseAdapter /* popup menus onto tabs */ {
-		private MainGUI mgui;
-		private JPopupMenu menu;
-
-		private JMenuItem rename, remove, moveRight, moveLeft, newDesign, newAnalysis, newDeployment, newRequirement/*, newTMLDesign*/, newTMLComponentDesign, newTMLArchi, newProactiveDesign, newTURTLEOSDesign,
-		newNCDesign, sort, clone, newAttackTree, newAVATARBD, newAVATARRequirement, newMAD, newTMLCP, newTMLMethodo, newAvatarMethodo, newAVATARDD, newSysmlsecMethodo;
-		private JMenuItem newAVATARAnalysis;
-
-		public PopupListener(MainGUI _mgui) {
-			mgui = _mgui;
-			createMenu();
-		}
-
-		public void mousePressed(MouseEvent e) {
-			checkForPopup(e);
-		}
-		public void mouseReleased(MouseEvent e) {
-			checkForPopup(e);
-		}
-		public void mouseClicked(MouseEvent e) {
-			checkForPopup(e);
-		}
-
-		private void checkForPopup(MouseEvent e) {
-			if(e.isPopupTrigger()) {
-				Component c = e.getComponent();
-				//TraceManager.addDev("e =" + e + " Component=" + c);
-				updateMenu(mgui.getCurrentSelectedIndex());
-				menu.show(c, e.getX(), e.getY());
-			}
-		}
-
-		private void createMenu() {
-			rename = createMenuItem("Rename");
-			remove = createMenuItem("Remove");
-			moveLeft = createMenuItem("Move to the left");
-			moveRight = createMenuItem("Move to the right");
-			sort = createMenuItem("Sort");
-			clone = createMenuItem("Clone");
-			newAnalysis = createMenuItem("New TURTLE Analysis");
-			newDesign = createMenuItem("New TURTLE Design");
-			newDeployment = createMenuItem("New TURTLE Deployment");
-
-			newAttackTree = createMenuItem("New Attack Tree");
-			newRequirement = createMenuItem("New TURTLE Requirement Diagram");
+                if (isAValidTabName(s)) {
+                    JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE);
+                } else {
+                    getCurrentJTabbedPane().setTitleAt(index, s);
+                    tdp.setName(s);
+                    changeMade(tdp, TDiagramPanel.NEW_COMPONENT);
+                }
+            }
+        }
+    }
+
+    public void deleteTab(TDiagramPanel tdp) {
+        //TraceManager.addDev("Delete");
+
+        // We know the selected tab -> remove this tab
+
+        int index;
+        JTabbedPane jtp = getCurrentJTabbedPane();
+        index = jtp.getSelectedIndex();
+        getCurrentTURTLEPanel().panels.removeElementAt(index);
+        jtp.remove(index);
+
+        // Signal the change
+        changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+
+    }
+
+    private void basicActivateDrawing() {
+        activetdp.setDraw(true);
+        if (activetdp.mode == TDiagramPanel.SELECTED_COMPONENTS) {
+            setMode(MainGUI.CUTCOPY_OK);
+            setMode(MainGUI.EXPORT_LIB_OK);
+        } else {
+            setMode(MainGUI.CUTCOPY_KO);
+            setMode(MainGUI.EXPORT_LIB_KO);
+        }
+    }
+
+    private void unactivateDrawing() {
+        activetdp.setDraw(false);
+    }
+
+    public void paneAction(ChangeEvent e) {
+        //TraceManager.addDev("Pane action");
+        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+        if (tdp1 != null) {
+            //TraceManager.addDev("Stop Adding connector in maingui");
+            tdp1.stopAddingConnector();
+        }
+
+        try {
+            if (getCurrentTURTLEPanel() instanceof DesignPanel) {
+                setMethodologicalMode(METHO_DESIGN);
+                paneDesignAction(e);
+            } else if (getCurrentTURTLEPanel() instanceof AnalysisPanel) {
+                setMethodologicalMode(METHO_ANALYSIS);
+                paneAnalysisAction(e);
+            } else {
+                setMethodologicalMode(METHO_DEPLOY);
+                paneDeployAction(e);
+            }
+
+            if ((getCurrentTURTLEPanel() instanceof AvatarDesignPanel) || (getCurrentTURTLEPanel() instanceof AvatarRequirementPanel) || (getCurrentTURTLEPanel() instanceof AttackTreePanel) || (getCurrentTURTLEPanel() instanceof ADDPanel)) {
+                mainBar.showAvatarActions(true);
+            } else if ((getCurrentTURTLEPanel() instanceof TMLDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLComponentDesignPanel) || (getCurrentTURTLEPanel() instanceof TMLArchiPanel)){
+                mainBar.showDiplodocusActions(true);
+            }  else {
+                mainBar.showAvatarActions(false);
+            }
+
+            setMode(PANEL_CHANGED);
+
+            setEditMode();
+            setPanelMode();
+
+
+        } catch (Exception ex) {
+            //TraceManager.addDev("Exception pane action: " + ex.getMessage());
+        }
+    }
+
+    public JFrame getFrame() {
+        return frame;
+    }
+
+    public boolean newTClassName(TURTLEPanel tp, String old, String niou) {
+        JTabbedPane jtp = tp.tabbedPane;
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            if (jtp.getTitleAt(i).equals(niou)) {
+                return false;
+            }
+        }
+        //TraceManager.addDev("old " + old + " niou " + niou);
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+            if (jtp.getTitleAt(i).equals(old)) {
+                jtp.setTitleAt(i, niou);
+                jtp.setToolTipTextAt(i, "Opens the activity diagram of " + niou);
+                TDiagramPanel tdp;
+                //change panel name
+                for(int j=0; j<tp.panels.size(); j++) {
+                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                    if (tdp.getName().equals(old)) {
+                        tdp.setName(niou);
+                    }
+                }
+
+                return true;
+            }
+        }
+        // internal error
+        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+        return false;
+    }
+
+    public boolean newTOSClassName(TURTLEPanel tp, String old, String niou) {
+        JTabbedPane jtp = tp.tabbedPane;
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            if (jtp.getTitleAt(i).equals(niou)) {
+                return false;
+            }
+        }
+        //TraceManager.addDev("old " + old + " niou " + niou);
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+            if (jtp.getTitleAt(i).equals(old)) {
+                jtp.setTitleAt(i, niou);
+                jtp.setToolTipTextAt(i, "Opens the TURTLE-OS activity diagram of " + niou);
+                TDiagramPanel tdp;
+                //change panel name
+                for(int j=0; j<tp.panels.size(); j++) {
+                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                    if (tdp.getName().equals(old)) {
+                        tdp.setName(niou);
+                    }
+                }
+
+                return true;
+            }
+        }
+        // internal error
+        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+        return false;
+    }
+
+    public boolean newTMLTaskName(TURTLEPanel tp, String old, String niou) {
+        //TraceManager.addDev("Panel=" + tp + " Old  task name = " + old + " New task name=" + niou);
+        JTabbedPane jtp = tp.tabbedPane;
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            //TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
+            if (jtp.getTitleAt(i).equals(niou)) {
+                return false;
+            }
+        }
+        //TraceManager.addDev("old " + old + " niou " + niou);
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            //TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+            //TraceManager.addDev("jtp  = " + jtp.getTitleAt(i));
+            if (jtp.getTitleAt(i).equals(old)) {
+                jtp.setTitleAt(i, niou);
+                jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou);
+                TDiagramPanel tdp;
+                //change panel name
+                for(int j=0; j<tp.panels.size(); j++) {
+                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                    if (tdp.getName().equals(old)) {
+                        tdp.setName(niou);
+                        //TraceManager.addDev("Renamed to " + niou);
+                    }
+                }
+
+                return true;
+            }
+        }
+        // internal error
+        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+        return false;
+    }
+
+    public boolean nameComponentInUse(TURTLEPanel tp, String old, String niou) {
+        JTabbedPane jtp = tp.tabbedPane;
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            if (jtp.getTitleAt(i).equals(niou)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public boolean newTMLComponentTaskName(TURTLEPanel tp, String old, String niou) {
+        JTabbedPane jtp = tp.tabbedPane;
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            if (jtp.getTitleAt(i).equals(niou)) {
+                return false;
+            }
+        }
+        TraceManager.addDev("old " + old + " niou " + niou);
+        for(int i = 0; i<jtp.getTabCount(); i++) {
+            TraceManager.addDev("Tab " + i + " = " + mainTabbedPane.getTitleAt(i));
+            if (jtp.getTitleAt(i).equals(old)) {
+                jtp.setTitleAt(i, niou);
+                jtp.setToolTipTextAt(i, "Opens the TML activity diagram of " + niou);
+                TDiagramPanel tdp;
+                //change panel name
+                for(int j=0; j<tp.panels.size(); j++) {
+                    tdp = (TDiagramPanel)(tp.panels.elementAt(j));
+                    if (tdp.getName().equals(old)) {
+                        tdp.setName(niou);
+                    }
+                }
+
+                return true;
+            }
+        }
+        // internal error
+        ErrorGUI.exit(ErrorGUI.ERROR_TAB);
+        return false;
+    }
+
+    public void cloneTab(int index) {
+        String s = gtm.makeXMLFromTurtleModeling(index, "_cloned");
+        try {
+            gtm.loadModelingFromXML(s);
+            changeMade(null, -1);
+        } catch (MalformedModelingException mme) {
+            JOptionPane.showMessageDialog(frame, "Modeling could not be loaded (unsupported file) ", "Error when loading modeling", JOptionPane.INFORMATION_MESSAGE);
+            frame.setTitle("TTool: unamed project");
+        }
+
+    }
+    public void cloneRenameTab(int index, String s){
+        cloneTab(index);
+        mainTabbedPane.setTitleAt(tabs.size()-1, mainTabbedPane.getTitleAt(index)+"_"+s);
+    }
+    public void requestRemoveTab(int index) {
+        if (index >= tabs.size()) {
+            return;
+        }
+
+        tabs.removeElementAt(index);
+        mainTabbedPane.remove(index);
+        changeMade(null, -1);
+    }
+
+    public void requestMoveRightTab(int index) {
+        //TraceManager.addDev("Move right");
+        if (index > tabs.size()-2) {
+            return;
+        }
+        requestMoveTabFromTo(index, index + 1);
+        changeMade(null, -1);
+    }
+
+    public void requestMoveLeftTab(int index) {
+        //TraceManager.addDev("Move left");
+        if (index < 1) {
+            return;
+        }
+        requestMoveTabFromTo(index, index-1);
+        changeMade(null, -1);
+    }
+
+    public void requestMoveTabFromTo(int src, int dst) {
+
+        // Get all the properties
+        Component comp = mainTabbedPane.getComponentAt(src);
+        String label = mainTabbedPane.getTitleAt(src);
+        Icon icon = mainTabbedPane.getIconAt(src);
+        Icon iconDis = mainTabbedPane.getDisabledIconAt(src);
+        String tooltip = mainTabbedPane.getToolTipTextAt(src);
+        boolean enabled = mainTabbedPane.isEnabledAt(src);
+        int keycode = mainTabbedPane.getMnemonicAt(src);
+        int mnemonicLoc = mainTabbedPane.getDisplayedMnemonicIndexAt(src);
+        Color fg = mainTabbedPane.getForegroundAt(src);
+        Color bg = mainTabbedPane.getBackgroundAt(src);
+
+        // Remove the tab
+        mainTabbedPane.remove(src);
+
+        // Add a new tab
+        mainTabbedPane.insertTab(label, icon, comp, tooltip, dst);
+
+        // Restore all properties
+        mainTabbedPane.setDisabledIconAt(dst, iconDis);
+        mainTabbedPane.setEnabledAt(dst, enabled);
+        mainTabbedPane.setMnemonicAt(dst, keycode);
+        mainTabbedPane.setDisplayedMnemonicIndexAt(dst, mnemonicLoc);
+        mainTabbedPane.setForegroundAt(dst, fg);
+        mainTabbedPane.setBackgroundAt(dst, bg);
+
+        TURTLEPanel o = tabs.elementAt(src);
+        tabs.removeElementAt(src);
+        tabs.insertElementAt(o, dst);
+
+        mainTabbedPane.setSelectedIndex(dst);
+    }
+
+    public void requestRenameTab(int index) {
+        String oldName = mainTabbedPane.getTitleAt(index);
+        String s = (String)JOptionPane.showInputDialog(frame, "Name: ", "Renaming a tab", JOptionPane.PLAIN_MESSAGE, IconManager.imgic101, null, mainTabbedPane.getTitleAt(index));
+        if ((s != null) && (s.length() > 0)){
+            // name already in use?
+            if (s.compareTo(oldName) != 0) {
+                if (isAValidTabName(s)) {
+                    mainTabbedPane.setTitleAt(index, s);
+                    changeMade(getCurrentTDiagramPanel(), /*((TURTLEPanel)(tabs.elementAt(index))).tdp*/TDiagramPanel.MOVE_COMPONENT);
+
+                    TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+                    if ((tp instanceof TMLDesignPanel) || (tp instanceof TMLComponentDesignPanel)) {
+                        renameMapping(oldName, s);
+                    }
+                } else {
+                    JOptionPane.showMessageDialog(frame, "Invalid name", "Error", JOptionPane.INFORMATION_MESSAGE);
+                }
+
+            }
+        }
+        changeMade(null, -1);
+    }
+
+    public void renameMapping(String oldName, String newName) {
+        TURTLEPanel tp;
+
+        for(int i = 0; i<mainTabbedPane.getTabCount(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof TMLArchiPanel) {
+                ((TMLArchiPanel)tp).renameMapping(oldName, newName);
+            }
+        }
+
+    }
+
+    public void renameDeployment(String oldName, String newName) {
+        TURTLEPanel tp;
+
+        for(int i = 0; i<mainTabbedPane.getTabCount(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (tp instanceof ADDPanel) {
+                ((ADDPanel)tp).renameDeployment(oldName, newName);
+            }
+        }
+
+    }
+
+    public boolean selectTDiagramPanel(TDiagramPanel tdp) {
+        return (selectTab(getPoint(tdp)) == tdp);
+    }
+
+    public boolean selectTab(TURTLEPanel tp, String s) {
+        int j;
+        int index1 = tabs.indexOf(tp);
+
+        if (mainTabbedPane.getSelectedIndex() != index1) {
+            mainTabbedPane.setSelectedIndex(index1);
+        }
+
+        for(j=0; j<tp.tabbedPane.getTabCount(); j++) {
+            if (tp.tabbedPane.getTitleAt(j).equals(s)) {
+                tp.tabbedPane.setSelectedIndex(j);
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    public boolean selectTab(String s) {
+        return selectTab(getCurrentTURTLEPanel(), s);
+    }
+
+    public void openTMLTaskActivityDiagram(String panel, String tab) {
+        int index = mainTabbedPane.indexOfTab(panel);
+        if (index != -1) {
+            mainTabbedPane.setSelectedIndex(index);
+        }
+        openTMLTaskActivityDiagram(tab);
+    }
+
+    public void openTMLTaskActivityDiagram(String tab) {
+        selectTab(getCurrentTURTLEPanel(), tab);
+    }
+
+    public void refreshCurrentPanel() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public void openAVATARSMD(String tab) {
+        TDiagramPanel cur = getCurrentTDiagramPanel();
+        selectTab(getCurrentTURTLEPanel(), tab);
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp == cur) {
+            tdp.repaint();
+        }
+    }
+
+    public boolean selectHighLevelTab(String s) {
+        TURTLEPanel tp = getTURTLEPanel(s);
+        if (s != null) {
+            selectTab(tp);
+            return true;
+        }
+        return false;
+    }
+
+    public TDiagramPanel selectTab(Point p) {
+        mainTabbedPane.setSelectedIndex(p.x);
+        TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(p.x));
+        tp.tabbedPane.setSelectedIndex(p.y);
+        return (TDiagramPanel)(tp.panels.elementAt(p.y));
+
+    }
+
+    public Point getCurrentSelectedPoint() {
+        Point p = new Point();
+
+        p.x = mainTabbedPane.getSelectedIndex();
+        if (getCurrentTURTLEPanel() == null) {
+            p.y = -1;
+        } else {
+            p.y = getCurrentTURTLEPanel().tabbedPane.getSelectedIndex();
+        }
+
+        return p;
+    }
+
+    public Point getPoint(TDiagramPanel tdp) {
+        Point p = new Point();
+
+        int index;
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            index = tp.panels.indexOf(tdp);
+            if (index > -1) {
+                p.x = i;
+                p.y = index;
+                return p;
+            }
+        }
+        p.x = 0;
+        p.y = 0;
+
+        return p;
+    }
+
+    public DesignPanel getDesignPanel(String name) {
+        int index = mainTabbedPane.indexOfTab(name);
+        try {
+            TURTLEPanel tp = (TURTLEPanel)(tabs.elementAt(index));
+
+            if (tp instanceof DesignPanel) {
+                return (DesignPanel)tp;
+            } else {
+                return null;
+            }
+        } catch (Exception e) {
+            return null;
+        }
+    }
+    //---------------------------------- DDD ------------------------------------
+    // return current deployment panel
+
+    public ADDDiagramPanel getDeploymentPanel() {
+        ADDDiagramPanel deploymentDiagram =  null ; //(ADDDiagramPanel)activetdp;
+        TURTLEPanel tp = getCurrentTURTLEPanel();
+        Vector<TDiagramPanel> ps = tp.panels;
+        for(TDiagramPanel panel : ps ){
+            if (panel instanceof ADDDiagramPanel){
+                deploymentDiagram = (ADDDiagramPanel)panel;
+            }
+        }
+        if(deploymentDiagram == null)
+            System.err.println("No ADDDiagramPanel found : MainGUI.getDeploymentPanel()");
+        return deploymentDiagram;
+    }
+
+
+    public ADDDiagramPanel getFirstAvatarDeploymentPanelFound(){
+        ADDDiagramPanel adp = null;
+        for(int i =0 ; i<tabs.size();i++)
+            if(tabs.get(i) instanceof ADDPanel){
+                adp = ((ADDPanel)tabs.get(i)).tmladd;
+            }
+        if (adp == null)
+            System.err.println("No AvatarDeployment Panel Found : MainGUI.getFirstAvatarDeploymentPanelFound()");
+        return adp;
+    }
+
+
+    // find the first Design Panel in MainGUI.tabs
+
+    public AvatarDesignPanel getFirstAvatarDesignPanelFound(){
+        AvatarDesignPanel adp = null;
+        for(int i =0 ; i<tabs.size();i++)
+            if(tabs.get(i) instanceof AvatarDesignPanel){
+                adp = (AvatarDesignPanel)tabs.get(i);
+            }
+        if (adp == null)
+            System.err.println("No AvatarDesign Panel Found : MainGUI.getFirstAvatarDesignPanel()");
+        return adp;
+    }
+
+
+    public void extracDeploymentDiagramToFile(){
+
+        ADDDiagramPanel deploymentDiagramPanel = getDeploymentPanel();
+        AvatarDesignPanel designDiagramPanel = getFirstAvatarDesignPanelFound();
+
+        AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel);
+        /*AvatarddSpecification avddspec =*/ avdeploymenttranslator.getAvatarddSpecification();
+
+
+        AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator( designDiagramPanel);
+        List<AvatarBDStateMachineOwner> adp =  designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList();
+        /*AvatarSpecification avaspec =*/ avdesigntranslator.generateAvatarSpecification(adp);
+
+        //DG
+        //LinkedList<AvatarComponent> components = AvatarddSpecification.getComponents();
+        //AvatarToFile tofile;
+        //tofile =  new AvatarToFile(components,avaspec);
+        //tofile.extracParamToFile();
+    }
+
+    public void avatarToSoclib(){
+        //DG 6.2. appelee nulle part?
+
+        ADDDiagramPanel deploymentDiagramPanel = getDeploymentPanel();
+        AvatarDesignPanel designDiagramPanel = getFirstAvatarDesignPanelFound();
+
+        AvatarDeploymentPanelTranslator avdeploymenttranslator = new AvatarDeploymentPanelTranslator(deploymentDiagramPanel);
+        AvatarddSpecification avddspec = avdeploymenttranslator.getAvatarddSpecification();
+
+
+        AvatarDesignPanelTranslator avdesigntranslator = new AvatarDesignPanelTranslator( designDiagramPanel);
+
+        LinkedList<AvatarBDStateMachineOwner> adp =  designDiagramPanel.getAvatarBDPanel().getFullStateMachineOwnerList();
+        AvatarSpecification avaspec = avdesigntranslator.generateAvatarSpecification(adp);
+
+        // Generator for block tasks and application main file
+
+        TasksAndMainGenerator gene = new TasksAndMainGenerator(avddspec,avaspec);
+        gene.generateSoclib(false,false);
+        try{
+            //System.err.println("ok");
+            gene.saveInFiles(TasksAndMainGenerator.getGeneratedPath());
+        }catch(FileException e){
+            System.err.println("FileException : MainGUI.avatarToSoclib()");
+        }
+
+    }
+    //--------------------end DDD------------------------------------------------
+
+    public boolean selectMainTab(String id) {
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            if (getTabName(tp).compareTo(id) == 0) {
+                selectTab(tp);
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    public void selectTab(TURTLEPanel tp) {
+        int index1 = tabs.indexOf(tp);
+        mainTabbedPane.setSelectedIndex(index1);
+    }
+
+    public void selectTab(TDiagramPanel tdp) {
+        int index;
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            index = tp.panels.indexOf(tdp);
+            if (index > -1) {
+                selectTab(tp);
+                tp.tabbedPane.setSelectedIndex(index);
+            }
+        }
+    }
+
+    public void toggleAttributes() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
+            //TraceManager.addDev("Toggle attributes");
+            TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
+            tdcp.setAttributesVisible(!tdcp.areAttributesVisible());
+            tdcp.checkAllMySize();
+            tdcp.repaint();
+            changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    // AVATAR Simulation
+    public void setAVATARIDs(boolean b) {
+        TDiagramPanel.AVATAR_ID_ON = b;
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public void toggleAVATARIDs() {
+        setAVATARIDs(!TDiagramPanel.AVATAR_ID_ON);
+        TraceManager.addDev("AVATAR id: " + TDiagramPanel.AVATAR_ID_ON);
+    }
+
+    // For simulation purpose
+    public void resetAllDIPLOIDs() {
+        TURTLEPanel tp;
+
+        for(int i=0; i<tabs.size(); i++) {
+            tp = (TURTLEPanel)(tabs.elementAt(i));
+            tp.resetAllDIPLOIDs();
+        }
+    }
+
+    public void toggleDiploIDs() {
+        setDiploIDs(!TDiagramPanel.DIPLO_ID_ON);
+    }
+
+    public void toggleTEPEIDs() {
+        setTEPEIDs(!TDiagramPanel.TEPE_ID_ON);
+    }
+
+    public void toggleDiploAnimate() {
+        setDiploAnimate(!TDiagramPanel.DIPLO_ANIMATE_ON);
+    }
+
+    public int isRunningAvatarComponent(TGComponent _tgc) {
+        if(jfais.isVisible()) {
+            if (jfais.isRunningComponent(_tgc)) {
+                return 1;
+            }
+            if (jfais.isSelectedComponentFromTransaction(_tgc)) {
+                return 2;
+            }
+        }
+        return 0;
+    }
+
+    public String[] hasMessageInformationForAvatarConnector(AvatarBDPortConnector _conn) {
+        if(jfais.isVisible()) {
+            return jfais.getFirstMessagesOnEachConnectorSide(_conn);
+        }
+        return null;
+    }
+
+    public void setDiploAnimate(boolean b) {
+        TDiagramPanel.DIPLO_ANIMATE_ON = b;
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public void setAvatarAnimate(boolean b) {
+        TDiagramPanel.AVATAR_ANIMATE_ON = b;
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public void setDiploIDs(boolean b) {
+        TDiagramPanel.DIPLO_ID_ON = b;
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public void setTEPEIDs(boolean b) {
+        TDiagramPanel.TEPE_ID_ON = b;
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public void setTransationProgression(boolean b) {
+        TDiagramPanel.DIPLO_TRANSACTION_PROGRESSION_ON = b;
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public synchronized RunningInfo isRunningID(int id) {
+        if (runningIDs == null) {
+            return null;
+        }
+
+        for(RunningInfo ri: runningIDs) {
+            if (ri.id == id) {
+                return ri;
+            }
+        }
+
+        return null;
+    }
+    public synchronized ArrayList<SimulationTransaction> getTransactions(int id){
+        if (transactionMap == null) {
+            return null;
+        }
+
+        return transactionMap.get(id);
+    }
+    public synchronized ConcurrentHashMap<String,String> getStatus(int id){
+        if (statusMap == null) {
+            return null;
+        }
+
+        return statusMap;
+    }
+
+    public String getStatus(String s){
+        if (statusMap==null){
+            return null;
+        }
+        return statusMap.get(s);
+    }
+    public synchronized LoadInfo isLoadID(int id) {
+        if (loadIDs == null) {
+            return null;
+        }
+
+        for(LoadInfo li: loadIDs) {
+            if (li.id == id) {
+                return li;
+            }
+        }
+
+        return null;
+    }
+
+    public synchronized void resetRunningID() {
+        if (runningIDs != null) {
+            runningIDs.clear();
+        }
+        runningIDs = null;
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public synchronized void resetLoadID() {
+        if (loadIDs != null) {
+            loadIDs.clear();
+        }
+        loadIDs = null;
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+    public synchronized void resetTransactions() {
+        transactionMap.clear();
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+    public synchronized void resetStatus() {
+        statusMap.clear();
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public synchronized void addRunningIDTaskState(int _id, String _state) {
+        if (runningIDs == null) {
+            return;
+        }
+
+        if (_state == null) {
+            _state = "unknown";
+        }
+
+        for(RunningInfo ri: runningIDs) {
+            if (ri.id == _id) {
+                ri.state = _state.toLowerCase();
+                //TraceManager.addDev("Updated state on UML diagram");
+                TDiagramPanel tdp = getCurrentTDiagramPanel();
+                if (tdp != null) {
+                    tdp.repaint();
+                }
+                return;
+            }
+        }
+
+    }
+
+    public synchronized void addRunningID(int _id, int _nextCommand, String _progression, String _startTime, String _finishTime, String _transStartTime, String _transFinishTime, String _state) {
+        if (runningIDs == null) {
+            runningIDs = new ArrayList<RunningInfo>();
+        }
+        RunningInfo ri = new RunningInfo();
+        if (_state == null) {
+            _state = "unknown";
+        }
+        ri.id = _id;
+        ri.nextCommand = _nextCommand;
+        ri.progression = _progression;
+        ri.startTime = _startTime;
+        ri.finishTime = _finishTime;
+        ri.transStartTime = _transStartTime;
+        ri.transFinishTime = _transFinishTime;
+        ri.state = _state.toLowerCase();
+        runningIDs.add(ri);
+        //TraceManager.addDev("Running id " + id +  " added");
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+    public synchronized void addTransaction(int _id, SimulationTransaction st){
+        if (transactionMap.containsKey(_id)){
+            if (!transactionMap.get(_id).contains(st)){
+                transactionMap.get(_id).add(st);
+            }
+        }
+        else {
+            ArrayList<SimulationTransaction> ts = new ArrayList<SimulationTransaction>();
+            ts.add(st);
+            transactionMap.put(_id, ts);
+        }
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public synchronized void addStatus(String task, String stat){
+        statusMap.put(task, stat);
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public synchronized void addLoadInfo(int _id, double _load, long _energy) {
+        if (loadIDs == null) {
+            loadIDs = new ArrayList<LoadInfo>();
+        }
+
+        removeLoadId(_id);
+        LoadInfo li = new LoadInfo();
+        li.id = _id;
+        li.load = _load;
+        li.energy = _energy;
+        loadIDs.add(li);
+        //TraceManager.addDev("Running id " + _id +  " added load=" + _load);
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.repaint();
+        }
+    }
+
+    public synchronized void removeRunningId(Integer id) {
+        if (runningIDs == null) {
+            return ;
+        }
+
+        for(RunningInfo ri: runningIDs) {
+            if (ri.id == id.intValue()) {
+                runningIDs.remove(ri);
+                //TraceManager.addDev("Running id " + i +  " removed");
+                return;
+            }
+        }
+        getCurrentTDiagramPanel().repaint();
+    }
+
+    public synchronized void removeLoadId(int _id) {
+        if (loadIDs == null) {
+            return ;
+        }
+
+        for(LoadInfo li: loadIDs) {
+            if (li.id == _id) {
+                loadIDs.remove(li);
+                //TraceManager.addDev("Running id " + i +  " removed");
+                return;
+            }
+        }
+        getCurrentTDiagramPanel().repaint();
+    }
+
+    public void toggleGates() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
+            //TraceManager.addDev("Toggle gates");
+            TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
+            tdcp.setGatesVisible(!tdcp.areGatesVisible());
+            tdcp.checkAllMySize();
+            tdcp.repaint();
+            changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    public void toggleSynchro() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if ((tdp != null) && (tdp instanceof TClassDiagramPanel)){
+            //TraceManager.addDev("Toggle synchro");
+            TClassDiagramPanel tdcp = (TClassDiagramPanel)tdp;
+            tdcp.setSynchroVisible(!tdcp.areSynchroVisible());
+            tdcp.checkAllMySize();
+            tdcp.repaint();
+            changeMade(tdcp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    public void toggleJava() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if ((tdp != null) && (tdp instanceof TActivityDiagramPanel)){
+            //TraceManager.addDev("Toggle synchro");
+            TActivityDiagramPanel tadp = (TActivityDiagramPanel)tdp;
+            tadp.setJavaVisible(!tadp.isJavaVisible());
+            tadp.checkAllMySize();
+            tadp.repaint();
+            changeMade(tadp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    public void toggleInternalComment() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null) {
+            tdp.setInternalCommentVisible((tdp.getInternalCommentVisible() + 1) % 3);
+            tdp.checkAllMySize();
+            tdp.repaint();
+            changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    public void toggleAttr() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if (tdp != null){
+            //TraceManager.addDev("Toggle attributes");
+            tdp.setAttributes((tdp.getAttributeState() + 1) % 3);
+            tdp.checkAllMySize();
+            tdp.repaint();
+            changeMade(tdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    public void toggleChannels() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
+            //TraceManager.addDev("Toggle attributes");
+            TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
+            tmltdp.setChannelsVisible(!tmltdp.areChannelsVisible());
+            tmltdp.checkAllMySize();
+            tmltdp.repaint();
+            changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    public void toggleEvents() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
+            //TraceManager.addDev("Toggle attributes");
+            TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
+            tmltdp.setEventsVisible(!tmltdp.areEventsVisible());
+            tmltdp.checkAllMySize();
+            tmltdp.repaint();
+            changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    public void toggleRequests() {
+        TDiagramPanel tdp = getCurrentTDiagramPanel();
+        if ((tdp != null) && (tdp instanceof TMLTaskDiagramPanel)){
+            //TraceManager.addDev("Toggle attributes");
+            TMLTaskDiagramPanel tmltdp = (TMLTaskDiagramPanel)tdp;
+            tmltdp.setRequestsVisible(!tmltdp.areRequestsVisible());
+            tmltdp.checkAllMySize();
+            tmltdp.repaint();
+            changeMade(tmltdp, TDiagramPanel.CHANGE_VALUE_COMPONENT);
+        }
+    }
+
+    public boolean isAValidTabName(String name) {
+        return name.matches("((\\w)*(\\s)*)*");
+    }
+
+
+
+    public void windowClosing(WindowEvent e) {
+        //frame.setVisible(false);
+        quitApplication();
+    }
+
+    public void windowClosed(WindowEvent e) {
+    }
+
+    public void windowOpened(WindowEvent e) {
+    }
+
+    public void windowIconified(WindowEvent e) {
+    }
+
+    public void windowDeiconified(WindowEvent e) {
+    }
+
+    public void windowActivated(WindowEvent e) {
+    }
+
+    public void windowDeactivated(WindowEvent e) {
+    }
+
+
+    // TGUIACtions Event listener
+
+    public void keyTyped(KeyEvent e) {
+        TraceManager.addDev("KEY TYPED");
+    }
+
+    public void keyPressed(KeyEvent e) {
+        TraceManager.addDev("KEY PRESSED: ");
+    }
+
+    public void keyReleased(KeyEvent e) {
+        TraceManager.addDev("KEY RELEASED: ");
+    }
+
+    public void actionPerformed(ActionEvent evt)  {
+        String command = evt.getActionCommand();
+        //TraceManager.addDev("Command:" + command);
+        TDiagramPanel tdp1 = getCurrentTDiagramPanel();
+        if (tdp1 != null) {
+            //TraceManager.addDev("Stop Adding connector in maingui");
+            tdp1.stopAddingConnector();
+        }
+
+        ActionPerformer.actionPerformed(this, evt, command, tdp1);
+
+
+    }
+
+    private  class PopupListener extends MouseAdapter /* popup menus onto tabs */ {
+        private MainGUI mgui;
+        private JPopupMenu menu;
+
+        private JMenuItem rename, remove, moveRight, moveLeft, newDesign, newAnalysis, newDeployment, newRequirement/*, newTMLDesign*/, newTMLComponentDesign, newTMLArchi, newProactiveDesign, newTURTLEOSDesign,
+            newNCDesign, sort, clone, newAttackTree, newAVATARBD, newAVATARRequirement, newMAD, newTMLCP, newTMLMethodo, newAvatarMethodo, newAVATARDD, newSysmlsecMethodo;
+        private JMenuItem newAVATARAnalysis;
+
+        public PopupListener(MainGUI _mgui) {
+            mgui = _mgui;
+            createMenu();
+        }
+
+        public void mousePressed(MouseEvent e) {
+            checkForPopup(e);
+        }
+        public void mouseReleased(MouseEvent e) {
+            checkForPopup(e);
+        }
+        public void mouseClicked(MouseEvent e) {
+            checkForPopup(e);
+        }
+
+        private void checkForPopup(MouseEvent e) {
+            if(e.isPopupTrigger()) {
+                Component c = e.getComponent();
+                //TraceManager.addDev("e =" + e + " Component=" + c);
+                updateMenu(mgui.getCurrentSelectedIndex());
+                menu.show(c, e.getX(), e.getY());
+            }
+        }
+
+        private void createMenu() {
+            rename = createMenuItem("Rename");
+            remove = createMenuItem("Remove");
+            moveLeft = createMenuItem("Move to the left");
+            moveRight = createMenuItem("Move to the right");
+            sort = createMenuItem("Sort");
+            clone = createMenuItem("Clone");
+            newAnalysis = createMenuItem("New TURTLE Analysis");
+            newDesign = createMenuItem("New TURTLE Design");
+            newDeployment = createMenuItem("New TURTLE Deployment");
+
+            newAttackTree = createMenuItem("New Attack Tree");
+            newRequirement = createMenuItem("New TURTLE Requirement Diagram");
+
+            newTMLMethodo = createMenuItem("New DIPLODOCUS Methodology");
+
+            /*newTMLDesign =*/ createMenuItem("New Partitioning - Design");
+            newTMLComponentDesign = createMenuItem("New Partitioning - Functional view");
+            newTMLArchi = createMenuItem("New Partitioning - Architecture and Mapping");
+            newTMLCP = createMenuItem("New Partitioning - Communication Pattern");
+            newProactiveDesign = createMenuItem("New Proactive Design");
+            newTURTLEOSDesign = createMenuItem("New TURTLE-OS Design");
+            newNCDesign = createMenuItem("New Network Calculus Design");
+            newMAD = createMenuItem("New Modeling Assumptions Diagram");
+            newAVATARRequirement = createMenuItem("New Requirement Diagrams");
+            newAVATARAnalysis = createMenuItem("New Analysis");
+            newAVATARBD = createMenuItem("New Design");
+            newAVATARDD = createMenuItem("New Deployment Diagram");
+            newAvatarMethodo = createMenuItem("New AVATAR Methodology");
+            newSysmlsecMethodo = createMenuItem("New SysML-Sec Methodology");
+
+            menu = new JPopupMenu("Views");
+            menu.add(moveLeft);
+            menu.add(moveRight);
+
+            menu.addSeparator();
+
+            menu.add(rename);
+            menu.add(remove);
+
+            menu.addSeparator();
+
+            menu.add(sort);
+
+            menu.addSeparator();
+
+            menu.add(clone);
+
+            menu.addSeparator();
+
+            // TURTLE first and other old profiles. Old way
+            if (!avatarOnly) {
+                if (turtleOn) {
+                    menu.add(newRequirement);
+                    menu.add(newAnalysis);
+                    menu.add(newDesign);
+                    menu.add(newDeployment);
+                    menu.addSeparator();
+                }
+
+                if (osOn) {
+                    menu.add(newTURTLEOSDesign);
+                    menu.addSeparator();
+                    //TraceManager.addDev("OS is on");
+                } else {
+                    //TraceManager.addDev("OS is off");
+                }
+
+                if (proactiveOn) {
+                    menu.add(newProactiveDesign);
+                    menu.addSeparator();
+                }
+
+                if (ncOn) {
+                    menu.add(newNCDesign);
+                    menu.addSeparator();
+                }
+
+            }
 
-			newTMLMethodo = createMenuItem("New DIPLODOCUS Methodology");
-
-			/*newTMLDesign =*/ createMenuItem("New Partitioning - Design");
-			newTMLComponentDesign = createMenuItem("New Partitioning - Functional view");
-			newTMLArchi = createMenuItem("New Partitioning - Architecture and Mapping");
-			newTMLCP = createMenuItem("New Partitioning - Communication Pattern");
-			newProactiveDesign = createMenuItem("New Proactive Design");
-			newTURTLEOSDesign = createMenuItem("New TURTLE-OS Design");
-			newNCDesign = createMenuItem("New Network Calculus Design");
-			newMAD = createMenuItem("New Modeling Assumptions Diagram");
-			newAVATARRequirement = createMenuItem("New Requirement Diagrams");
-			newAVATARAnalysis = createMenuItem("New Analysis");
-			newAVATARBD = createMenuItem("New Design");
-			newAVATARDD = createMenuItem("New Deployment Diagram");
-			newAvatarMethodo = createMenuItem("New AVATAR Methodology");
-			newSysmlsecMethodo = createMenuItem("New SysML-Sec Methodology");
-
-			menu = new JPopupMenu("Views");
-			menu.add(moveLeft);
-			menu.add(moveRight);
-
-			menu.addSeparator();
-
-			menu.add(rename);
-			menu.add(remove);
-
-			menu.addSeparator();
-
-			menu.add(sort);
-
-			menu.addSeparator();
-
-			menu.add(clone);
-
-			menu.addSeparator();
-
-			// TURTLE first and other old profiles. Old way
-			if (!avatarOnly) {
-				if (turtleOn) {
-					menu.add(newRequirement);
-					menu.add(newAnalysis);
-					menu.add(newDesign);
-					menu.add(newDeployment);
-					menu.addSeparator();
-				}
-
-				if (osOn) {
-					menu.add(newTURTLEOSDesign);
-					menu.addSeparator();
-					//TraceManager.addDev("OS is on");
-				} else {
-					//TraceManager.addDev("OS is off");
-				}
-
-				if (proactiveOn) {
-					menu.add(newProactiveDesign);
-					menu.addSeparator();
-				}
-
-				if (ncOn) {
-					menu.add(newNCDesign);
-					menu.addSeparator();
-				}
-
-			}
-
-
-
-			// Methodologies
-			if (!avatarOnly) {
-				if (systemcOn) {
-					menu.add(newTMLMethodo);
-				}
-
-			}
-
-			if (avatarOn) {
-				menu.add(newAvatarMethodo);
-				menu.add(newSysmlsecMethodo);
-			}
-			menu.addSeparator();
-
-
-			//diagrams
-			if (!avatarOnly) {
-				if (systemcOn) {
-
-					//menu.add(newTMLMethodo);
-					//menu.add(newTMLDesign);
-					menu.add(newTMLComponentDesign);
-					menu.add(newTMLCP);
-					menu.add(newTMLArchi);
-					menu.addSeparator();
-				}
-			}
-
-			if (avatarOn) {
-				//               menu.addSeparator();
-				//menu.add(newAvatarMethodo);
-
-				menu.add(newMAD);
-				menu.add(newAVATARRequirement);
-				menu.add(newAttackTree);
-				menu.add(newAVATARAnalysis);
-				menu.add(newAVATARBD);
-				if (experimentalOn) {
-					menu.add(newAVATARDD);
-				}
-			}
-
-		}
-
-		private JMenuItem createMenuItem(String s) {
-			JMenuItem item = new JMenuItem(s);
-			item.setActionCommand(s);
-			item.addActionListener(listener);
-			return item;
-		}
-
-		private void updateMenu(int index) {
-			//TraceManager.addDev("UpdateMenu index=" + index);
-			if (index < 1) {
-				moveLeft.setEnabled(false);
-			} else {
-				moveLeft.setEnabled(true);
-			}
-
-			if (index + 1 < mgui.tabs.size()) {
-				moveRight.setEnabled(true);
-			} else {
-				moveRight.setEnabled(false);
-			}
-
-			if (index < 0) {
-				rename.setEnabled(false);
-				remove.setEnabled(false);
-				clone.setEnabled(false);
-			} else {
-				rename.setEnabled(true);
-				remove.setEnabled(true);
-				clone.setEnabled(true);
-			}
-
-			if (mgui.mainTabbedPane.getTabCount() < 2) {
-				sort.setEnabled(false);
-			} else {
-				sort.setEnabled(true);
-			}
-		}
-
-		private Action listener = new AbstractAction() {
-
-			/**
-			 * 
-			 */
-			private static final long serialVersionUID = -3632935027104753332L;
-
-			@Override
-			public void actionPerformed(ActionEvent e) {
-				JMenuItem item = (JMenuItem)e.getSource();
-				String ac = item.getActionCommand();
-				if(ac.equals("Rename")) {
-					mgui.requestRenameTab(mainTabbedPane.getSelectedIndex());
-				} else if (ac.equals("Remove")) {
-					mgui.requestRemoveTab(mainTabbedPane.getSelectedIndex());
-				} else if (ac.equals("Move to the left")) {
-					mgui.requestMoveLeftTab(mainTabbedPane.getSelectedIndex());
-				} else if (ac.equals("Move to the right")) {
-					mgui.requestMoveRightTab(mainTabbedPane.getSelectedIndex());
-				} else if (ac.equals("Sort")) {
-					GraphicLib.sortJTabbedPane(mgui.mainTabbedPane, mgui.tabs, 0, mgui.mainTabbedPane.getTabCount());
-					mgui.changeMade(null, -1);
-				} else if (ac.equals("Clone")) {
-					mgui.cloneTab(mainTabbedPane.getSelectedIndex());
-				} else if (ac.equals("New TURTLE Analysis")) {
-					mgui.newAnalysis();
-				} else if (ac.equals("New TURTLE Design")) {
-					mgui.newDesign();
-				} else if (ac.equals("New TURTLE Deployment")) {
-					mgui.newDeployment();
-				} else if (e.getSource() == newAttackTree) {
-					mgui.newAttackTree();
-				} else if (ac.equals("New TURTLE Requirement Diagram")) {
-					mgui.newRequirement();
-				}    else if (e.getSource() == newTMLMethodo) {
-					mgui.newDiplodocusMethodology();
-				}    else if (e.getSource() == newAvatarMethodo) {
-					mgui.newAvatarMethodology();
-				}    else if (e.getSource() == newSysmlsecMethodo) {
-					mgui.newSysmlsecMethodology();
-				} else if (ac.equals("New DIPLODOCUS Design")) {
-					mgui.newTMLDesign();
-				} else if (e.getSource() == newTMLComponentDesign) {
-					mgui.newTMLComponentDesign();
-				} else if (e.getSource() == newTMLCP) {
-					mgui.newTMLCP();
-				} else if (e.getSource() == newTMLArchi) {
-					mgui.newTMLArchi();
-				} else if (ac.equals("New Proactive Design")) {
-					mgui.newProactiveDesign();
-				} else if (ac.equals("New TURTLE-OS Design")) {
-					mgui.newTURTLEOSDesign();
-				} else if (e.getSource() == newNCDesign) {
-					mgui.newNCDesign();
-				} else if (e.getSource() == newAVATARBD) {
-					mgui.newAvatarBD();
-				} else if (e.getSource() == newAVATARDD) {
-					mgui.newADD();
-				} else if (e.getSource() == newAVATARRequirement) {
-					mgui.newAvatarRequirement();
-				} else if (e.getSource() == newMAD) {
-					mgui.newAvatarMADs();
-				} else if (e.getSource() == newAVATARAnalysis) {
-					mgui.newAvatarAnalysis();
-				}
-			}
-		};
-	}
-
-
-	/**
-	 * This adapter is constructed to handle mouse over component events.
-	 */
-	private class MouseHandler extends MouseAdapter  {
-
-		private JLabel label;
-
-		/**
-		 * ctor for the adapter.
-		 * @param label the JLabel which will recieve value of the
-		 *              Action.LONG_DESCRIPTION key.
-		 */
-		public MouseHandler(JLabel label)  {
-			setLabel(label);
-		}
-
-		public void setLabel(JLabel label)  {
-			this.label = label;
-		}
-
-		public void mouseEntered(MouseEvent evt)  {
-			if (evt.getSource() instanceof AbstractButton)  {
-				AbstractButton button = (AbstractButton)evt.getSource();
-				Action action = button.getAction();
-				if (action != null)  {
-					String message = (String)action.getValue(Action.LONG_DESCRIPTION);
-					label.setText(message);
-				}
-			}
-		}
-	}
-
-	// Get the currently opened architecture panel
-	public TMLArchiPanel getCurrentArchiPanel() {
-		return tmlap;
-	}
+
+
+            // Methodologies
+            if (!avatarOnly) {
+                if (systemcOn) {
+                    menu.add(newTMLMethodo);
+                }
+
+            }
+
+            if (avatarOn) {
+                menu.add(newAvatarMethodo);
+                menu.add(newSysmlsecMethodo);
+            }
+            menu.addSeparator();
+
+
+            //diagrams
+            if (!avatarOnly) {
+                if (systemcOn) {
+
+                    //menu.add(newTMLMethodo);
+                    //menu.add(newTMLDesign);
+                    menu.add(newTMLComponentDesign);
+                    menu.add(newTMLCP);
+                    menu.add(newTMLArchi);
+                    menu.addSeparator();
+                }
+            }
+
+            if (avatarOn) {
+                //               menu.addSeparator();
+                //menu.add(newAvatarMethodo);
+
+                menu.add(newMAD);
+                menu.add(newAVATARRequirement);
+                menu.add(newAttackTree);
+                menu.add(newAVATARAnalysis);
+                menu.add(newAVATARBD);
+                if (experimentalOn) {
+                    menu.add(newAVATARDD);
+                }
+            }
+
+        }
+
+
+
+        private JMenuItem createMenuItem(String s) {
+            JMenuItem item = new JMenuItem(s);
+            item.setActionCommand(s);
+            item.addActionListener(listener);
+            return item;
+        }
+
+        private void updateMenu(int index) {
+            //TraceManager.addDev("UpdateMenu index=" + index);
+            if (index < 1) {
+                moveLeft.setEnabled(false);
+            } else {
+                moveLeft.setEnabled(true);
+            }
+
+            if (index + 1 < mgui.tabs.size()) {
+                moveRight.setEnabled(true);
+            } else {
+                moveRight.setEnabled(false);
+            }
+
+            if (index < 0) {
+                rename.setEnabled(false);
+                remove.setEnabled(false);
+                clone.setEnabled(false);
+            } else {
+                rename.setEnabled(true);
+                remove.setEnabled(true);
+                clone.setEnabled(true);
+            }
+
+            if (mgui.mainTabbedPane.getTabCount() < 2) {
+                sort.setEnabled(false);
+            } else {
+                sort.setEnabled(true);
+            }
+        }
+
+        private Action listener = new AbstractAction() {
+
+                /**
+                 *
+                 */
+                private static final long serialVersionUID = -3632935027104753332L;
+
+                @Override
+                public void actionPerformed(ActionEvent e) {
+                    JMenuItem item = (JMenuItem)e.getSource();
+                    String ac = item.getActionCommand();
+                    if(ac.equals("Rename")) {
+                        mgui.requestRenameTab(mainTabbedPane.getSelectedIndex());
+                    } else if (ac.equals("Remove")) {
+                        mgui.requestRemoveTab(mainTabbedPane.getSelectedIndex());
+                    } else if (ac.equals("Move to the left")) {
+                        mgui.requestMoveLeftTab(mainTabbedPane.getSelectedIndex());
+                    } else if (ac.equals("Move to the right")) {
+                        mgui.requestMoveRightTab(mainTabbedPane.getSelectedIndex());
+                    } else if (ac.equals("Sort")) {
+                        GraphicLib.sortJTabbedPane(mgui.mainTabbedPane, mgui.tabs, 0, mgui.mainTabbedPane.getTabCount());
+                        mgui.changeMade(null, -1);
+                    } else if (ac.equals("Clone")) {
+                        mgui.cloneTab(mainTabbedPane.getSelectedIndex());
+                    } else if (ac.equals("New TURTLE Analysis")) {
+                        mgui.newAnalysis();
+                    } else if (ac.equals("New TURTLE Design")) {
+                        mgui.newDesign();
+                    } else if (ac.equals("New TURTLE Deployment")) {
+                        mgui.newDeployment();
+                    } else if (e.getSource() == newAttackTree) {
+                        mgui.newAttackTree();
+                    } else if (ac.equals("New TURTLE Requirement Diagram")) {
+                        mgui.newRequirement();
+                    }    else if (e.getSource() == newTMLMethodo) {
+                        mgui.newDiplodocusMethodology();
+                    }    else if (e.getSource() == newAvatarMethodo) {
+                        mgui.newAvatarMethodology();
+                    }    else if (e.getSource() == newSysmlsecMethodo) {
+                        mgui.newSysmlsecMethodology();
+                    } else if (ac.equals("New DIPLODOCUS Design")) {
+                        mgui.newTMLDesign();
+                    } else if (e.getSource() == newTMLComponentDesign) {
+                        mgui.newTMLComponentDesign();
+                    } else if (e.getSource() == newTMLCP) {
+                        mgui.newTMLCP();
+                    } else if (e.getSource() == newTMLArchi) {
+                        mgui.newTMLArchi();
+                    } else if (ac.equals("New Proactive Design")) {
+                        mgui.newProactiveDesign();
+                    } else if (ac.equals("New TURTLE-OS Design")) {
+                        mgui.newTURTLEOSDesign();
+                    } else if (e.getSource() == newNCDesign) {
+                        mgui.newNCDesign();
+                    } else if (e.getSource() == newAVATARBD) {
+                        mgui.newAvatarBD();
+                    } else if (e.getSource() == newAVATARDD) {
+                        mgui.newADD();
+                    } else if (e.getSource() == newAVATARRequirement) {
+                        mgui.newAvatarRequirement();
+                    } else if (e.getSource() == newMAD) {
+                        mgui.newAvatarMADs();
+                    } else if (e.getSource() == newAVATARAnalysis) {
+                        mgui.newAvatarAnalysis();
+                    }
+                }
+            };
+    }
+
+
+    /**
+     * This adapter is constructed to handle mouse over component events.
+     */
+    private class MouseHandler extends MouseAdapter  {
+
+        private JLabel label;
+
+        /**
+         * ctor for the adapter.
+         * @param label the JLabel which will recieve value of the
+         *              Action.LONG_DESCRIPTION key.
+         */
+        public MouseHandler(JLabel label)  {
+            setLabel(label);
+        }
+
+        public void setLabel(JLabel label)  {
+            this.label = label;
+        }
+
+        public void mouseEntered(MouseEvent evt)  {
+            if (evt.getSource() instanceof AbstractButton)  {
+                AbstractButton button = (AbstractButton)evt.getSource();
+                Action action = button.getAction();
+                if (action != null)  {
+                    String message = (String)action.getValue(Action.LONG_DESCRIPTION);
+                    label.setText(message);
+                }
+            }
+        }
+    }
+
+    // Get the currently opened architecture panel
+    public TMLArchiPanel getCurrentArchiPanel() {
+        return tmlap;
+    }
 } // Class MainGUI
diff --git a/src/ui/ModeManager.java b/src/ui/ModeManager.java
index 415934e1e88f1eff0d47c26a028d679f7d8c49df..58c72430aba0e5ef8e8bba6484adcdc0416135c8 100755
--- a/src/ui/ModeManager.java
+++ b/src/ui/ModeManager.java
@@ -60,6 +60,7 @@ public class ModeManager {
             mgui.activeActions(false);
             actions[TGUIAction.ACT_NEW].setEnabled(true);
             actions[TGUIAction.ACT_OPEN].setEnabled(true);
+	    actions[TGUIAction.ACT_OPEN_FROM_NETWORK].setEnabled(true);
             actions[TGUIAction.ACT_OPEN_TIF].setEnabled(true);
             actions[TGUIAction.ACT_OPEN_SD].setEnabled(true);
             actions[TGUIAction.ACT_OPEN_LAST].setEnabled(true);
diff --git a/src/ui/TDiagramPanel.java b/src/ui/TDiagramPanel.java
index e688e840f109ca1b06e4d7015544c673b7c3eb8d..3e053525a391664a7d8ab3e4919d5edb79083f5d 100755
--- a/src/ui/TDiagramPanel.java
+++ b/src/ui/TDiagramPanel.java
@@ -165,7 +165,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
     protected final int increment = 500;
 
     private double zoom = 1.0;
- //   private boolean zoomed = false;
+    //   private boolean zoomed = false;
 
     private boolean draw;
 
@@ -403,9 +403,9 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                 //TraceManager.addDev("Painting " + tgc.getName() + " x=" + tgc.getX() + " y=" + tgc.getY());
                 tgc.draw(g);
             }
-	    else {
-	        //TraceManager.addDev("Ignoring " + tgc.getName() + " x=" + tgc.getX() + " y=" + tgc.getY()); 
-	    }
+            else {
+                //TraceManager.addDev("Ignoring " + tgc.getName() + " x=" + tgc.getX() + " y=" + tgc.getY());
+            }
         }
     }
 
@@ -450,12 +450,12 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                 continue;
 
             tgc.draw (g);
-	    
-	    // CONNECTING POINTS
+
+            // CONNECTING POINTS
             if (this.mgui.getTypeButtonSelected () != TGComponentManager.EDIT)
                 tgc.drawTGConnectingPoint (g, this.mgui.getIdButtonSelected());
 
-            if (this.mode == MOVE_CONNECTOR_HEAD) 
+            if (this.mode == MOVE_CONNECTOR_HEAD)
                 tgc.drawTGConnectingPoint (g, this.type);
 
             if (this.javaVisible && (tgc.hasPostJavaCode () || tgc.hasPreJavaCode ()))
@@ -480,10 +480,10 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         if (this.mode == SELECTING_COMPONENTS) {
             g.setColor(Color.black);
             GraphicLib.dashedRect (g,
-                    Math.min(this.initSelectX, this.currentSelectX),
-                    Math.min(this.initSelectY, this.currentSelectY),
-                    Math.abs(this.currentSelectX - this.initSelectX),
-                    Math.abs(this.currentSelectY - this.initSelectY));
+                                   Math.min(this.initSelectX, this.currentSelectX),
+                                   Math.min(this.initSelectY, this.currentSelectY),
+                                   Math.abs(this.currentSelectX - this.initSelectX),
+                                   Math.abs(this.currentSelectY - this.initSelectY));
         }
 
         if ((this.mode == SELECTED_COMPONENTS || this.mode == MOVING_SELECTED_COMPONENTS) && this.selectedTemp) {
@@ -616,7 +616,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         StringBuffer s;
 
         //Added by Solange to see the components in the list
-    //    LinkedList<TGComponent> ruteoList = this.componentList;
+        //    LinkedList<TGComponent> ruteoList = this.componentList;
         //
         for (TGComponent tgc: this.componentList) {
             if ((selected == false) || (tgc.isSelected())) {
@@ -628,7 +628,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                 sb.append("\n");
             }
         }
-        
+
         return sb;
     }
 
@@ -717,7 +717,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
         TGComponent tmp = componentPointed;
         componentPointed = null;
-	this.setToolTipText(null);
+        this.setToolTipText(null);
         for (TGComponent tgc: this.componentList) {
             //state = tgc.getState();
             tgcTmp = tgc.isOnMeHL(x, y);
@@ -725,12 +725,12 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                 if (!pointedElementFound) {
                     componentPointed = tgcTmp;
                     tgc.setState(TGState.POINTED);
-		    String tooltip = componentPointed.getToolTipText();
-		    if (tooltip!=null && tooltip.length()>0){
-		    	this.setToolTipText(tooltip);
-		    }
-		    String tmpinfo = componentPointed.getStatusInformation();
-		    if (tmpinfo != null) { mgui.setStatusBarText(tmpinfo);}
+                    String tooltip = componentPointed.getToolTipText();
+                    if (tooltip!=null && tooltip.length()>0){
+                        this.setToolTipText(tooltip);
+                    }
+                    String tmpinfo = componentPointed.getStatusInformation();
+                    if (tmpinfo != null) { mgui.setStatusBarText(tmpinfo);}
                     pointedElementFound = true;
                     info = 2;
                 } else {
@@ -847,7 +847,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
             if (pointedElementFound)
                 b =  tgc.setStateTGConnectingPoint(TGConnectingPoint.NORMAL) || b;
             else {
-		b =  tgc.setStateTGConnectingPoint(TGConnectingPoint.NORMAL) || b;
+                b =  tgc.setStateTGConnectingPoint(TGConnectingPoint.NORMAL) || b;
                 TGConnectingPoint cp = tgc.getFreeTGConnectingPointAtAndCompatible(x, y, type);
                 if ((cp != null) && (cp.isOut()) && (cp.isFree()) && (cp.isCompatibleWith(type))) {
                     selectedConnectingPoint = cp;
@@ -860,9 +860,9 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         return b;
     }
 
-     public boolean highlightInAndFreeConnectingPoint(int x, int y, int type) {
+    public boolean highlightInAndFreeConnectingPoint(int x, int y, int type) {
         TGConnectingPoint cp;
-     //   int state;
+        //   int state;
         boolean b = false;
         boolean pointedElementFound = false;
         selectedConnectingPoint = null;
@@ -898,7 +898,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
     public TGComponent addComponent(int x, int y, int id, boolean swallow) {
         TGComponent tgc = TGComponentManager.addComponent(x, y, id, this);
         addComponent(tgc, x, y, swallow, true);
-	
+
         return tgc;
     }
 
@@ -1309,7 +1309,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         componentMenu.add(removeInternalComment);
         componentMenu.add(checkAccessibility);
         componentMenu.add(checkInvariant);
-		componentMenu.add(checkLatency);
+        componentMenu.add(checkLatency);
         componentMenu.add(checkMasterMutex);
         componentMenu.add(breakpoint);
 
@@ -1414,8 +1414,8 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         checkInvariant = new JMenuItem("Check for mutual exclusion");
         checkInvariant.addActionListener(menuAL);
 
-		checkLatency = new JMenuItem("Set latency measurement checkpoint");
-		checkLatency.addActionListener(menuAL);
+        checkLatency = new JMenuItem("Set latency measurement checkpoint");
+        checkLatency.addActionListener(menuAL);
 
         checkMasterMutex = new JMenuItem("Search for other states in mutual exclusion with");
         checkMasterMutex.addActionListener(menuAL);
@@ -1594,7 +1594,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
             componentPopup.setInternalComment(jdn.getText());
             mgui.changeMade(this, CHANGE_VALUE_COMPONENT);
             repaint();
-            
+
             return;
         }
 
@@ -1616,11 +1616,11 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
                 componentPopup.setCheckableInvariant(!componentPopup.getCheckableInvariant());
             }
         }
-		if (e.getSource() == checkLatency) {
-			if (componentPopup instanceof CheckableLatency){
-				componentPopup.setCheckLatency(!componentPopup.getCheckLatency());
-			}
-		}
+        if (e.getSource() == checkLatency) {
+            if (componentPopup instanceof CheckableLatency){
+                componentPopup.setCheckLatency(!componentPopup.getCheckLatency());
+            }
+        }
         if (e.getSource() == checkMasterMutex) {
 
             if (componentPopup instanceof CheckableInvariant) {
@@ -2109,21 +2109,21 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
 
     public int getRawMinX() {
-	return minLimit;
+        return minLimit;
     }
 
     public int getRawMaxX() {
-	return maxX;
+        return maxX;
     }
 
     public int getRawMinY() {
-	return minLimit;
+        return minLimit;
     }
 
     public int getRawMaxY() {
-	return maxY;
+        return maxY;
     }
-    
+
     public int getMaxX() {
         //return maxX;
         return (int)(Math.ceil(maxX * zoom));
@@ -2139,7 +2139,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
     }
 
     public int getMaxY() {
-	//return maxY;
+        //return maxY;
         return (int)(Math.ceil(maxY * zoom));
     }
 
@@ -2301,13 +2301,13 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         return null;
     }
 
-	public void getAllLatencyChecks(ArrayList<TGComponent> _list){
-		for (TGComponent tgc: this.componentList) {
-			if (tgc.getCheckLatency()){
-				_list.add(tgc);
-			}
-		}
-	}
+    public void getAllLatencyChecks(ArrayList<TGComponent> _list){
+        for (TGComponent tgc: this.componentList) {
+            if (tgc.getCheckLatency()){
+                _list.add(tgc);
+            }
+        }
+    }
     public void getAllCheckableTGComponent(ArrayList<TGComponent> _list) {
         for (TGComponent tgc: this.componentList)
             if (tgc.hasCheckableAccessibility())
@@ -2404,46 +2404,46 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     public String findTClassName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkTClassInterface (TClassInterface o, String name) {
-                return o.getClassName ().equals (name);
-            }
-            public boolean checkTCDTData (TCDTData o, String name) {
-                return o.getValue ().equals (name);
-            }
-        });
+                public boolean checkTClassInterface (TClassInterface o, String name) {
+                    return o.getClassName ().equals (name);
+                }
+                public boolean checkTCDTData (TCDTData o, String name) {
+                    return o.getValue ().equals (name);
+                }
+            });
     }
 
     public String findTOSClassName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkTOSClass (TOSClass o, String name) {
-                return o.getClassName ().equals (name);
-            }
-        });
+                public boolean checkTOSClass (TOSClass o, String name) {
+                    return o.getClassName ().equals (name);
+                }
+            });
     }
 
     public String findRequirementName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkRequirement (Requirement o, String name) {
-                return o.getRequirementName ().equals (name);
-            }
-        });
+                public boolean checkRequirement (Requirement o, String name) {
+                    return o.getRequirementName ().equals (name);
+                }
+            });
     }
 
     public String findTMLPrimitiveComponentName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkTMLCPrimitiveComponent (TMLCPrimitiveComponent o, String name) {
-                return o.getValue ().equals (name);
-            }
-            public boolean checkTMLCRecordComponent (TMLCRecordComponent o, String name) {
-                return o.getValue ().equals (name);
-            }
-            public boolean checkTMLCCompositeComponent (TMLCCompositeComponent o, String name) {
-                for (int i=0; i<o.getNbInternalTGComponent (); i++)
-                    if (this.isNameAlreadyTaken (o.getInternalTGComponent (i), name))
-                        return true;
-                return false;
-            }
-        });
+                public boolean checkTMLCPrimitiveComponent (TMLCPrimitiveComponent o, String name) {
+                    return o.getValue ().equals (name);
+                }
+                public boolean checkTMLCRecordComponent (TMLCRecordComponent o, String name) {
+                    return o.getValue ().equals (name);
+                }
+                public boolean checkTMLCCompositeComponent (TMLCCompositeComponent o, String name) {
+                    for (int i=0; i<o.getNbInternalTGComponent (); i++)
+                        if (this.isNameAlreadyTaken (o.getInternalTGComponent (i), name))
+                            return true;
+                    return false;
+                }
+            });
     }
 
     public String findTMLRecordComponentName(String name) {
@@ -2452,80 +2452,80 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     public String findTMLTaskName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkTMLTaskInterface (TMLTaskInterface o, String name) {
-                return o.getTaskName ().equals (name);
-            }
-        });
+                public boolean checkTMLTaskInterface (TMLTaskInterface o, String name) {
+                    return o.getTaskName ().equals (name);
+                }
+            });
     }
 
     public String findBlockName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkATDBlock (ATDBlock o, String name) {
-                return o.getName ().equals (name);
-            }
-        });
+                public boolean checkATDBlock (ATDBlock o, String name) {
+                    return o.getName ().equals (name);
+                }
+            });
     }
 
     public String findAvatarBDBlockName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkAvatarBDBlock (AvatarBDBlock o, String name) {
-                if (o.getValue ().equals (name))
-                    return true;
-                return o.hasInternalBlockWithName (name);
-            }
-            public boolean checkAvatarBDLibraryFunction (AvatarBDLibraryFunction o, String name) {
-                return o.getFunctionName ().equals (name);
-            }
-            public boolean checkAvatarBDDataType (AvatarBDDataType o, String name) {
-                return o.getDataTypeName ().equals (name);
-            }
-        });
+                public boolean checkAvatarBDBlock (AvatarBDBlock o, String name) {
+                    if (o.getValue ().equals (name))
+                        return true;
+                    return o.hasInternalBlockWithName (name);
+                }
+                public boolean checkAvatarBDLibraryFunction (AvatarBDLibraryFunction o, String name) {
+                    return o.getFunctionName ().equals (name);
+                }
+                public boolean checkAvatarBDDataType (AvatarBDDataType o, String name) {
+                    return o.getDataTypeName ().equals (name);
+                }
+            });
     }
 
     public String findAvatarCDBlockName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkAvatarCDBlock (AvatarCDBlock o, String name) {
-                if (o.getValue ().equals (name))
-                    return true;
-                return o.hasInternalBlockWithName (name);
-            }
-        });
+                public boolean checkAvatarCDBlock (AvatarCDBlock o, String name) {
+                    if (o.getValue ().equals (name))
+                        return true;
+                    return o.hasInternalBlockWithName (name);
+                }
+            });
     }
 
     public String findAvatarSMDStateName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkAvatarSMDState (AvatarSMDState o, String name) {
-                if (o.getValue ().equals (name))
-                    return true;
-                return o.hasInternalStateWithName (name);
-            }
-        });
+                public boolean checkAvatarSMDState (AvatarSMDState o, String name) {
+                    if (o.getValue ().equals (name))
+                        return true;
+                    return o.hasInternalStateWithName (name);
+                }
+            });
     }
 
     public String findAvatarADActivityName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkAvatarADActivity (AvatarADActivity o, String name) {
-                if (o.getValue ().equals (name))
-                    return true;
-                return o.hasInternalActivityWithName (name);
-            }
-        });
+                public boolean checkAvatarADActivity (AvatarADActivity o, String name) {
+                    if (o.getValue ().equals (name))
+                        return true;
+                    return o.hasInternalActivityWithName (name);
+                }
+            });
     }
 
     public String findAvatarAssumptionName(String name, int start) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkAvatarMADAssumption (AvatarMADAssumption o, String name) {
-                return o.getValue ().equals (name);
-            }
-        });
+                public boolean checkAvatarMADAssumption (AvatarMADAssumption o, String name) {
+                    return o.getValue ().equals (name);
+                }
+            });
     }
 
     public String findAvatarRequirementName(String name, int start) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkAvatarRDRequirement (AvatarRDRequirement o, String name) {
-                return o.getValue ().equals (name);
-            }
-        });
+                public boolean checkAvatarRDRequirement (AvatarRDRequirement o, String name) {
+                    return o.getValue ().equals (name);
+                }
+            });
     }
 
     public String findAvatarRequirementID(String id) {
@@ -2555,13 +2555,13 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     public String findTObjectName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkTCDTObject (TCDTObject o, String name) {
-                return o.getObjectName ().equals (name);
-            }
-//            public boolean checkTCDTClass (TCDTClass o, String name) {
-//                return o.getClassName ().startsWith (name);
-//            }
-        });
+                public boolean checkTCDTObject (TCDTObject o, String name) {
+                    return o.getObjectName ().equals (name);
+                }
+                //            public boolean checkTCDTClass (TCDTClass o, String name) {
+                //                return o.getClassName ().startsWith (name);
+                //            }
+            });
     }
 
     public String findTObjectName(String name1, String name2) {
@@ -2584,26 +2584,26 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     public String findNodeName(String name) {
         return this.findGoodName (name, new NameChecker () {
-            public boolean checkNCEqNode (NCEqNode o, String name) {
-                if (o.getName ().equals (name))
-                    return true;
-                for (NCTrafficArtifact arti: o.getArtifactList ())
-                    if (arti.getValue ().equals (name))
+                public boolean checkNCEqNode (NCEqNode o, String name) {
+                    if (o.getName ().equals (name))
                         return true;
-                return false;
-            }
-            public boolean checkNCSwitchNode (NCSwitchNode o, String name) {
-                if (o.getName ().equals (name))
-                    return true;
-                for (NCRouteArtifact arti: o.getArtifactList ())
-                    if (arti.getValue ().equals (name))
+                    for (NCTrafficArtifact arti: o.getArtifactList ())
+                        if (arti.getValue ().equals (name))
+                            return true;
+                    return false;
+                }
+                public boolean checkNCSwitchNode (NCSwitchNode o, String name) {
+                    if (o.getName ().equals (name))
                         return true;
-                return false;
-            }
-//            public boolean checkNCConnectorNode (NCConnectorNode o, String name) {
-//                return o.getInterfaceName ().equals (name);
-//            }
-        });
+                    for (NCRouteArtifact arti: o.getArtifactList ())
+                        if (arti.getValue ().equals (name))
+                            return true;
+                    return false;
+                }
+                //            public boolean checkNCConnectorNode (NCConnectorNode o, String name) {
+                //                return o.getInterfaceName ().equals (name);
+                //            }
+            });
     }
 
     public String findInterfaceName(String name) {
@@ -2624,19 +2624,19 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     public boolean isAlreadyATMLPrimitiveComponentName(String name) {
         return !this.isNameUnique (name, new NameChecker () {
-            public boolean checkTMLCPrimitiveComponent (TMLCPrimitiveComponent o, String name) {
-                return o.getValue ().equals (name);
-            }
-            public boolean checkTMLCRecordComponent (TMLCRecordComponent o, String name) {
-                return o.getValue ().equals (name);
-            }
-            public boolean checkTMLCCompositeComponent (TMLCCompositeComponent o, String name) {
-                for (int i=0; i<o.getNbInternalTGComponent (); i++)
-                    if (this.isNameAlreadyTaken (o.getInternalTGComponent (i), name))
-                        return true;
-                return false;
-            }
-        });
+                public boolean checkTMLCPrimitiveComponent (TMLCPrimitiveComponent o, String name) {
+                    return o.getValue ().equals (name);
+                }
+                public boolean checkTMLCRecordComponent (TMLCRecordComponent o, String name) {
+                    return o.getValue ().equals (name);
+                }
+                public boolean checkTMLCCompositeComponent (TMLCCompositeComponent o, String name) {
+                    for (int i=0; i<o.getNbInternalTGComponent (); i++)
+                        if (this.isNameAlreadyTaken (o.getInternalTGComponent (i), name))
+                            return true;
+                    return false;
+                }
+            });
     }
 
     public boolean isAlreadyATOSClassName(String name) {
@@ -2645,37 +2645,37 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
     public boolean isTClassNameUnique(String name) {
         return this.isNameUnique (name, new NameChecker () {
-            public boolean checkTClassInterface (TClassInterface o, String name) {
-                return o.getClassName ().equals (name);
-            }
-            public boolean checkTCDTData (TCDTData o, String name) {
-                return o.getValue ().equals (name);
-            }
-        });
+                public boolean checkTClassInterface (TClassInterface o, String name) {
+                    return o.getClassName ().equals (name);
+                }
+                public boolean checkTCDTData (TCDTData o, String name) {
+                    return o.getValue ().equals (name);
+                }
+            });
     }
 
     public boolean isTOSClassNameUnique(String name) {
         return this.isNameUnique (name, new NameChecker () {
-            public boolean checkTOSClass (TOSClass o, String name) {
-                return o.getClassName ().equals (name);
-            }
-        });
+                public boolean checkTOSClass (TOSClass o, String name) {
+                    return o.getClassName ().equals (name);
+                }
+            });
     }
 
     public boolean isTMLTaskNameUnique(String name) {
         return this.isNameUnique (name, new NameChecker () {
-            public boolean checkTMLTaskInterface (TMLTaskInterface o, String name) {
-                return o.getTaskName ().equals (name);
-            }
-        });
+                public boolean checkTMLTaskInterface (TMLTaskInterface o, String name) {
+                    return o.getTaskName ().equals (name);
+                }
+            });
     }
 
     public boolean isBlockNameUnique(String name) {
         return this.isNameUnique (name, new NameChecker () {
-            public boolean checkATDBlock (ATDBlock o, String name) {
-                return o.getName ().equals (name);
-            }
-        });
+                public boolean checkATDBlock (ATDBlock o, String name) {
+                    return o.getName ().equals (name);
+                }
+            });
     }
 
     /**
@@ -2689,65 +2689,65 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
      */
     public boolean isAvatarBlockNameUnique (String name) {
         return this.isNameUnique (name, new NameChecker () {
-            public boolean checkAvatarBDBlock (AvatarBDBlock o, String name) {
-                if (o.getValue ().equals (name))
-                    return true;
-                return o.hasInternalBlockWithName (name);
-            }
-            public boolean checkAvatarBDLibraryFunction (AvatarBDLibraryFunction o, String name) {
-                return o.getFunctionName ().equals (name);
-            }
-            public boolean checkAvatarBDDataType (AvatarBDDataType o, String name) {
-                return o.getDataTypeName ().equals (name);
-            }
-        });
+                public boolean checkAvatarBDBlock (AvatarBDBlock o, String name) {
+                    if (o.getValue ().equals (name))
+                        return true;
+                    return o.hasInternalBlockWithName (name);
+                }
+                public boolean checkAvatarBDLibraryFunction (AvatarBDLibraryFunction o, String name) {
+                    return o.getFunctionName ().equals (name);
+                }
+                public boolean checkAvatarBDDataType (AvatarBDDataType o, String name) {
+                    return o.getDataTypeName ().equals (name);
+                }
+            });
     }
 
     public boolean isNCNameUnique(String name) {
         return this.isNameUnique (name, new NameChecker () {
-            public boolean checkNCEqNode (NCEqNode o, String name) {
-                if (o.getName ().equals (name))
-                    return true;
-                for (NCTrafficArtifact arti: o.getArtifactList ())
-                    if (arti.getValue ().equals (name))
+                public boolean checkNCEqNode (NCEqNode o, String name) {
+                    if (o.getName ().equals (name))
                         return true;
-                return false;
-            }
-            public boolean checkNCSwitchNode (NCSwitchNode o, String name) {
-                if (o.getName ().equals (name))
-                    return true;
-                for (NCRouteArtifact arti: o.getArtifactList ())
-                    if (arti.getValue ().equals (name))
+                    for (NCTrafficArtifact arti: o.getArtifactList ())
+                        if (arti.getValue ().equals (name))
+                            return true;
+                    return false;
+                }
+                public boolean checkNCSwitchNode (NCSwitchNode o, String name) {
+                    if (o.getName ().equals (name))
                         return true;
-                return false;
-            }
-//            public boolean checkNCConnectorNode (NCConnectorNode o, String name) {
-//                return o.getInterfaceName ().equals (name);
-//            }
-        });
+                    for (NCRouteArtifact arti: o.getArtifactList ())
+                        if (arti.getValue ().equals (name))
+                            return true;
+                    return false;
+                }
+                //            public boolean checkNCConnectorNode (NCConnectorNode o, String name) {
+                //                return o.getInterfaceName ().equals (name);
+                //            }
+            });
     }
 
     public boolean isRequirementNameUnique(String name) {
         return this.isNameUnique (name, new NameChecker () {
-            public boolean checkRequirement (Requirement o, String name) {
-                return o.getRequirementName ().equals (name);
-            }
-        });
+                public boolean checkRequirement (Requirement o, String name) {
+                    return o.getRequirementName ().equals (name);
+                }
+            });
     }
 
     public boolean isTObjectNameUnique(String name) {
         // FIXME: this is not coherent with findTObjectName !!!
         return this.isNameUnique (name, new NameChecker () {
-            public boolean checkTClassInterface (TClassInterface o, String name) {
-                return o.getClassName ().equals (name);
-            }
-        });
+                public boolean checkTClassInterface (TClassInterface o, String name) {
+                    return o.getClassName ().equals (name);
+                }
+            });
+    }
+    public void setMaxPanelSize(int x, int y){
+        maxX=x;
+        maxY=y;
+        updateSize();
     }
-	public void setMaxPanelSize(int x, int y){
-		maxX=x;
-		maxY=y;
-		updateSize();
-	}
     // For compatibility with ttool v0.41
     // Assumes no internal duplicate id
     public void checkForDuplicateId() {
@@ -3054,7 +3054,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
 
         Vector<Point> listPoint = new Vector<Point>();
 
-       // Vector v = new Vector();
+        // Vector v = new Vector();
 
         int distance = 100;
         TGConnectingPoint found = null;
@@ -3135,9 +3135,9 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
     }
 
     public String svgCapture() {
-    	int w = this.getWidth();
-    	int h = this.getHeight();
-    	int x = getRealMinX();
+        int w = this.getWidth();
+        int h = this.getHeight();
+        int x = getRealMinX();
         int y = getRealMinY();
         w = getRealMaxX() - x;
         h = getRealMaxY() - y;
@@ -3153,10 +3153,10 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         w = Math.min(w, getWidth() - x);
         h = Math.min(h, getHeight() - y);
 
-	
+
         StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" standalone=\"no\"?>\n");
-        sb.append("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");	
-	//sb.append(" width=\"" + (w+x) + "\" height=\"" + (h+y) + "\" viewbox=\"" + x + " " + y + " " + w + " " + h + "\">\n");
+        sb.append("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
+        //sb.append(" width=\"" + (w+x) + "\" height=\"" + (h+y) + "\" viewbox=\"" + x + " " + y + " " + w + " " + h + "\">\n");
         sb.append("<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\"");
         sb.append(" width=\"" + (w+x) + "\" height=\"" + (h+y) + "\" viewbox=\"" + x + " " + y + " " + w + " " + h + "\">\n");
 
@@ -3169,7 +3169,7 @@ public abstract class TDiagramPanel extends JPanel implements GenericTree {
         TraceManager.addDev("Painting for svg done");
         sb.append(svgg.getSVGString());
         RepaintManager.currentManager(this).setDoubleBufferingEnabled(true);
-	
+
         sb.append("</svg>");
 
         return sb.toString();
diff --git a/src/ui/TGUIAction.java b/src/ui/TGUIAction.java
index 5c6b06e31d7c61df18a1d70092d4025ec33f215e..7a8cac6e18506af4468dfe7e01c08852925a2ef4 100755
--- a/src/ui/TGUIAction.java
+++ b/src/ui/TGUIAction.java
@@ -67,6 +67,7 @@ public class TGUIAction extends AbstractAction {
     public static final int ACT_NEW_DESIGN = 100;
     public static final int ACT_NEW_ANALYSIS = 101;
     public static final int ACT_OPEN = 1;
+    public static final int ACT_OPEN_FROM_NETWORK = 455;
     public static final int ACT_OPEN_LAST = 154;
     public static final int ACT_MERGE = 228;
     public static final int ACT_SAVE = 2;
@@ -605,7 +606,7 @@ public class TGUIAction extends AbstractAction {
     public static final int ACT_INTERNAL_SEARCH = 415;
     //--
 
-    public static final int NB_ACTION = 455;
+    public static final int NB_ACTION = 456;
 
     private  static final TAction [] actions = new TAction[NB_ACTION];
 
@@ -651,7 +652,8 @@ public class TGUIAction extends AbstractAction {
         actions[ACT_NEW] = new TAction("new-command", "New", IconManager.imgic20, IconManager.imgic21, "New", "New modeling", 'N');
         actions[ACT_NEW_DESIGN] = new TAction("new-command-design", "New design", IconManager.imgic14, IconManager.imgic14, "New design", "New TURTLE design", 0);
         actions[ACT_NEW_ANALYSIS] = new TAction("new-command-analysis", "New analysis", IconManager.imgic17, IconManager.imgic17, "New analysis", "New TURTLE analysis", 0);
-        actions[ACT_OPEN] = new TAction("open-command","Open", IconManager.imgic22, IconManager.imgic23, "Open", "Open an existing TURTLE modeling",'O', true);
+        actions[ACT_OPEN] = new TAction("open-command","Open", IconManager.imgic22, IconManager.imgic23, "Open", "Open an existing TTooll model",'O', true);
+	actions[ACT_OPEN_FROM_NETWORK] = new TAction("open-command-from-network","Open from network", IconManager.imgic22, IconManager.imgic23, "Open from network", "Open an existing TTool model from the TTool website",'O', true);
         actions[ACT_OPEN_LAST] = new TAction("openlast-command","Open file: " + ConfigurationTTool.LastOpenFile, IconManager.imgic22, IconManager.imgic23, "Open: " + ConfigurationTTool.LastOpenFile, "Open the lastly saved TTool model", 0);
         actions[ACT_MERGE] = new TAction("merge-command","Merge", IconManager.imgic22, IconManager.imgic23, "Merge", "Merge the current TTool modeling with another one saved in a file ", 0);
         actions[ACT_SAVE] = new TAction("save-command", "Save",IconManager.imgic24, IconManager.imgic25, "Save", "Save an opened or a new TTool modeling", 'S', true);
diff --git a/src/ui/networkmodelloader/JDialogLoadingNetworkModel.java b/src/ui/networkmodelloader/JDialogLoadingNetworkModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..4048f226d384a928cfd754600a15f33b90a513f7
--- /dev/null
+++ b/src/ui/networkmodelloader/JDialogLoadingNetworkModel.java
@@ -0,0 +1,214 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ * /**
+ * Class JDialogNetworkModelPanel
+ * Dialog for managing the loading of network models
+ * Creation: 28/05/2017
+ * @version 1.1 28/05/2017
+ * @author Ludovic APVRILLE
+ * @author Ludovic Apvrille
+ * @see
+ */
+
+package ui.networkmodelloader;
+
+import java.awt.*;
+import java.awt.event.*;
+import java.io.File;
+import java.util.*;
+import javax.swing.*;
+
+import ui.*;
+import myutil.*;
+
+public class JDialogLoadingNetworkModel extends javax.swing.JFrame implements ActionListener, Runnable  {
+
+    private static ArrayList<NetworkModel> listOfModels;
+
+    protected Frame f;
+    protected MainGUI mgui;
+
+     protected final static int NOT_LISTED = 1;
+    protected final static int LISTED = 2;
+    protected final static int SELECTED = 3;
+
+    private int mode;
+
+    //components
+    protected JTextArea jta;
+    private JTextAreaWriter textAreaWriter;
+    protected JButton start;
+    protected JButton stop;
+
+    protected JScrollPane jsp;
+
+    private Thread t;
+    private boolean go = false;
+    private boolean hasError = false;
+    protected boolean startProcess = false;
+
+    private String url;
+    private NetworkModelPanel panel;
+    
+
+    /** Creates new form  */
+    public JDialogLoadingNetworkModel(Frame _f, MainGUI _mgui, String title, String _url) {
+        super(title);
+
+        f = _f;
+        mgui = _mgui;
+
+	url = _url;
+
+
+        initComponents();
+        myInitComponents();
+        pack();
+
+        //getGlassPane().addMouseListener( new MouseAdapter() {});
+        getGlassPane().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+    }
+
+
+    protected void myInitComponents() {
+        mode = NOT_LISTED;
+        setButtons();
+      }
+
+    protected void initComponents() {
+
+        Container c = getContentPane();
+        setFont(new Font("Helvetica", Font.PLAIN, 14));
+        c.setLayout(new BorderLayout());
+        //setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+	panel = new NetworkModelPanel();
+	jsp = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+
+        c.add(jsp, BorderLayout.NORTH);
+
+
+        jta = new ScrolledJTextArea();
+        jta.setEditable(false);
+        jta.setMargin(new Insets(10, 10, 10, 10));
+        jta.setTabSize(3);
+        jta.append("Select options and then, click on 'start' to launch code generation / compilation / execution\n");
+        Font f = new Font("Courrier", Font.BOLD, 12);
+        jta.setFont(f);
+        textAreaWriter = new JTextAreaWriter( jta );
+
+        jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+
+        c.add(jsp, BorderLayout.CENTER);
+
+        start = new JButton("Load", IconManager.imgic53);
+        stop = new JButton("Cancel", IconManager.imgic55);
+
+        start.setPreferredSize(new Dimension(100, 30));
+        stop.setPreferredSize(new Dimension(100, 30));
+
+        start.addActionListener(this);
+        stop.addActionListener(this);
+
+        JPanel jp2 = new JPanel();
+        jp2.add(start);
+        jp2.add(stop);
+
+        c.add(jp2, BorderLayout.SOUTH);
+
+    }
+
+    public void actionPerformed(ActionEvent evt)  {
+        //String command = evt.getActionCommand();
+
+        // Compare the action command to the known actions.
+        if (evt.getSource() == start)  {
+            loadFile();
+        } else if (evt.getSource() == stop) {
+            cancel();
+        } 
+    }
+
+
+    public void loadFile() {
+	// Run the retreiver + analyzer
+    }
+
+    public void cancel() {
+	dispose();
+    }
+ 
+   
+    public void run() {
+        
+    }
+
+    protected void checkMode() {
+        mode = NOT_LISTED;
+    }
+
+    protected void setButtons() {
+        switch(mode) {
+        case NOT_LISTED:
+            start.setEnabled(true);
+            stop.setEnabled(false);
+            //setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
+            getGlassPane().setVisible(false);
+            break;
+        case LISTED:
+            start.setEnabled(false);
+            stop.setEnabled(true);
+            getGlassPane().setVisible(true);
+            //setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+            break;
+        case SELECTED:
+        default:
+            start.setEnabled(false);
+            stop.setEnabled(false);
+            getGlassPane().setVisible(false);
+            break;
+        }
+    }
+
+
+    public void appendOut(String s) {
+        jta.append(s);
+    }
+
+
+}
diff --git a/src/ui/networkmodelloader/NetworkModel.java b/src/ui/networkmodelloader/NetworkModel.java
new file mode 100644
index 0000000000000000000000000000000000000000..bdd4019d61b00943c41c2c4ed0b6be2b3bf4c0e7
--- /dev/null
+++ b/src/ui/networkmodelloader/NetworkModel.java
@@ -0,0 +1,64 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ * /**
+ * Class NetworkModel
+ * Dialog for managing the loading of network models
+ * Creation: 29/05/2017
+ * @version 1.1 29/05/2017
+ * @author Ludovic APVRILLE
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.networkmodelloader;
+
+import java.io.File;
+
+
+public class NetworkModel   {
+
+    public String fileName;
+    public NetworkModelType type;
+    public String decription;
+    public String image;
+
+    public NetworkModel(String _fileName) {
+	    fileName = _fileName;
+    }
+
+}
diff --git a/src/ui/networkmodelloader/NetworkModelPanel.java b/src/ui/networkmodelloader/NetworkModelPanel.java
new file mode 100644
index 0000000000000000000000000000000000000000..b70af6b256acbd34088cdc639eb7eed2c728c136
--- /dev/null
+++ b/src/ui/networkmodelloader/NetworkModelPanel.java
@@ -0,0 +1,61 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ * /**
+ * Class NetworkModel
+ * Dialog for managing the loading of network models
+ * Creation: 30/05/2017
+ * @version 1.1 30/05/2017
+ * @author Ludovic APVRILLE
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.networkmodelloader;
+
+import java.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+
+
+public class NetworkModelPanel extends JPanel  {
+
+
+    public NetworkModelPanel() {
+    }
+
+}
diff --git a/src/ui/networkmodelloader/NetworkModelType.java b/src/ui/networkmodelloader/NetworkModelType.java
new file mode 100644
index 0000000000000000000000000000000000000000..6bb01735af4f3165210c677f69d70d2822b1608f
--- /dev/null
+++ b/src/ui/networkmodelloader/NetworkModelType.java
@@ -0,0 +1,53 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ * /**
+ * Class NetworkModel
+ * Dialog for managing the loading of network models
+ * Creation: 29/05/2017
+ * @version 1.1 29/05/2017
+ * @author Ludovic APVRILLE
+ * @author Ludovic APVRILLE
+ * @see
+ */
+
+package ui.networkmodelloader;
+
+
+public enum NetworkModelType  {
+    SOFTWARE_DESIGN, PARTITIONING, ATTACK_TREE, SECURiTY_PROTOCOL
+}