From 120a3083110fe84e77a2914efdcb728a378e43fe Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Fri, 11 Dec 2015 12:47:52 +0000
Subject: [PATCH] Update on TTool demo

---
 executablecode/example/DatagramServer.java |  236 ++--
 executablecode/example/MainMicrowave.java  |  178 +--
 executablecode/example/MicrowavePanel.java |  308 ++---
 modeling/SysMLSec/SimpleTLS.xml            | 1417 ++++++++++----------
 4 files changed, 1067 insertions(+), 1072 deletions(-)

diff --git a/executablecode/example/DatagramServer.java b/executablecode/example/DatagramServer.java
index d38be237d6..e9194f5bf7 100644
--- a/executablecode/example/DatagramServer.java
+++ b/executablecode/example/DatagramServer.java
@@ -1,142 +1,142 @@
 import java.io.*;
 import java.net.*;
 import java.util.*;
- 
+
 public class DatagramServer implements Runnable {
-	private static final int PORT = 8374;
-	private static final int SENDING_PORT = 8373;
-	
+    private static final int PORT = 8374;
+    private static final int SENDING_PORT = 8373;
+
     protected DatagramSocket socket;
     protected BufferedReader in = null;
     protected DatagramPacket dgp;
-    
+
     protected Feeder feed;
- 
+
     protected int port, sendingPort;
     protected boolean go;
-    
+
     protected boolean notReceived = true;
-    
+
     private Thread t;
-    
-    
+
+
     public DatagramServer() {
-    	port = PORT;
-    	sendingPort = SENDING_PORT;
+        port = PORT;
+        sendingPort = SENDING_PORT;
     }
-    
+
     public void setPort(int _port) {
-    	port = _port;
+        port = _port;
     }
-    
+
     public void setFeeder(Feeder _feed) {
-    	feed = _feed;
+        feed = _feed;
     }
-    
+
     public void runServer() {
-    	go = true;
-    	t = new Thread(this);
-    	t.start();
+        go = true;
+        t = new Thread(this);
+        t.start();
     }
-    
+
     public void stopServer() {
-    	go = false;
-    	if (t != null) {
-    		t.interrupt();
-    	}
+        go = false;
+        if (t != null) {
+            t.interrupt();
+        }
     }
 
-    	
+
     public static void main(String[] args) {
-    	DatagramServer ds = new DatagramServer();
-    	ds.runServer();
-	} 
-	
-	public void run() {
-		byte[] buf = new byte[1000];
-    	
-		try {
-			socket = new DatagramSocket(port);
-			//sendingSocket = new DatagramSocket(sendingPort);
-			dgp = new DatagramPacket(buf, buf.length);
-    		System.out.println("Server started on port:" + port);
-    		while (go) {
-    			socket.receive(dgp);
-    			notReceived = false;
-    			String rec = new String(dgp.getData(), 0, dgp.getLength());
-    			String rcvd =  rec + ", length=" + dgp.getLength() + ", from address: "
-    			+ dgp.getAddress() + ", port: " + dgp.getPort();
-    			//System.out.println("Received:" + rcvd);
-    			
-    			if (feed != null) {
-    				feed.setMessage(rec);
-    			}
-    			
-    			//BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
-    			//String outMessage = stdin.readLine();
-    			//buf = ("Server say: " + outMessage).getBytes();
-    			//DatagramPacket out = new DatagramPacket(buf, buf.length, dgp.getAddress(), dgp.getPort());
-    			//sk.send(out);
-    		}
-		} catch (Exception e) {
-			System.out.println("Exception e:" + e.getMessage());
-		}
-	}
-	
-	
-	public boolean sendTo(String s) {
-		if ((socket == null) || (dgp == null)) {
-			return false;
-		}
-		
-		try {
-			byte[] buf = s.getBytes();
-			DatagramPacket out = new DatagramPacket(buf, buf.length, dgp.getAddress(), dgp.getPort());
-			socket.send(out);
-		} catch (Exception e) {
-			System.out.println("Exception e:" + e.getMessage());
-			return false;
-		}
-		return true;
-	}
-	
-	public boolean sendDatagramTo(String s, int port) {
-		if (socket == null) {
-			return false;
-		}
-		
-		System.out.println("Datagram sending 1");
-		
-		
-		try {
-			DatagramSocket sendingSocket = new DatagramSocket(port+100);
-			InetAddress addr = InetAddress.getByName("localhost");;
-		/*if (notReceived) {
-			// We assume "localhost" for the address
-			System.out.println("Datagram sending 1.1");
-			addr = InetAddress.getByName("localhost");
-		} else {
-			System.out.println("Datagram sending 1.2");
-			addr = dgp.getAddress();
-		}*/
-		
-		//System.out.println("Datagram sending 2");
-			byte[] buf = s.getBytes();
-			System.out.println("Datagram sending 3 on port=" + port);
-			DatagramPacket out = new DatagramPacket(buf, buf.length, addr, port);
-			System.out.println("Datagram sending 4");
-			sendingSocket.send(out);
-			System.out.println("Datagram sending 5");
-			sendingSocket.close();
-			System.out.println("Datagram sending 5.1");
-		} catch (Exception e) {
-			System.out.println("Exception e:" + e.getMessage());
-			return false;
-		}
-		System.out.println("Datagram sending 6");
-		return true;
-	}
-	
-	
-    
-}
\ No newline at end of file
+        DatagramServer ds = new DatagramServer();
+        ds.runServer();
+    }
+
+    public void run() {
+        byte[] buf = new byte[1000];
+
+        try {
+            socket = new DatagramSocket(port);
+            //sendingSocket = new DatagramSocket(sendingPort);
+            dgp = new DatagramPacket(buf, buf.length);
+            System.out.println("Server started on port:" + port);
+            while (go) {
+                socket.receive(dgp);
+                notReceived = false;
+                String rec = new String(dgp.getData(), 0, dgp.getLength());
+                String rcvd =  rec + ", length=" + dgp.getLength() + ", from address: "
+                    + dgp.getAddress() + ", port: " + dgp.getPort();
+                //System.out.println("Received:" + rcvd);
+
+                if (feed != null) {
+                    feed.setMessage(rec);
+                }
+
+                //BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
+                //String outMessage = stdin.readLine();
+                //buf = ("Server say: " + outMessage).getBytes();
+                //DatagramPacket out = new DatagramPacket(buf, buf.length, dgp.getAddress(), dgp.getPort());
+                //sk.send(out);
+            }
+        } catch (Exception e) {
+            System.out.println("Exception e:" + e.getMessage());
+        }
+    }
+
+
+    public boolean sendTo(String s) {
+        if ((socket == null) || (dgp == null)) {
+            return false;
+        }
+
+        try {
+            byte[] buf = s.getBytes();
+            DatagramPacket out = new DatagramPacket(buf, buf.length, dgp.getAddress(), dgp.getPort());
+            socket.send(out);
+        } catch (Exception e) {
+            System.out.println("Exception e:" + e.getMessage());
+            return false;
+        }
+        return true;
+    }
+
+    public boolean sendDatagramTo(String s, int port) {
+        if (socket == null) {
+            return false;
+        }
+
+        System.out.println("Datagram sending 1");
+
+
+        try {
+            DatagramSocket sendingSocket = new DatagramSocket(port+100);
+            InetAddress addr = InetAddress.getByName("localhost");;
+            /*if (notReceived) {
+            // We assume "localhost" for the address
+            System.out.println("Datagram sending 1.1");
+            addr = InetAddress.getByName("localhost");
+            } else {
+            System.out.println("Datagram sending 1.2");
+            addr = dgp.getAddress();
+            }*/
+
+            //System.out.println("Datagram sending 2");
+            byte[] buf = s.getBytes();
+            System.out.println("Datagram sending 3 on port=" + port);
+            DatagramPacket out = new DatagramPacket(buf, buf.length, addr, port);
+            System.out.println("Datagram sending 4");
+            sendingSocket.send(out);
+            System.out.println("Datagram sending 5");
+            sendingSocket.close();
+            System.out.println("Datagram sending 5.1");
+        } catch (Exception e) {
+            System.out.println("Exception e:" + e.getMessage());
+            return false;
+        }
+        System.out.println("Datagram sending 6");
+        return true;
+    }
+
+
+
+}
diff --git a/executablecode/example/MainMicrowave.java b/executablecode/example/MainMicrowave.java
index 20ab2f5991..dfdbfd5208 100644
--- a/executablecode/example/MainMicrowave.java
+++ b/executablecode/example/MainMicrowave.java
@@ -7,108 +7,108 @@ import java.awt.image.*;
 import java.io.*;
 import java.util.*;
 
- 
+
 public class MainMicrowave extends JFrame implements Feeder, MouseListener {
-	
+
     private MicrowavePanel mp;
     private DatagramServer ds;
-    
+
     public MainMicrowave() {
-    	super("Microwave demonstration");
-    	setSize(800, 600);
-    	setVisible(true);
-    	ds = new DatagramServer();
-    	ds.setFeeder(this);
-    	
-    	initComponents();
-    	ds.runServer();
+        super("Microwave demonstration");
+        setSize(800, 600);
+        setVisible(true);
+        ds = new DatagramServer();
+        ds.setFeeder(this);
+
+        initComponents();
+        ds.runServer();
     }
-    
+
     public void initComponents() {
-    	setLayout(new BorderLayout());
-    	mp = new MicrowavePanel();
-    	mp.addMouseListener(this);
-    	mp.setPreferredSize(new Dimension(800,600));
-    	add(mp, BorderLayout.CENTER);
-    	mp.revalidate();
+        setLayout(new BorderLayout());
+        mp = new MicrowavePanel();
+        mp.addMouseListener(this);
+        mp.setPreferredSize(new Dimension(800,600));
+        add(mp, BorderLayout.CENTER);
+        mp.revalidate();
     }
-    
+
     public void setMessage(String msg) {
-    	if (mp == null) {
-    		return;
-    	}
-    	
-    	int index;
-    	String s;
-    	int duration;
-    	System.out.println("Got message:" + msg);
-    	try {
-			if (msg.startsWith("Duration ")) {
-				s = msg.substring(9, msg.length());
-				
-				duration = Integer.decode(s.trim()).intValue();
-				mp.setDuration(duration);
-				mp.setStart(false);
-				//System.out.println("Setting new duration :" + duration);
-				mp.setCookingFinished(false);
-			} else if (msg.startsWith("Start ")) {
-				s = msg.substring(6, msg.length());
-				
-				duration = Integer.decode(s.trim()).intValue();
-				mp.setDuration(duration);
-				mp.setStart(true);
-				mp.setCookingFinished(false);
-				//System.out.println("Setting new duration (start): " + duration);
-			} else if (msg.startsWith("Magnetron_ON")) {
-				mp.setMagnetronON(true);
-				mp.setCookingFinished(false);
-			} else if (msg.startsWith("Magnetron_OFF")) {
-				mp.setMagnetronON(false);
-				mp.setCookingFinished(false);
-			} else if (msg.startsWith("Open Door")) {
-				mp.setDoorOpened(true);
-				mp.setCookingFinished(false);
-			} else if (msg.startsWith("Close Door")) {
-				mp.setDoorOpened(false);
-				mp.setCookingFinished(false);
-			} else if (msg.startsWith("Dring")) {
-				mp.setCookingFinished(true);
-			}
-    	} catch (Exception e) {
-    		System.out.println("Exception when computing message: " + e.getMessage());
-    	}
-    	
-    	mp.repaint();
+        if (mp == null) {
+            return;
+        }
+
+        int index;
+        String s;
+        int duration;
+        System.out.println("Got message:" + msg);
+        try {
+            if (msg.startsWith("Duration ")) {
+                s = msg.substring(9, msg.length());
+
+                duration = Integer.decode(s.trim()).intValue();
+                mp.setDuration(duration);
+                mp.setStart(false);
+                //System.out.println("Setting new duration :" + duration);
+                mp.setCookingFinished(false);
+            } else if (msg.startsWith("Start ")) {
+                s = msg.substring(6, msg.length());
+
+                duration = Integer.decode(s.trim()).intValue();
+                mp.setDuration(duration);
+                mp.setStart(true);
+                mp.setCookingFinished(false);
+                //System.out.println("Setting new duration (start): " + duration);
+            } else if (msg.startsWith("Magnetron_ON")) {
+                mp.setMagnetronON(true);
+                mp.setCookingFinished(false);
+            } else if (msg.startsWith("Magnetron_OFF")) {
+                mp.setMagnetronON(false);
+                mp.setCookingFinished(false);
+            } else if (msg.startsWith("Open Door")) {
+                mp.setDoorOpened(true);
+                mp.setCookingFinished(false);
+            } else if (msg.startsWith("Close Door")) {
+                mp.setDoorOpened(false);
+                mp.setCookingFinished(false);
+            } else if (msg.startsWith("Dring")) {
+                mp.setCookingFinished(true);
+            }
+        } catch (Exception e) {
+            System.out.println("Exception when computing message: " + e.getMessage());
+        }
+
+        mp.repaint();
     }
-    
+
     public void mouseClicked(MouseEvent e){
-    	int x = e.getX();
-    	int y = e.getY();
-    	
-    	System.out.println("Mouse clicked!!!");
-    	
-    	// START?
-    	if ((x>630)&&(x<720)&&(y>335)&&(y<365)) {
-    			System.out.println("Mouse clicked on start");
-    			if (ds != null) {
-    			ds.sendDatagramTo(" ", 8375);
-    			
-    			}
-    			System.out.println("Action on start sent");
-    	}
-    	
+        int x = e.getX();
+        int y = e.getY();
+
+        System.out.println("Mouse clicked!!!");
+
+        // START?
+        if ((x>630)&&(x<720)&&(y>335)&&(y<365)) {
+            System.out.println("Mouse clicked on start");
+            if (ds != null) {
+                ds.sendDatagramTo(" ", 8375);
+
+            }
+            System.out.println("Action on start sent");
+        }
+
     }
     public void mouseEntered(MouseEvent e){}
     public void mouseExited(MouseEvent e){}
     public void mousePressed(MouseEvent e){}
     public void mouseReleased(MouseEvent e){}
-    	
+
     public static void main(String[] args) {
-    	MainMicrowave mmw = new MainMicrowave();
-	} 
-	
-	
-	
-	
-    
-}
\ No newline at end of file
+        MainMicrowave mmw = new MainMicrowave();
+    }
+
+
+
+
+
+}
diff --git a/executablecode/example/MicrowavePanel.java b/executablecode/example/MicrowavePanel.java
index 63b91d2fee..4fef50e197 100644
--- a/executablecode/example/MicrowavePanel.java
+++ b/executablecode/example/MicrowavePanel.java
@@ -7,162 +7,162 @@ import java.awt.image.*;
 import java.io.*;
 import java.util.*;
 
- 
+
 public class MicrowavePanel extends JPanel  {
-	
-	private int duration = 0;
-	private boolean magnetronON =false;
+
+    private int duration = 0;
+    private boolean magnetronON =false;
     private boolean start = false;
     private boolean doorOpened = false;
     private boolean cookingFinished = false;
-    
+
     public MicrowavePanel() {
-    	setBackground(Color.white);
-	} 
-	
-	public void setCookingFinished(boolean finished) {
-		cookingFinished = finished;
-	}
-	
-	public void setDoorOpened(boolean opened) {
-		doorOpened = opened;
-	}
-	
-	public void setStart(boolean on) {
-		start = on;
-	}
-	
-	public void setMagnetronON(boolean isOn) {
-		magnetronON = isOn;
-	}
-	
-	public void setDuration(int _duration) {
-		duration = _duration;
-	}
-	
-	public void paintComponent(Graphics g) {
-		super.paintComponent(g);
-		Graphics2D g2 = (Graphics2D) g;
-		//System.out.println("Salut .. repainting");
-		
-		// Foot
-		
-		g.setColor(Color.black);
-		g.fillRect(100, 500, 100, 30);
-		g.fillRect(600, 500, 100, 30);
-		
-		// Main oven
-		g.setColor(Color.gray);
-		g.fillRect(50, 50, 700, 450);
-		g.setColor(Color.black);
-		g.drawRect(50, 50, 700, 450);
-		
-		
-		g.setColor(Color.white);
-		g.fillRoundRect(75, 75, 500, 400, 20, 20);
-		
-		
-		// Inside of the oven
-		g.setColor(Color.black);
-		g.fillRoundRect(100, 100, 450, 350, 20, 20);
-		
-		
-		if (doorOpened) {
-			// Inside the oven
-			int dec = -5;
-			g.setColor(Color.white);
-			g.fillRoundRect(140, 140, 370, 270, 20, 20);
-			g.setColor(Color.black);
-			g.drawRect(140, 140, 370, 270);
-			g.drawRect(200, 190, 250, 170);
-			
-			g.drawLine(140, 140, 200, 190);
-			g.drawLine(510, 140, 450, 190);
-			g.drawLine(510, 410, 450, 360);
-			g.drawLine(140, 410, 200, 360);
-			
-			//Door
-			g.setColor(Color.white);
-			g.fillRect(95+dec, 110, 35, 330);
-			g.setColor(Color.black);
-			g.drawRect(95+dec, 110, 35, 330);
-			g.fillRect(95+dec, 110, 10, 330);
-			g.setColor(Color.gray);
-			g.fillRect(65+dec, 100, 25, 350);
-			g.fillRect(65+dec, 150, 35, 30);
-			g.fillRect(65+dec, 370, 35, 30);
-			g.setColor(Color.black);
-			g.drawRect(65+dec, 100, 25, 350);
-			
-			
-			
-			
-		} else {
-			
-		}
-		
-		if (magnetronON) {
-			g.setColor(Color.red);
-			g.fillRoundRect(150, 150, 350, 250, 20, 20);
-		}
-		
-		if (doorOpened) {
-			// Handle of the door
-			
-		} else {
-			// Door closed
-			g.setColor(Color.gray);
-			g.fillRect(460, 100, 50, 350);
-			g.setColor(Color.white);
-			g.drawRect(460, 100, 50, 350);
-		}
-		
-		// Panel to print duration & information
-		g.setColor(Color.white);
-		g.fillRect(625, 100, 100, 50);
-		g.setColor(Color.black);
-		g.fillRect(630, 105, 90, 40);
-		
-		g.setColor(Color.white);
-		g.fillRect(625, 160, 100, 150);
-		g.setColor(Color.black);
-		g.fillRect(630, 165, 90, 140);
-		
-		// Panel for start button
-		g.setColor(Color.white);
-		g.fillRect(625, 330, 100, 40);
-		g.setColor(Color.black);
-		g.fillRect(630, 335, 90, 30);
-		g.setColor(Color.white);
-		g.drawString("START", 655, 355);
-		g.setColor(Color.black);
-		
-		g.setColor(Color.green);
-		//System.out.println("Duration=" + duration);
-		Font fold = g.getFont();
-		Font f = fold.deriveFont(30);
-		g.setFont(f);
-		
-		g.drawString(""+duration, 690, 130);
-		
-		if (magnetronON) {
-			g.drawString("Cooking", 650, 220);
-		}
-		
-		if (start) {
-			g.drawString("Start", 650, 190);
-		}
-		
-		if (cookingFinished) {
-			g.drawString("Finished", 650, 250);
-		}
-		
-		if (doorOpened) {
-			g.drawString("Door opened", 634, 280);
-		}
-		
-		
-	}
-	
-    
-}
\ No newline at end of file
+        setBackground(Color.white);
+    }
+
+    public void setCookingFinished(boolean finished) {
+        cookingFinished = finished;
+    }
+
+    public void setDoorOpened(boolean opened) {
+        doorOpened = opened;
+    }
+
+    public void setStart(boolean on) {
+        start = on;
+    }
+
+    public void setMagnetronON(boolean isOn) {
+        magnetronON = isOn;
+    }
+
+    public void setDuration(int _duration) {
+        duration = _duration;
+    }
+
+    public void paintComponent(Graphics g) {
+        super.paintComponent(g);
+        Graphics2D g2 = (Graphics2D) g;
+        //System.out.println("Salut .. repainting");
+
+        // Foot
+
+        g.setColor(Color.black);
+        g.fillRect(100, 500, 100, 30);
+        g.fillRect(600, 500, 100, 30);
+
+        // Main oven
+        g.setColor(Color.gray);
+        g.fillRect(50, 50, 700, 450);
+        g.setColor(Color.black);
+        g.drawRect(50, 50, 700, 450);
+
+
+        g.setColor(Color.white);
+        g.fillRoundRect(75, 75, 500, 400, 20, 20);
+
+
+        // Inside of the oven
+        g.setColor(Color.black);
+        g.fillRoundRect(100, 100, 450, 350, 20, 20);
+
+
+        if (doorOpened) {
+            // Inside the oven
+            int dec = -5;
+            g.setColor(Color.white);
+            g.fillRoundRect(140, 140, 370, 270, 20, 20);
+            g.setColor(Color.black);
+            g.drawRect(140, 140, 370, 270);
+            g.drawRect(200, 190, 250, 170);
+
+            g.drawLine(140, 140, 200, 190);
+            g.drawLine(510, 140, 450, 190);
+            g.drawLine(510, 410, 450, 360);
+            g.drawLine(140, 410, 200, 360);
+
+            //Door
+            g.setColor(Color.white);
+            g.fillRect(95+dec, 110, 35, 330);
+            g.setColor(Color.black);
+            g.drawRect(95+dec, 110, 35, 330);
+            g.fillRect(95+dec, 110, 10, 330);
+            g.setColor(Color.gray);
+            g.fillRect(65+dec, 100, 25, 350);
+            g.fillRect(65+dec, 150, 35, 30);
+            g.fillRect(65+dec, 370, 35, 30);
+            g.setColor(Color.black);
+            g.drawRect(65+dec, 100, 25, 350);
+
+
+
+
+        } else {
+
+        }
+
+        if (magnetronON) {
+            g.setColor(Color.red);
+            g.fillRoundRect(150, 150, 350, 250, 20, 20);
+        }
+
+        if (doorOpened) {
+            // Handle of the door
+
+        } else {
+            // Door closed
+            g.setColor(Color.gray);
+            g.fillRect(460, 100, 50, 350);
+            g.setColor(Color.white);
+            g.drawRect(460, 100, 50, 350);
+        }
+
+        // Panel to print duration & information
+        g.setColor(Color.white);
+        g.fillRect(625, 100, 100, 50);
+        g.setColor(Color.black);
+        g.fillRect(630, 105, 90, 40);
+
+        g.setColor(Color.white);
+        g.fillRect(625, 160, 100, 150);
+        g.setColor(Color.black);
+        g.fillRect(630, 165, 90, 140);
+
+        // Panel for start button
+        g.setColor(Color.white);
+        g.fillRect(625, 330, 100, 40);
+        g.setColor(Color.black);
+        g.fillRect(630, 335, 90, 30);
+        g.setColor(Color.white);
+        g.drawString("START", 655, 355);
+        g.setColor(Color.black);
+
+        g.setColor(Color.green);
+        //System.out.println("Duration=" + duration);
+        Font fold = g.getFont();
+        Font f = fold.deriveFont(30);
+        g.setFont(f);
+
+        g.drawString(""+duration, 690, 130);
+
+        if (magnetronON) {
+            g.drawString("Cooking", 650, 220);
+        }
+
+        if (start) {
+            g.drawString("Start", 650, 190);
+        }
+
+        if (cookingFinished) {
+            g.drawString("Finished", 650, 250);
+        }
+
+        if (doorOpened) {
+            g.drawString("Door opened", 634, 280);
+        }
+
+
+    }
+
+
+}
diff --git a/modeling/SysMLSec/SimpleTLS.xml b/modeling/SysMLSec/SimpleTLS.xml
index 03af4bed74..379e7f8952 100644
--- a/modeling/SysMLSec/SimpleTLS.xml
+++ b/modeling/SysMLSec/SimpleTLS.xml
@@ -7,7 +7,7 @@
 <MainCode value="void __user_init() {"/>
 <MainCode value="}"/>
 <Optimized value="true" />
-<Validated value="System;Client;Server;" />
+<Validated value="" />
 <Ignored value="" />
 
 <CONNECTOR type="5002" id="6" >
@@ -46,7 +46,7 @@
 
 <COMPONENT type="302" id="23" >
 <cdparam x="710" y="44" />
-<sizeparam width="522" height="136" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<sizeparam width="80" height="136" minWidth="80" minHeight="10" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Proverif Pragma" value="#PrivatePublicKeys Server serverPrivK serverPubK
@@ -55,7 +55,8 @@
 #InitialSystemKnowledge Server.CAPrivK Client.CAPrivK
 
 #Authenticity Server.SendingMS.MS Client.sendMessage.MS
-#Confidentiality Client.secretMessage" />
+#Confidentiality Client.secretMessage
+" />
 <TGConnectingPoint num="0" id="7" />
 <TGConnectingPoint num="1" id="8" />
 <TGConnectingPoint num="2" id="9" />
@@ -159,11 +160,11 @@
 </COMPONENT>
 <SUBCOMPONENT type="5000" id="66" >
 <father id="116" num="0" />
-<cdparam x="422" y="145" />
+<cdparam x="143" y="142" />
 <sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="346" minY="0" maxY="189" />
-<infoparam name="Block0" value="Server" />
+<infoparam name="Block0" value="Client" />
 <TGConnectingPoint num="0" id="42" />
 <TGConnectingPoint num="1" id="43" />
 <TGConnectingPoint num="2" id="44" />
@@ -190,16 +191,17 @@
 <TGConnectingPoint num="23" id="65" />
 <extraparam>
 <CryptoBlock value="true" />
-<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="CAPrivK" value="" type="5" typeOther="Key" />
 <Attribute access="0" id="serverCert" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="serverPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="serverPrivK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="PMS" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="PMS" value="" type="8" typeOther="Message" />
 <Attribute access="0" id="MS" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="CAPrivK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="certVerified" value="" type="4" typeOther="" />
+<Attribute access="0" id="filler1" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="clientHello" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="serverHello" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="filler1" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="filler2" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="secretMessage" value="" type="5" typeOther="Message" />
 <Method value="Message aencrypt(Message msg, Key k)" />
 <Method value="Message adecrypt(Message msg, Key k)" />
@@ -224,11 +226,11 @@
 </SUBCOMPONENT>
 <SUBCOMPONENT type="5000" id="91" >
 <father id="116" num="1" />
-<cdparam x="143" y="142" />
+<cdparam x="422" y="145" />
 <sizeparam width="250" height="200" minWidth="5" minHeight="2" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="0" maxX="346" minY="0" maxY="189" />
-<infoparam name="Block0" value="Client" />
+<infoparam name="Block0" value="Server" />
 <TGConnectingPoint num="0" id="67" />
 <TGConnectingPoint num="1" id="68" />
 <TGConnectingPoint num="2" id="69" />
@@ -255,17 +257,16 @@
 <TGConnectingPoint num="23" id="90" />
 <extraparam>
 <CryptoBlock value="true" />
+<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="CAPrivK" value="" type="5" typeOther="Key" />
 <Attribute access="0" id="serverCert" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="serverPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="PMS" value="" type="8" typeOther="Message" />
+<Attribute access="0" id="serverPrivK" value="" type="5" typeOther="Key" />
+<Attribute access="0" id="PMS" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="MS" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="CAPubK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="CAPrivK" value="" type="5" typeOther="Key" />
-<Attribute access="0" id="certVerified" value="" type="4" typeOther="" />
-<Attribute access="0" id="filler1" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="clientHello" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="serverHello" value="" type="5" typeOther="Message" />
-<Attribute access="0" id="filler2" value="" type="5" typeOther="Message" />
+<Attribute access="0" id="filler1" value="" type="5" typeOther="Message" />
 <Attribute access="0" id="secretMessage" value="" type="5" typeOther="Message" />
 <Method value="Message aencrypt(Message msg, Key k)" />
 <Method value="Message adecrypt(Message msg, Key k)" />
@@ -305,18 +306,18 @@
 
 </AVATARStateMachineDiagramPanel>
 
-<AVATARStateMachineDiagramPanel name="Client" minX="10" maxX="2500" minY="10" maxY="1500" >
+<AVATARStateMachineDiagramPanel name="Server" minX="10" maxX="2500" minY="10" maxY="1500" >
 <CONNECTOR type="5102" id="125" >
-<cdparam x="407" y="35" />
+<cdparam x="407" y="429" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="124" />
-<P1  x="407" y="35" id="427" />
-<P2  x="407" y="91" id="416" />
+<P1  x="407" y="429" id="181" />
+<P2  x="407" y="472" id="270" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="123" >
 <father id="125" num="0" />
-<cdparam x="407" y="75" />
+<cdparam x="407" y="469" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -335,17 +336,17 @@
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="132" >
-<cdparam x="528" y="626" />
+<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" />
 <TGConnectingPoint num="0" id="131" />
-<P1  x="528" y="626" id="260" />
-<P2  x="242" y="496" id="349" />
+<P1  x="407" y="70" id="314" />
+<P2  x="407" y="124" id="303" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="130" >
 <father id="132" num="0" />
-<cdparam x="434" y="624" />
-<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="416" y="96" />
+<sizeparam width="230" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -354,26 +355,28 @@
 <TGConnectingPoint num="2" id="128" />
 <TGConnectingPoint num="3" id="129" />
 <extraparam>
-<guard value="[ else ]" />
+<guard value="[ ]" />
 <afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
+<actions value="filler1 = sign(serverPubK, CAPrivK)" />
+<actions value="serverCert = cert(serverPubK, filler1)" />
 </extraparam>
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="139" >
-<cdparam x="407" y="288" />
+<cdparam x="407" y="207" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="138" />
-<P1  x="407" y="288" id="378" />
-<P2  x="217" y="465" id="332" />
+<P1  x="407" y="154" id="304" />
+<P2  x="407" y="212" id="292" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="137" >
 <father id="139" num="0" />
-<cdparam x="261" y="362" />
-<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="418" y="186" />
+<sizeparam width="256" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -382,25 +385,26 @@
 <TGConnectingPoint num="2" id="135" />
 <TGConnectingPoint num="3" id="136" />
 <extraparam>
-<guard value="[ else ]" />
+<guard value="[ ]" />
 <afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
+<actions value="filler1 = concat2(serverHello, serverCert)" />
 </extraparam>
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="146" >
-<cdparam x="407" y="107" />
+<cdparam x="407" y="242" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="145" />
-<P1  x="407" y="121" id="417" />
-<P2  x="407" y="143" id="405" />
+<P1  x="407" y="242" id="293" />
+<P2  x="407" y="265" id="281" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="144" >
 <father id="146" num="0" />
-<cdparam x="407" y="147" />
+<cdparam x="407" y="282" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -419,17 +423,17 @@
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="153" >
-<cdparam x="407" y="198" />
+<cdparam x="407" y="329" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="152" />
-<P1  x="407" y="173" id="406" />
-<P2  x="407" y="238" id="372" />
+<P1  x="407" y="295" id="282" />
+<P2  x="407" y="379" id="176" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="151" >
 <father id="153" num="0" />
-<cdparam x="416" y="198" />
-<sizeparam width="278" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="423" y="312" />
+<sizeparam width="294" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -443,23 +447,25 @@
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
-<actions value="get2(filler1, serverHello, serverCert) " />
-<actions value="certVerified = verifyCert(serverCert, CAPubK)" />
+<actions value="PMS = adecrypt(filler1, serverPrivK)" />
+<actions value="filler1 = concat3(PMS, clientHello, serverHello) " />
+<actions value="MS = hash(filler1)" />
+<actions value="filler1 = hash(MS)" />
 </extraparam>
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="160" >
-<cdparam x="514" y="288" />
+<cdparam x="407" y="499" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="159" />
-<P1  x="514" y="288" id="395" />
-<P2  x="540" y="341" id="320" />
+<P1  x="407" y="502" id="271" />
+<P2  x="407" y="521" id="259" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="158" >
 <father id="160" num="0" />
-<cdparam x="546" y="308" />
-<sizeparam width="199" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="407" y="539" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -468,27 +474,26 @@
 <TGConnectingPoint num="2" id="156" />
 <TGConnectingPoint num="3" id="157" />
 <extraparam>
-<guard value="[ certVerified ]" />
+<guard value="[ ]" />
 <afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
-<actions value="serverPubK = getpk(serverCert)" />
 </extraparam>
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="167" >
-<cdparam x="540" y="371" />
+<cdparam x="407" y="551" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="166" />
-<P1  x="540" y="371" id="321" />
-<P2  x="540" y="423" id="309" />
+<P1  x="407" y="551" id="260" />
+<P2  x="407" y="607" id="226" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="165" >
 <father id="167" num="0" />
-<cdparam x="577" y="400" />
-<sizeparam width="229" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<cdparam x="415" y="579" />
+<sizeparam width="238" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
@@ -502,22 +507,21 @@
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
-<actions value="filler1.data = PMS" />
-<actions value="filler1 = aencrypt(filler1, serverPubK)" />
+<actions value="secretMessage = sdecrypt(filler1, MS)" />
 </extraparam>
 </SUBCOMPONENT>
 
 <CONNECTOR type="5102" id="174" >
-<cdparam x="540" y="453" />
+<cdparam x="453" y="657" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
 <TGConnectingPoint num="0" id="173" />
-<P1  x="540" y="453" id="310" />
-<P2  x="540" y="490" id="298" />
+<P1  x="453" y="657" id="248" />
+<P2  x="453" y="710" id="216" />
 <AutomaticDrawing  data="true" />
 </CONNECTOR><SUBCOMPONENT type="-1" id="172" >
 <father id="174" num="0" />
-<cdparam x="540" y="493" />
+<cdparam x="453" y="697" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
@@ -535,466 +539,321 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="181" >
-<cdparam x="540" y="520" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="180" />
-<P1  x="540" y="520" id="299" />
-<P2  x="540" y="601" id="273" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="179" >
-<father id="181" num="0" />
-<cdparam x="556" y="547" />
-<sizeparam width="290" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5106" id="215" >
+<cdparam x="357" y="379" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<infoparam name="State" value="SendingMS" />
 <TGConnectingPoint num="0" id="175" />
 <TGConnectingPoint num="1" id="176" />
 <TGConnectingPoint num="2" id="177" />
 <TGConnectingPoint num="3" id="178" />
+<TGConnectingPoint num="4" id="179" />
+<TGConnectingPoint num="5" id="180" />
+<TGConnectingPoint num="6" id="181" />
+<TGConnectingPoint num="7" id="182" />
+<TGConnectingPoint num="8" id="183" />
+<TGConnectingPoint num="9" id="184" />
+<TGConnectingPoint num="10" id="185" />
+<TGConnectingPoint num="11" id="186" />
+<TGConnectingPoint num="12" id="187" />
+<TGConnectingPoint num="13" id="188" />
+<TGConnectingPoint num="14" id="189" />
+<TGConnectingPoint num="15" id="190" />
+<TGConnectingPoint num="16" id="191" />
+<TGConnectingPoint num="17" id="192" />
+<TGConnectingPoint num="18" id="193" />
+<TGConnectingPoint num="19" id="194" />
+<TGConnectingPoint num="20" id="195" />
+<TGConnectingPoint num="21" id="196" />
+<TGConnectingPoint num="22" id="197" />
+<TGConnectingPoint num="23" id="198" />
+<TGConnectingPoint num="24" id="199" />
+<TGConnectingPoint num="25" id="200" />
+<TGConnectingPoint num="26" id="201" />
+<TGConnectingPoint num="27" id="202" />
+<TGConnectingPoint num="28" id="203" />
+<TGConnectingPoint num="29" id="204" />
+<TGConnectingPoint num="30" id="205" />
+<TGConnectingPoint num="31" id="206" />
+<TGConnectingPoint num="32" id="207" />
+<TGConnectingPoint num="33" id="208" />
+<TGConnectingPoint num="34" id="209" />
+<TGConnectingPoint num="35" id="210" />
+<TGConnectingPoint num="36" id="211" />
+<TGConnectingPoint num="37" id="212" />
+<TGConnectingPoint num="38" id="213" />
+<TGConnectingPoint num="39" id="214" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<actions value="filler2 = concat3(PMS, clientHello, serverHello)" />
-<actions value="MS = hash(filler2)" />
-<actions value="filler2 = hash(MS)" />
-</extraparam>
-</SUBCOMPONENT>
-
-<CONNECTOR type="5102" id="188" >
-<cdparam x="578" y="651" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="187" />
-<P1  x="578" y="651" id="263" />
-<P2  x="578" y="692" id="217" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="186" >
-<father id="188" num="0" />
-<cdparam x="591" y="678" />
-<sizeparam width="180" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="182" />
-<TGConnectingPoint num="1" id="183" />
-<TGConnectingPoint num="2" id="184" />
-<TGConnectingPoint num="3" id="185" />
-<extraparam>
-<guard value="[ filler1.data == filler2.data ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<CONNECTOR type="5102" id="195" >
-<cdparam x="565" y="742" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="194" />
-<P1  x="565" y="742" id="245" />
-<P2  x="565" y="788" id="205" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="193" >
-<father id="195" num="0" />
-<cdparam x="584" y="771" />
-<sizeparam width="242" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5101" id="217" >
+<cdparam x="443" y="715" />
+<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="189" />
-<TGConnectingPoint num="1" id="190" />
-<TGConnectingPoint num="2" id="191" />
-<TGConnectingPoint num="3" id="192" />
-<extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
-<actions value="filler1 = sencrypt(secretMessage, MS) " />
-</extraparam>
-</SUBCOMPONENT>
+<infoparam name="stop state" value="null" />
+<TGConnectingPoint num="0" id="216" />
+</COMPONENT>
 
-<CONNECTOR type="5102" id="202" >
-<cdparam x="565" y="803" />
-<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="201" />
-<P1  x="565" y="818" id="206" />
-<P2  x="565" y="833" id="203" />
-<AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="200" >
-<father id="202" num="0" />
-<cdparam x="565" y="843" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5106" id="258" >
+<cdparam x="376" y="607" />
+<sizeparam width="125" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="196" />
-<TGConnectingPoint num="1" id="197" />
-<TGConnectingPoint num="2" id="198" />
-<TGConnectingPoint num="3" id="199" />
+<infoparam name="State" value="receiveMessage" />
+<TGConnectingPoint num="0" id="218" />
+<TGConnectingPoint num="1" id="219" />
+<TGConnectingPoint num="2" id="220" />
+<TGConnectingPoint num="3" id="221" />
+<TGConnectingPoint num="4" id="222" />
+<TGConnectingPoint num="5" id="223" />
+<TGConnectingPoint num="6" id="224" />
+<TGConnectingPoint num="7" id="225" />
+<TGConnectingPoint num="8" id="226" />
+<TGConnectingPoint num="9" id="227" />
+<TGConnectingPoint num="10" id="228" />
+<TGConnectingPoint num="11" id="229" />
+<TGConnectingPoint num="12" id="230" />
+<TGConnectingPoint num="13" id="231" />
+<TGConnectingPoint num="14" id="232" />
+<TGConnectingPoint num="15" id="233" />
+<TGConnectingPoint num="16" id="234" />
+<TGConnectingPoint num="17" id="235" />
+<TGConnectingPoint num="18" id="236" />
+<TGConnectingPoint num="19" id="237" />
+<TGConnectingPoint num="20" id="238" />
+<TGConnectingPoint num="21" id="239" />
+<TGConnectingPoint num="22" id="240" />
+<TGConnectingPoint num="23" id="241" />
+<TGConnectingPoint num="24" id="242" />
+<TGConnectingPoint num="25" id="243" />
+<TGConnectingPoint num="26" id="244" />
+<TGConnectingPoint num="27" id="245" />
+<TGConnectingPoint num="28" id="246" />
+<TGConnectingPoint num="29" id="247" />
+<TGConnectingPoint num="30" id="248" />
+<TGConnectingPoint num="31" id="249" />
+<TGConnectingPoint num="32" id="250" />
+<TGConnectingPoint num="33" id="251" />
+<TGConnectingPoint num="34" id="252" />
+<TGConnectingPoint num="35" id="253" />
+<TGConnectingPoint num="36" id="254" />
+<TGConnectingPoint num="37" id="255" />
+<TGConnectingPoint num="38" id="256" />
+<TGConnectingPoint num="39" id="257" />
 <extraparam>
-<guard value="[ ]" />
-<afterMin value="" />
-<afterMax value="" />
-<computeMin value="" />
-<computeMax value="" />
 </extraparam>
-</SUBCOMPONENT>
+</COMPONENT>
 
-<COMPONENT type="5101" id="204" >
-<cdparam x="555" y="838" />
-<sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5104" id="269" >
+<cdparam x="363" y="526" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="203" />
+<infoparam name="Receive signal" value="chIn(filler1)" />
+<TGConnectingPoint num="0" id="259" />
+<TGConnectingPoint num="1" id="260" />
+<TGConnectingPoint num="2" id="261" />
+<TGConnectingPoint num="3" id="262" />
+<TGConnectingPoint num="4" id="263" />
+<TGConnectingPoint num="5" id="264" />
+<TGConnectingPoint num="6" id="265" />
+<TGConnectingPoint num="7" id="266" />
+<TGConnectingPoint num="8" id="267" />
+<TGConnectingPoint num="9" id="268" />
 </COMPONENT>
 
-<COMPONENT type="5103" id="215" >
-<cdparam x="520" y="793" />
+<COMPONENT type="5103" id="280" >
+<cdparam x="362" y="477" />
 <sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Send signal" value="chOut(filler1)" />
-<TGConnectingPoint num="0" id="205" />
-<TGConnectingPoint num="1" id="206" />
-<TGConnectingPoint num="2" id="207" />
-<TGConnectingPoint num="3" id="208" />
-<TGConnectingPoint num="4" id="209" />
-<TGConnectingPoint num="5" id="210" />
-<TGConnectingPoint num="6" id="211" />
-<TGConnectingPoint num="7" id="212" />
-<TGConnectingPoint num="8" id="213" />
-<TGConnectingPoint num="9" id="214" />
+<TGConnectingPoint num="0" id="270" />
+<TGConnectingPoint num="1" id="271" />
+<TGConnectingPoint num="2" id="272" />
+<TGConnectingPoint num="3" id="273" />
+<TGConnectingPoint num="4" id="274" />
+<TGConnectingPoint num="5" id="275" />
+<TGConnectingPoint num="6" id="276" />
+<TGConnectingPoint num="7" id="277" />
+<TGConnectingPoint num="8" id="278" />
+<TGConnectingPoint num="9" id="279" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="256" >
-<cdparam x="528" y="692" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5104" id="291" >
+<cdparam x="363" y="270" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="State" value="sendMessage" />
-<TGConnectingPoint num="0" id="216" />
-<TGConnectingPoint num="1" id="217" />
-<TGConnectingPoint num="2" id="218" />
-<TGConnectingPoint num="3" id="219" />
-<TGConnectingPoint num="4" id="220" />
-<TGConnectingPoint num="5" id="221" />
-<TGConnectingPoint num="6" id="222" />
-<TGConnectingPoint num="7" id="223" />
-<TGConnectingPoint num="8" id="224" />
-<TGConnectingPoint num="9" id="225" />
-<TGConnectingPoint num="10" id="226" />
-<TGConnectingPoint num="11" id="227" />
-<TGConnectingPoint num="12" id="228" />
-<TGConnectingPoint num="13" id="229" />
-<TGConnectingPoint num="14" id="230" />
-<TGConnectingPoint num="15" id="231" />
-<TGConnectingPoint num="16" id="232" />
-<TGConnectingPoint num="17" id="233" />
-<TGConnectingPoint num="18" id="234" />
-<TGConnectingPoint num="19" id="235" />
-<TGConnectingPoint num="20" id="236" />
-<TGConnectingPoint num="21" id="237" />
-<TGConnectingPoint num="22" id="238" />
-<TGConnectingPoint num="23" id="239" />
-<TGConnectingPoint num="24" id="240" />
-<TGConnectingPoint num="25" id="241" />
-<TGConnectingPoint num="26" id="242" />
-<TGConnectingPoint num="27" id="243" />
-<TGConnectingPoint num="28" id="244" />
-<TGConnectingPoint num="29" id="245" />
-<TGConnectingPoint num="30" id="246" />
-<TGConnectingPoint num="31" id="247" />
-<TGConnectingPoint num="32" id="248" />
-<TGConnectingPoint num="33" id="249" />
-<TGConnectingPoint num="34" id="250" />
-<TGConnectingPoint num="35" id="251" />
-<TGConnectingPoint num="36" id="252" />
-<TGConnectingPoint num="37" id="253" />
-<TGConnectingPoint num="38" id="254" />
-<TGConnectingPoint num="39" id="255" />
-<extraparam>
-</extraparam>
+<infoparam name="Receive signal" value="chIn(filler1)" />
+<TGConnectingPoint num="0" id="281" />
+<TGConnectingPoint num="1" id="282" />
+<TGConnectingPoint num="2" id="283" />
+<TGConnectingPoint num="3" id="284" />
+<TGConnectingPoint num="4" id="285" />
+<TGConnectingPoint num="5" id="286" />
+<TGConnectingPoint num="6" id="287" />
+<TGConnectingPoint num="7" id="288" />
+<TGConnectingPoint num="8" id="289" />
+<TGConnectingPoint num="9" id="290" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="297" >
-<cdparam x="528" y="601" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5103" id="302" >
+<cdparam x="362" y="217" />
+<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="State" value="checkMS" />
-<TGConnectingPoint num="0" id="257" />
-<TGConnectingPoint num="1" id="258" />
-<TGConnectingPoint num="2" id="259" />
-<TGConnectingPoint num="3" id="260" />
-<TGConnectingPoint num="4" id="261" />
-<TGConnectingPoint num="5" id="262" />
-<TGConnectingPoint num="6" id="263" />
-<TGConnectingPoint num="7" id="264" />
-<TGConnectingPoint num="8" id="265" />
-<TGConnectingPoint num="9" id="266" />
-<TGConnectingPoint num="10" id="267" />
-<TGConnectingPoint num="11" id="268" />
-<TGConnectingPoint num="12" id="269" />
-<TGConnectingPoint num="13" id="270" />
-<TGConnectingPoint num="14" id="271" />
-<TGConnectingPoint num="15" id="272" />
-<TGConnectingPoint num="16" id="273" />
-<TGConnectingPoint num="17" id="274" />
-<TGConnectingPoint num="18" id="275" />
-<TGConnectingPoint num="19" id="276" />
-<TGConnectingPoint num="20" id="277" />
-<TGConnectingPoint num="21" id="278" />
-<TGConnectingPoint num="22" id="279" />
-<TGConnectingPoint num="23" id="280" />
-<TGConnectingPoint num="24" id="281" />
-<TGConnectingPoint num="25" id="282" />
-<TGConnectingPoint num="26" id="283" />
-<TGConnectingPoint num="27" id="284" />
-<TGConnectingPoint num="28" id="285" />
-<TGConnectingPoint num="29" id="286" />
-<TGConnectingPoint num="30" id="287" />
-<TGConnectingPoint num="31" id="288" />
-<TGConnectingPoint num="32" id="289" />
-<TGConnectingPoint num="33" id="290" />
-<TGConnectingPoint num="34" id="291" />
-<TGConnectingPoint num="35" id="292" />
-<TGConnectingPoint num="36" id="293" />
-<TGConnectingPoint num="37" id="294" />
-<TGConnectingPoint num="38" id="295" />
-<TGConnectingPoint num="39" id="296" />
-<extraparam>
-</extraparam>
+<infoparam name="Send signal" value="chOut(filler1)" />
+<TGConnectingPoint num="0" id="292" />
+<TGConnectingPoint num="1" id="293" />
+<TGConnectingPoint num="2" id="294" />
+<TGConnectingPoint num="3" id="295" />
+<TGConnectingPoint num="4" id="296" />
+<TGConnectingPoint num="5" id="297" />
+<TGConnectingPoint num="6" id="298" />
+<TGConnectingPoint num="7" id="299" />
+<TGConnectingPoint num="8" id="300" />
+<TGConnectingPoint num="9" id="301" />
 </COMPONENT>
 
-<COMPONENT type="5104" id="308" >
-<cdparam x="496" y="495" />
-<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5104" id="313" >
+<cdparam x="348" y="129" />
+<sizeparam width="119" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Receive signal" value="chIn(filler1)" />
-<TGConnectingPoint num="0" id="298" />
-<TGConnectingPoint num="1" id="299" />
-<TGConnectingPoint num="2" id="300" />
-<TGConnectingPoint num="3" id="301" />
-<TGConnectingPoint num="4" id="302" />
-<TGConnectingPoint num="5" id="303" />
-<TGConnectingPoint num="6" id="304" />
-<TGConnectingPoint num="7" id="305" />
-<TGConnectingPoint num="8" id="306" />
-<TGConnectingPoint num="9" id="307" />
+<infoparam name="Receive signal" value="chIn(clientHello)" />
+<TGConnectingPoint num="0" id="303" />
+<TGConnectingPoint num="1" id="304" />
+<TGConnectingPoint num="2" id="305" />
+<TGConnectingPoint num="3" id="306" />
+<TGConnectingPoint num="4" id="307" />
+<TGConnectingPoint num="5" id="308" />
+<TGConnectingPoint num="6" id="309" />
+<TGConnectingPoint num="7" id="310" />
+<TGConnectingPoint num="8" id="311" />
+<TGConnectingPoint num="9" id="312" />
 </COMPONENT>
 
-<COMPONENT type="5103" id="319" >
-<cdparam x="495" y="428" />
-<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5100" id="315" >
+<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="2500" minY="10" maxY="1500" />
-<infoparam name="Send signal" value="chOut(filler1)" />
-<TGConnectingPoint num="0" id="309" />
-<TGConnectingPoint num="1" id="310" />
-<TGConnectingPoint num="2" id="311" />
-<TGConnectingPoint num="3" id="312" />
-<TGConnectingPoint num="4" id="313" />
-<TGConnectingPoint num="5" id="314" />
-<TGConnectingPoint num="6" id="315" />
-<TGConnectingPoint num="7" id="316" />
-<TGConnectingPoint num="8" id="317" />
-<TGConnectingPoint num="9" id="318" />
+<infoparam name="start state" value="null" />
+<TGConnectingPoint num="0" id="314" />
 </COMPONENT>
 
-<COMPONENT type="5108" id="322" >
-<cdparam x="454" y="346" />
-<sizeparam width="173" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+
+</AVATARStateMachineDiagramPanel>
+
+<AVATARStateMachineDiagramPanel name="Client" minX="10" maxX="2500" minY="10" maxY="1500" >
+<CONNECTOR type="5102" id="322" >
+<cdparam x="407" y="35" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="321" />
+<P1  x="407" y="35" id="624" />
+<P2  x="407" y="91" id="613" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="320" >
+<father id="322" num="0" />
+<cdparam x="407" y="75" />
+<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="TGComponent" value="null" />
-<TGConnectingPoint num="0" id="320" />
-<TGConnectingPoint num="1" id="321" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="316" />
+<TGConnectingPoint num="1" id="317" />
+<TGConnectingPoint num="2" id="318" />
+<TGConnectingPoint num="3" id="319" />
 <extraparam>
-<Data variable="PMS" minValue="0" maxValue="1000" functionId="0" />
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="5106" id="363" >
-<cdparam x="142" y="465" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="329" >
+<cdparam x="528" y="626" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="328" />
+<P1  x="528" y="626" id="457" />
+<P2  x="242" y="496" id="546" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="327" >
+<father id="329" num="0" />
+<cdparam x="434" y="624" />
+<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="State" value="error" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
 <TGConnectingPoint num="0" id="323" />
 <TGConnectingPoint num="1" id="324" />
 <TGConnectingPoint num="2" id="325" />
 <TGConnectingPoint num="3" id="326" />
-<TGConnectingPoint num="4" id="327" />
-<TGConnectingPoint num="5" id="328" />
-<TGConnectingPoint num="6" id="329" />
-<TGConnectingPoint num="7" id="330" />
-<TGConnectingPoint num="8" id="331" />
-<TGConnectingPoint num="9" id="332" />
-<TGConnectingPoint num="10" id="333" />
-<TGConnectingPoint num="11" id="334" />
-<TGConnectingPoint num="12" id="335" />
-<TGConnectingPoint num="13" id="336" />
-<TGConnectingPoint num="14" id="337" />
-<TGConnectingPoint num="15" id="338" />
-<TGConnectingPoint num="16" id="339" />
-<TGConnectingPoint num="17" id="340" />
-<TGConnectingPoint num="18" id="341" />
-<TGConnectingPoint num="19" id="342" />
-<TGConnectingPoint num="20" id="343" />
-<TGConnectingPoint num="21" id="344" />
-<TGConnectingPoint num="22" id="345" />
-<TGConnectingPoint num="23" id="346" />
-<TGConnectingPoint num="24" id="347" />
-<TGConnectingPoint num="25" id="348" />
-<TGConnectingPoint num="26" id="349" />
-<TGConnectingPoint num="27" id="350" />
-<TGConnectingPoint num="28" id="351" />
-<TGConnectingPoint num="29" id="352" />
-<TGConnectingPoint num="30" id="353" />
-<TGConnectingPoint num="31" id="354" />
-<TGConnectingPoint num="32" id="355" />
-<TGConnectingPoint num="33" id="356" />
-<TGConnectingPoint num="34" id="357" />
-<TGConnectingPoint num="35" id="358" />
-<TGConnectingPoint num="36" id="359" />
-<TGConnectingPoint num="37" id="360" />
-<TGConnectingPoint num="38" id="361" />
-<TGConnectingPoint num="39" id="362" />
 <extraparam>
+<guard value="[ else ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<COMPONENT type="5106" id="404" >
-<cdparam x="364" y="238" />
-<sizeparam width="173" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="336" >
+<cdparam x="407" y="288" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="335" />
+<P1  x="407" y="288" id="575" />
+<P2  x="217" y="465" id="529" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="334" >
+<father id="336" num="0" />
+<cdparam x="261" y="362" />
+<sizeparam width="44" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="State" value="VerifyServerCert" />
-<TGConnectingPoint num="0" id="364" />
-<TGConnectingPoint num="1" id="365" />
-<TGConnectingPoint num="2" id="366" />
-<TGConnectingPoint num="3" id="367" />
-<TGConnectingPoint num="4" id="368" />
-<TGConnectingPoint num="5" id="369" />
-<TGConnectingPoint num="6" id="370" />
-<TGConnectingPoint num="7" id="371" />
-<TGConnectingPoint num="8" id="372" />
-<TGConnectingPoint num="9" id="373" />
-<TGConnectingPoint num="10" id="374" />
-<TGConnectingPoint num="11" id="375" />
-<TGConnectingPoint num="12" id="376" />
-<TGConnectingPoint num="13" id="377" />
-<TGConnectingPoint num="14" id="378" />
-<TGConnectingPoint num="15" id="379" />
-<TGConnectingPoint num="16" id="380" />
-<TGConnectingPoint num="17" id="381" />
-<TGConnectingPoint num="18" id="382" />
-<TGConnectingPoint num="19" id="383" />
-<TGConnectingPoint num="20" id="384" />
-<TGConnectingPoint num="21" id="385" />
-<TGConnectingPoint num="22" id="386" />
-<TGConnectingPoint num="23" id="387" />
-<TGConnectingPoint num="24" id="388" />
-<TGConnectingPoint num="25" id="389" />
-<TGConnectingPoint num="26" id="390" />
-<TGConnectingPoint num="27" id="391" />
-<TGConnectingPoint num="28" id="392" />
-<TGConnectingPoint num="29" id="393" />
-<TGConnectingPoint num="30" id="394" />
-<TGConnectingPoint num="31" id="395" />
-<TGConnectingPoint num="32" id="396" />
-<TGConnectingPoint num="33" id="397" />
-<TGConnectingPoint num="34" id="398" />
-<TGConnectingPoint num="35" id="399" />
-<TGConnectingPoint num="36" id="400" />
-<TGConnectingPoint num="37" id="401" />
-<TGConnectingPoint num="38" id="402" />
-<TGConnectingPoint num="39" id="403" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="330" />
+<TGConnectingPoint num="1" id="331" />
+<TGConnectingPoint num="2" id="332" />
+<TGConnectingPoint num="3" id="333" />
 <extraparam>
+<guard value="[ else ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
 </extraparam>
-</COMPONENT>
-
-<COMPONENT type="5104" id="415" >
-<cdparam x="363" y="148" />
-<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Receive signal" value="chIn(filler1)" />
-<TGConnectingPoint num="0" id="405" />
-<TGConnectingPoint num="1" id="406" />
-<TGConnectingPoint num="2" id="407" />
-<TGConnectingPoint num="3" id="408" />
-<TGConnectingPoint num="4" id="409" />
-<TGConnectingPoint num="5" id="410" />
-<TGConnectingPoint num="6" id="411" />
-<TGConnectingPoint num="7" id="412" />
-<TGConnectingPoint num="8" id="413" />
-<TGConnectingPoint num="9" id="414" />
-</COMPONENT>
-
-<COMPONENT type="5103" id="426" >
-<cdparam x="346" y="96" />
-<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Send signal" value="chOut(clientHello)" />
-<TGConnectingPoint num="0" id="416" />
-<TGConnectingPoint num="1" id="417" />
-<TGConnectingPoint num="2" id="418" />
-<TGConnectingPoint num="3" id="419" />
-<TGConnectingPoint num="4" id="420" />
-<TGConnectingPoint num="5" id="421" />
-<TGConnectingPoint num="6" id="422" />
-<TGConnectingPoint num="7" id="423" />
-<TGConnectingPoint num="8" id="424" />
-<TGConnectingPoint num="9" id="425" />
-</COMPONENT>
-
-<COMPONENT type="5100" id="428" >
-<cdparam x="400" y="15" />
-<sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
-<hidden value="false" />
-<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="427" />
-</COMPONENT>
-
-
-</AVATARStateMachineDiagramPanel>
+</SUBCOMPONENT>
 
-<AVATARStateMachineDiagramPanel name="Server" minX="10" maxX="2500" minY="10" maxY="1500" >
-<CONNECTOR type="5102" id="630" >
-<cdparam x="407" y="429" />
+<CONNECTOR type="5102" id="343" >
+<cdparam x="407" y="107" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="631" />
-<P1  x="407" y="429" id="596" />
-<P2  x="407" y="472" id="539" />
+<TGConnectingPoint num="0" id="342" />
+<P1  x="407" y="121" id="614" />
+<P2  x="407" y="143" id="602" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="632" >
-<father id="630" num="0" />
-<cdparam x="407" y="469" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="341" >
+<father id="343" num="0" />
+<cdparam x="407" y="147" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="633" />
-<TGConnectingPoint num="1" id="634" />
-<TGConnectingPoint num="2" id="635" />
-<TGConnectingPoint num="3" id="636" />
+<TGConnectingPoint num="0" id="337" />
+<TGConnectingPoint num="1" id="338" />
+<TGConnectingPoint num="2" id="339" />
+<TGConnectingPoint num="3" id="340" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1004,138 +863,114 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5106" id="589" >
-<cdparam x="357" y="379" />
-<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<CONNECTOR type="5102" id="350" >
+<cdparam x="407" y="198" />
+<sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<infoparam name="connector" value="null" />
+<TGConnectingPoint num="0" id="349" />
+<P1  x="407" y="173" id="603" />
+<P2  x="407" y="238" id="569" />
+<AutomaticDrawing  data="true" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="348" >
+<father id="350" num="0" />
+<cdparam x="416" y="198" />
+<sizeparam width="278" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="State" value="SendingMS" />
-<TGConnectingPoint num="0" id="590" />
-<TGConnectingPoint num="1" id="591" />
-<TGConnectingPoint num="2" id="592" />
-<TGConnectingPoint num="3" id="593" />
-<TGConnectingPoint num="4" id="594" />
-<TGConnectingPoint num="5" id="595" />
-<TGConnectingPoint num="6" id="596" />
-<TGConnectingPoint num="7" id="597" />
-<TGConnectingPoint num="8" id="598" />
-<TGConnectingPoint num="9" id="599" />
-<TGConnectingPoint num="10" id="600" />
-<TGConnectingPoint num="11" id="601" />
-<TGConnectingPoint num="12" id="602" />
-<TGConnectingPoint num="13" id="603" />
-<TGConnectingPoint num="14" id="604" />
-<TGConnectingPoint num="15" id="605" />
-<TGConnectingPoint num="16" id="606" />
-<TGConnectingPoint num="17" id="607" />
-<TGConnectingPoint num="18" id="608" />
-<TGConnectingPoint num="19" id="609" />
-<TGConnectingPoint num="20" id="610" />
-<TGConnectingPoint num="21" id="611" />
-<TGConnectingPoint num="22" id="612" />
-<TGConnectingPoint num="23" id="613" />
-<TGConnectingPoint num="24" id="614" />
-<TGConnectingPoint num="25" id="615" />
-<TGConnectingPoint num="26" id="616" />
-<TGConnectingPoint num="27" id="617" />
-<TGConnectingPoint num="28" id="618" />
-<TGConnectingPoint num="29" id="619" />
-<TGConnectingPoint num="30" id="620" />
-<TGConnectingPoint num="31" id="621" />
-<TGConnectingPoint num="32" id="622" />
-<TGConnectingPoint num="33" id="623" />
-<TGConnectingPoint num="34" id="624" />
-<TGConnectingPoint num="35" id="625" />
-<TGConnectingPoint num="36" id="626" />
-<TGConnectingPoint num="37" id="627" />
-<TGConnectingPoint num="38" id="628" />
-<TGConnectingPoint num="39" id="629" />
+<infoparam name="List of all parameters of an Avatar SMD transition" value="" />
+<TGConnectingPoint num="0" id="344" />
+<TGConnectingPoint num="1" id="345" />
+<TGConnectingPoint num="2" id="346" />
+<TGConnectingPoint num="3" id="347" />
 <extraparam>
+<guard value="[ ]" />
+<afterMin value="" />
+<afterMax value="" />
+<computeMin value="" />
+<computeMax value="" />
+<actions value="get2(filler1, serverHello, serverCert) " />
+<actions value="certVerified = verifyCert(serverCert, CAPubK)" />
 </extraparam>
-</COMPONENT>
+</SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="435" >
-<cdparam x="407" y="70" />
+<CONNECTOR type="5102" id="357" >
+<cdparam x="514" y="288" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="434" />
-<P1  x="407" y="70" id="586" />
-<P2  x="407" y="124" id="575" />
+<TGConnectingPoint num="0" id="356" />
+<P1  x="514" y="288" id="592" />
+<P2  x="540" y="341" id="517" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="433" >
-<father id="435" num="0" />
-<cdparam x="416" y="96" />
-<sizeparam width="230" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="355" >
+<father id="357" num="0" />
+<cdparam x="546" y="308" />
+<sizeparam width="199" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="429" />
-<TGConnectingPoint num="1" id="430" />
-<TGConnectingPoint num="2" id="431" />
-<TGConnectingPoint num="3" id="432" />
+<TGConnectingPoint num="0" id="351" />
+<TGConnectingPoint num="1" id="352" />
+<TGConnectingPoint num="2" id="353" />
+<TGConnectingPoint num="3" id="354" />
 <extraparam>
-<guard value="[ ]" />
+<guard value="[ certVerified ]" />
 <afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
-<actions value="filler1 = sign(serverPubK, CAPrivK)" />
-<actions value="serverCert = cert(serverPubK, filler1)" />
-<filesToIncludeLine value="" />
-<codeToIncludeLine value="" />
+<actions value="serverPubK = getpk(serverCert)" />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="449" >
-<cdparam x="407" y="207" />
+<CONNECTOR type="5102" id="364" >
+<cdparam x="540" y="371" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="448" />
-<P1  x="407" y="154" id="576" />
-<P2  x="407" y="212" id="561" />
+<TGConnectingPoint num="0" id="363" />
+<P1  x="540" y="371" id="518" />
+<P2  x="540" y="423" id="506" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="447" >
-<father id="449" num="0" />
-<cdparam x="418" y="186" />
-<sizeparam width="256" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="362" >
+<father id="364" num="0" />
+<cdparam x="577" y="400" />
+<sizeparam width="229" height="30" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="443" />
-<TGConnectingPoint num="1" id="444" />
-<TGConnectingPoint num="2" id="445" />
-<TGConnectingPoint num="3" id="446" />
+<TGConnectingPoint num="0" id="358" />
+<TGConnectingPoint num="1" id="359" />
+<TGConnectingPoint num="2" id="360" />
+<TGConnectingPoint num="3" id="361" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
-<actions value="filler1 = concat2(serverHello, serverCert)" />
-<filesToIncludeLine value="" />
-<codeToIncludeLine value="" />
+<actions value="filler1.data = PMS" />
+<actions value="filler1 = aencrypt(filler1, serverPubK)" />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="456" >
-<cdparam x="407" y="242" />
+<CONNECTOR type="5102" id="371" >
+<cdparam x="540" y="453" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="455" />
-<P1  x="407" y="242" id="562" />
-<P2  x="407" y="265" id="550" />
+<TGConnectingPoint num="0" id="370" />
+<P1  x="540" y="453" id="507" />
+<P2  x="540" y="490" id="495" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="454" >
-<father id="456" num="0" />
-<cdparam x="407" y="282" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="369" >
+<father id="371" num="0" />
+<cdparam x="540" y="493" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="450" />
-<TGConnectingPoint num="1" id="451" />
-<TGConnectingPoint num="2" id="452" />
-<TGConnectingPoint num="3" id="453" />
+<TGConnectingPoint num="0" id="365" />
+<TGConnectingPoint num="1" id="366" />
+<TGConnectingPoint num="2" id="367" />
+<TGConnectingPoint num="3" id="368" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1145,59 +980,58 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="463" >
-<cdparam x="407" y="329" />
+<CONNECTOR type="5102" id="378" >
+<cdparam x="540" y="520" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="462" />
-<P1  x="407" y="295" id="551" />
-<P2  x="407" y="379" id="591" />
+<TGConnectingPoint num="0" id="377" />
+<P1  x="540" y="520" id="496" />
+<P2  x="540" y="601" id="470" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="461" >
-<father id="463" num="0" />
-<cdparam x="423" y="312" />
-<sizeparam width="294" height="60" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="376" >
+<father id="378" num="0" />
+<cdparam x="556" y="547" />
+<sizeparam width="290" height="45" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="457" />
-<TGConnectingPoint num="1" id="458" />
-<TGConnectingPoint num="2" id="459" />
-<TGConnectingPoint num="3" id="460" />
+<TGConnectingPoint num="0" id="372" />
+<TGConnectingPoint num="1" id="373" />
+<TGConnectingPoint num="2" id="374" />
+<TGConnectingPoint num="3" id="375" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
-<actions value="PMS = adecrypt(filler1, serverPrivK)" />
-<actions value="filler1 = concat3(PMS, clientHello, serverHello) " />
-<actions value="MS = hash(filler1)" />
-<actions value="filler1 = hash(MS)" />
+<actions value="filler2 = concat3(PMS, clientHello, serverHello)" />
+<actions value="MS = hash(filler2)" />
+<actions value="filler2 = hash(MS)" />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="470" >
-<cdparam x="407" y="499" />
+<CONNECTOR type="5102" id="385" >
+<cdparam x="578" y="651" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="469" />
-<P1  x="407" y="502" id="540" />
-<P2  x="407" y="521" id="528" />
+<TGConnectingPoint num="0" id="384" />
+<P1  x="578" y="651" id="460" />
+<P2  x="578" y="692" id="414" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="468" >
-<father id="470" num="0" />
-<cdparam x="407" y="539" />
-<sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="383" >
+<father id="385" num="0" />
+<cdparam x="591" y="678" />
+<sizeparam width="180" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="464" />
-<TGConnectingPoint num="1" id="465" />
-<TGConnectingPoint num="2" id="466" />
-<TGConnectingPoint num="3" id="467" />
+<TGConnectingPoint num="0" id="379" />
+<TGConnectingPoint num="1" id="380" />
+<TGConnectingPoint num="2" id="381" />
+<TGConnectingPoint num="3" id="382" />
 <extraparam>
-<guard value="[ ]" />
+<guard value="[ filler1.data == filler2.data ]" />
 <afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
@@ -1205,56 +1039,54 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="477" >
-<cdparam x="407" y="551" />
+<CONNECTOR type="5102" id="392" >
+<cdparam x="565" y="742" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="476" />
-<P1  x="407" y="551" id="529" />
-<P2  x="407" y="607" id="495" />
+<TGConnectingPoint num="0" id="391" />
+<P1  x="565" y="742" id="442" />
+<P2  x="565" y="788" id="402" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="475" >
-<father id="477" num="0" />
-<cdparam x="415" y="579" />
-<sizeparam width="238" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="390" >
+<father id="392" num="0" />
+<cdparam x="584" y="771" />
+<sizeparam width="242" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="471" />
-<TGConnectingPoint num="1" id="472" />
-<TGConnectingPoint num="2" id="473" />
-<TGConnectingPoint num="3" id="474" />
+<TGConnectingPoint num="0" id="386" />
+<TGConnectingPoint num="1" id="387" />
+<TGConnectingPoint num="2" id="388" />
+<TGConnectingPoint num="3" id="389" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
 <afterMax value="" />
 <computeMin value="" />
 <computeMax value="" />
-<actions value="secretMessage = sdecrypt(filler1, MS)" />
-<filesToIncludeLine value="" />
-<codeToIncludeLine value="" />
+<actions value="filler1 = sencrypt(secretMessage, MS) " />
 </extraparam>
 </SUBCOMPONENT>
 
-<CONNECTOR type="5102" id="484" >
-<cdparam x="453" y="657" />
+<CONNECTOR type="5102" id="399" >
+<cdparam x="565" y="803" />
 <sizeparam width="0" height="0" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <infoparam name="connector" value="null" />
-<TGConnectingPoint num="0" id="483" />
-<P1  x="453" y="657" id="517" />
-<P2  x="453" y="710" id="485" />
+<TGConnectingPoint num="0" id="398" />
+<P1  x="565" y="818" id="403" />
+<P2  x="565" y="833" id="400" />
 <AutomaticDrawing  data="true" />
-</CONNECTOR><SUBCOMPONENT type="-1" id="482" >
-<father id="484" num="0" />
-<cdparam x="453" y="697" />
+</CONNECTOR><SUBCOMPONENT type="-1" id="397" >
+<father id="399" num="0" />
+<cdparam x="565" y="843" />
 <sizeparam width="10" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="List of all parameters of an Avatar SMD transition" value="" />
-<TGConnectingPoint num="0" id="478" />
-<TGConnectingPoint num="1" id="479" />
-<TGConnectingPoint num="2" id="480" />
-<TGConnectingPoint num="3" id="481" />
+<TGConnectingPoint num="0" id="393" />
+<TGConnectingPoint num="1" id="394" />
+<TGConnectingPoint num="2" id="395" />
+<TGConnectingPoint num="3" id="396" />
 <extraparam>
 <guard value="[ ]" />
 <afterMin value="" />
@@ -1264,125 +1096,238 @@
 </extraparam>
 </SUBCOMPONENT>
 
-<COMPONENT type="5101" id="486" >
-<cdparam x="443" y="715" />
+<COMPONENT type="5101" id="401" >
+<cdparam x="555" y="838" />
 <sizeparam width="20" height="20" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="stop state" value="null" />
-<TGConnectingPoint num="0" id="485" />
+<TGConnectingPoint num="0" id="400" />
 </COMPONENT>
 
-<COMPONENT type="5106" id="527" >
-<cdparam x="376" y="607" />
-<sizeparam width="125" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5103" id="412" >
+<cdparam x="520" y="793" />
+<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="State" value="receiveMessage" />
-<TGConnectingPoint num="0" id="487" />
-<TGConnectingPoint num="1" id="488" />
-<TGConnectingPoint num="2" id="489" />
-<TGConnectingPoint num="3" id="490" />
-<TGConnectingPoint num="4" id="491" />
-<TGConnectingPoint num="5" id="492" />
-<TGConnectingPoint num="6" id="493" />
-<TGConnectingPoint num="7" id="494" />
-<TGConnectingPoint num="8" id="495" />
-<TGConnectingPoint num="9" id="496" />
-<TGConnectingPoint num="10" id="497" />
-<TGConnectingPoint num="11" id="498" />
-<TGConnectingPoint num="12" id="499" />
-<TGConnectingPoint num="13" id="500" />
-<TGConnectingPoint num="14" id="501" />
-<TGConnectingPoint num="15" id="502" />
-<TGConnectingPoint num="16" id="503" />
-<TGConnectingPoint num="17" id="504" />
-<TGConnectingPoint num="18" id="505" />
-<TGConnectingPoint num="19" id="506" />
-<TGConnectingPoint num="20" id="507" />
-<TGConnectingPoint num="21" id="508" />
-<TGConnectingPoint num="22" id="509" />
-<TGConnectingPoint num="23" id="510" />
-<TGConnectingPoint num="24" id="511" />
-<TGConnectingPoint num="25" id="512" />
-<TGConnectingPoint num="26" id="513" />
-<TGConnectingPoint num="27" id="514" />
-<TGConnectingPoint num="28" id="515" />
-<TGConnectingPoint num="29" id="516" />
-<TGConnectingPoint num="30" id="517" />
-<TGConnectingPoint num="31" id="518" />
-<TGConnectingPoint num="32" id="519" />
-<TGConnectingPoint num="33" id="520" />
-<TGConnectingPoint num="34" id="521" />
-<TGConnectingPoint num="35" id="522" />
-<TGConnectingPoint num="36" id="523" />
-<TGConnectingPoint num="37" id="524" />
-<TGConnectingPoint num="38" id="525" />
-<TGConnectingPoint num="39" id="526" />
+<infoparam name="Send signal" value="chOut(filler1)" />
+<TGConnectingPoint num="0" id="402" />
+<TGConnectingPoint num="1" id="403" />
+<TGConnectingPoint num="2" id="404" />
+<TGConnectingPoint num="3" id="405" />
+<TGConnectingPoint num="4" id="406" />
+<TGConnectingPoint num="5" id="407" />
+<TGConnectingPoint num="6" id="408" />
+<TGConnectingPoint num="7" id="409" />
+<TGConnectingPoint num="8" id="410" />
+<TGConnectingPoint num="9" id="411" />
+</COMPONENT>
+
+<COMPONENT type="5106" id="453" >
+<cdparam x="528" y="692" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="State" value="sendMessage" />
+<TGConnectingPoint num="0" id="413" />
+<TGConnectingPoint num="1" id="414" />
+<TGConnectingPoint num="2" id="415" />
+<TGConnectingPoint num="3" id="416" />
+<TGConnectingPoint num="4" id="417" />
+<TGConnectingPoint num="5" id="418" />
+<TGConnectingPoint num="6" id="419" />
+<TGConnectingPoint num="7" id="420" />
+<TGConnectingPoint num="8" id="421" />
+<TGConnectingPoint num="9" id="422" />
+<TGConnectingPoint num="10" id="423" />
+<TGConnectingPoint num="11" id="424" />
+<TGConnectingPoint num="12" id="425" />
+<TGConnectingPoint num="13" id="426" />
+<TGConnectingPoint num="14" id="427" />
+<TGConnectingPoint num="15" id="428" />
+<TGConnectingPoint num="16" id="429" />
+<TGConnectingPoint num="17" id="430" />
+<TGConnectingPoint num="18" id="431" />
+<TGConnectingPoint num="19" id="432" />
+<TGConnectingPoint num="20" id="433" />
+<TGConnectingPoint num="21" id="434" />
+<TGConnectingPoint num="22" id="435" />
+<TGConnectingPoint num="23" id="436" />
+<TGConnectingPoint num="24" id="437" />
+<TGConnectingPoint num="25" id="438" />
+<TGConnectingPoint num="26" id="439" />
+<TGConnectingPoint num="27" id="440" />
+<TGConnectingPoint num="28" id="441" />
+<TGConnectingPoint num="29" id="442" />
+<TGConnectingPoint num="30" id="443" />
+<TGConnectingPoint num="31" id="444" />
+<TGConnectingPoint num="32" id="445" />
+<TGConnectingPoint num="33" id="446" />
+<TGConnectingPoint num="34" id="447" />
+<TGConnectingPoint num="35" id="448" />
+<TGConnectingPoint num="36" id="449" />
+<TGConnectingPoint num="37" id="450" />
+<TGConnectingPoint num="38" id="451" />
+<TGConnectingPoint num="39" id="452" />
 <extraparam>
 </extraparam>
 </COMPONENT>
 
-<COMPONENT type="5104" id="538" >
-<cdparam x="363" y="526" />
+<COMPONENT type="5106" id="494" >
+<cdparam x="528" y="601" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="State" value="checkMS" />
+<TGConnectingPoint num="0" id="454" />
+<TGConnectingPoint num="1" id="455" />
+<TGConnectingPoint num="2" id="456" />
+<TGConnectingPoint num="3" id="457" />
+<TGConnectingPoint num="4" id="458" />
+<TGConnectingPoint num="5" id="459" />
+<TGConnectingPoint num="6" id="460" />
+<TGConnectingPoint num="7" id="461" />
+<TGConnectingPoint num="8" id="462" />
+<TGConnectingPoint num="9" id="463" />
+<TGConnectingPoint num="10" id="464" />
+<TGConnectingPoint num="11" id="465" />
+<TGConnectingPoint num="12" id="466" />
+<TGConnectingPoint num="13" id="467" />
+<TGConnectingPoint num="14" id="468" />
+<TGConnectingPoint num="15" id="469" />
+<TGConnectingPoint num="16" id="470" />
+<TGConnectingPoint num="17" id="471" />
+<TGConnectingPoint num="18" id="472" />
+<TGConnectingPoint num="19" id="473" />
+<TGConnectingPoint num="20" id="474" />
+<TGConnectingPoint num="21" id="475" />
+<TGConnectingPoint num="22" id="476" />
+<TGConnectingPoint num="23" id="477" />
+<TGConnectingPoint num="24" id="478" />
+<TGConnectingPoint num="25" id="479" />
+<TGConnectingPoint num="26" id="480" />
+<TGConnectingPoint num="27" id="481" />
+<TGConnectingPoint num="28" id="482" />
+<TGConnectingPoint num="29" id="483" />
+<TGConnectingPoint num="30" id="484" />
+<TGConnectingPoint num="31" id="485" />
+<TGConnectingPoint num="32" id="486" />
+<TGConnectingPoint num="33" id="487" />
+<TGConnectingPoint num="34" id="488" />
+<TGConnectingPoint num="35" id="489" />
+<TGConnectingPoint num="36" id="490" />
+<TGConnectingPoint num="37" id="491" />
+<TGConnectingPoint num="38" id="492" />
+<TGConnectingPoint num="39" id="493" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5104" id="505" >
+<cdparam x="496" y="495" />
 <sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Receive signal" value="chIn(filler1)" />
-<TGConnectingPoint num="0" id="528" />
-<TGConnectingPoint num="1" id="529" />
-<TGConnectingPoint num="2" id="530" />
-<TGConnectingPoint num="3" id="531" />
-<TGConnectingPoint num="4" id="532" />
-<TGConnectingPoint num="5" id="533" />
-<TGConnectingPoint num="6" id="534" />
-<TGConnectingPoint num="7" id="535" />
-<TGConnectingPoint num="8" id="536" />
-<TGConnectingPoint num="9" id="537" />
+<TGConnectingPoint num="0" id="495" />
+<TGConnectingPoint num="1" id="496" />
+<TGConnectingPoint num="2" id="497" />
+<TGConnectingPoint num="3" id="498" />
+<TGConnectingPoint num="4" id="499" />
+<TGConnectingPoint num="5" id="500" />
+<TGConnectingPoint num="6" id="501" />
+<TGConnectingPoint num="7" id="502" />
+<TGConnectingPoint num="8" id="503" />
+<TGConnectingPoint num="9" id="504" />
 </COMPONENT>
 
-<COMPONENT type="5103" id="549" >
-<cdparam x="362" y="477" />
+<COMPONENT type="5103" id="516" >
+<cdparam x="495" y="428" />
 <sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="Send signal" value="chOut(filler1)" />
-<TGConnectingPoint num="0" id="539" />
-<TGConnectingPoint num="1" id="540" />
-<TGConnectingPoint num="2" id="541" />
-<TGConnectingPoint num="3" id="542" />
-<TGConnectingPoint num="4" id="543" />
-<TGConnectingPoint num="5" id="544" />
-<TGConnectingPoint num="6" id="545" />
-<TGConnectingPoint num="7" id="546" />
-<TGConnectingPoint num="8" id="547" />
-<TGConnectingPoint num="9" id="548" />
+<TGConnectingPoint num="0" id="506" />
+<TGConnectingPoint num="1" id="507" />
+<TGConnectingPoint num="2" id="508" />
+<TGConnectingPoint num="3" id="509" />
+<TGConnectingPoint num="4" id="510" />
+<TGConnectingPoint num="5" id="511" />
+<TGConnectingPoint num="6" id="512" />
+<TGConnectingPoint num="7" id="513" />
+<TGConnectingPoint num="8" id="514" />
+<TGConnectingPoint num="9" id="515" />
 </COMPONENT>
 
-<COMPONENT type="5104" id="560" >
-<cdparam x="363" y="270" />
-<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5108" id="519" >
+<cdparam x="454" y="346" />
+<sizeparam width="173" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Receive signal" value="chIn(filler1)" />
-<TGConnectingPoint num="0" id="550" />
-<TGConnectingPoint num="1" id="551" />
-<TGConnectingPoint num="2" id="552" />
-<TGConnectingPoint num="3" id="553" />
-<TGConnectingPoint num="4" id="554" />
-<TGConnectingPoint num="5" id="555" />
-<TGConnectingPoint num="6" id="556" />
-<TGConnectingPoint num="7" id="557" />
-<TGConnectingPoint num="8" id="558" />
-<TGConnectingPoint num="9" id="559" />
+<infoparam name="TGComponent" value="null" />
+<TGConnectingPoint num="0" id="517" />
+<TGConnectingPoint num="1" id="518" />
+<extraparam>
+<Data variable="PMS" minValue="0" maxValue="1000" functionId="0" />
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="5103" id="571" >
-<cdparam x="362" y="217" />
-<sizeparam width="91" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5106" id="560" >
+<cdparam x="142" y="465" />
+<sizeparam width="100" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Send signal" value="chOut(filler1)" />
+<infoparam name="State" value="error" />
+<TGConnectingPoint num="0" id="520" />
+<TGConnectingPoint num="1" id="521" />
+<TGConnectingPoint num="2" id="522" />
+<TGConnectingPoint num="3" id="523" />
+<TGConnectingPoint num="4" id="524" />
+<TGConnectingPoint num="5" id="525" />
+<TGConnectingPoint num="6" id="526" />
+<TGConnectingPoint num="7" id="527" />
+<TGConnectingPoint num="8" id="528" />
+<TGConnectingPoint num="9" id="529" />
+<TGConnectingPoint num="10" id="530" />
+<TGConnectingPoint num="11" id="531" />
+<TGConnectingPoint num="12" id="532" />
+<TGConnectingPoint num="13" id="533" />
+<TGConnectingPoint num="14" id="534" />
+<TGConnectingPoint num="15" id="535" />
+<TGConnectingPoint num="16" id="536" />
+<TGConnectingPoint num="17" id="537" />
+<TGConnectingPoint num="18" id="538" />
+<TGConnectingPoint num="19" id="539" />
+<TGConnectingPoint num="20" id="540" />
+<TGConnectingPoint num="21" id="541" />
+<TGConnectingPoint num="22" id="542" />
+<TGConnectingPoint num="23" id="543" />
+<TGConnectingPoint num="24" id="544" />
+<TGConnectingPoint num="25" id="545" />
+<TGConnectingPoint num="26" id="546" />
+<TGConnectingPoint num="27" id="547" />
+<TGConnectingPoint num="28" id="548" />
+<TGConnectingPoint num="29" id="549" />
+<TGConnectingPoint num="30" id="550" />
+<TGConnectingPoint num="31" id="551" />
+<TGConnectingPoint num="32" id="552" />
+<TGConnectingPoint num="33" id="553" />
+<TGConnectingPoint num="34" id="554" />
+<TGConnectingPoint num="35" id="555" />
+<TGConnectingPoint num="36" id="556" />
+<TGConnectingPoint num="37" id="557" />
+<TGConnectingPoint num="38" id="558" />
+<TGConnectingPoint num="39" id="559" />
+<extraparam>
+</extraparam>
+</COMPONENT>
+
+<COMPONENT type="5106" id="601" >
+<cdparam x="364" y="238" />
+<sizeparam width="173" height="50" minWidth="40" minHeight="30" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="State" value="VerifyServerCert" />
 <TGConnectingPoint num="0" id="561" />
 <TGConnectingPoint num="1" id="562" />
 <TGConnectingPoint num="2" id="563" />
@@ -1393,33 +1338,83 @@
 <TGConnectingPoint num="7" id="568" />
 <TGConnectingPoint num="8" id="569" />
 <TGConnectingPoint num="9" id="570" />
+<TGConnectingPoint num="10" id="571" />
+<TGConnectingPoint num="11" id="572" />
+<TGConnectingPoint num="12" id="573" />
+<TGConnectingPoint num="13" id="574" />
+<TGConnectingPoint num="14" id="575" />
+<TGConnectingPoint num="15" id="576" />
+<TGConnectingPoint num="16" id="577" />
+<TGConnectingPoint num="17" id="578" />
+<TGConnectingPoint num="18" id="579" />
+<TGConnectingPoint num="19" id="580" />
+<TGConnectingPoint num="20" id="581" />
+<TGConnectingPoint num="21" id="582" />
+<TGConnectingPoint num="22" id="583" />
+<TGConnectingPoint num="23" id="584" />
+<TGConnectingPoint num="24" id="585" />
+<TGConnectingPoint num="25" id="586" />
+<TGConnectingPoint num="26" id="587" />
+<TGConnectingPoint num="27" id="588" />
+<TGConnectingPoint num="28" id="589" />
+<TGConnectingPoint num="29" id="590" />
+<TGConnectingPoint num="30" id="591" />
+<TGConnectingPoint num="31" id="592" />
+<TGConnectingPoint num="32" id="593" />
+<TGConnectingPoint num="33" id="594" />
+<TGConnectingPoint num="34" id="595" />
+<TGConnectingPoint num="35" id="596" />
+<TGConnectingPoint num="36" id="597" />
+<TGConnectingPoint num="37" id="598" />
+<TGConnectingPoint num="38" id="599" />
+<TGConnectingPoint num="39" id="600" />
+<extraparam>
+</extraparam>
 </COMPONENT>
 
-<COMPONENT type="5104" id="585" >
-<cdparam x="348" y="129" />
-<sizeparam width="119" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<COMPONENT type="5104" id="612" >
+<cdparam x="363" y="148" />
+<sizeparam width="88" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
-<infoparam name="Receive signal" value="chIn(clientHello)" />
-<TGConnectingPoint num="0" id="575" />
-<TGConnectingPoint num="1" id="576" />
-<TGConnectingPoint num="2" id="577" />
-<TGConnectingPoint num="3" id="578" />
-<TGConnectingPoint num="4" id="579" />
-<TGConnectingPoint num="5" id="580" />
-<TGConnectingPoint num="6" id="581" />
-<TGConnectingPoint num="7" id="582" />
-<TGConnectingPoint num="8" id="583" />
-<TGConnectingPoint num="9" id="584" />
+<infoparam name="Receive signal" value="chIn(filler1)" />
+<TGConnectingPoint num="0" id="602" />
+<TGConnectingPoint num="1" id="603" />
+<TGConnectingPoint num="2" id="604" />
+<TGConnectingPoint num="3" id="605" />
+<TGConnectingPoint num="4" id="606" />
+<TGConnectingPoint num="5" id="607" />
+<TGConnectingPoint num="6" id="608" />
+<TGConnectingPoint num="7" id="609" />
+<TGConnectingPoint num="8" id="610" />
+<TGConnectingPoint num="9" id="611" />
 </COMPONENT>
 
-<COMPONENT type="5100" id="587" >
-<cdparam x="400" y="50" />
+<COMPONENT type="5103" id="623" >
+<cdparam x="346" y="96" />
+<sizeparam width="122" height="20" minWidth="30" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
+<hidden value="false" />
+<cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
+<infoparam name="Send signal" value="chOut(clientHello)" />
+<TGConnectingPoint num="0" id="613" />
+<TGConnectingPoint num="1" id="614" />
+<TGConnectingPoint num="2" id="615" />
+<TGConnectingPoint num="3" id="616" />
+<TGConnectingPoint num="4" id="617" />
+<TGConnectingPoint num="5" id="618" />
+<TGConnectingPoint num="6" id="619" />
+<TGConnectingPoint num="7" id="620" />
+<TGConnectingPoint num="8" id="621" />
+<TGConnectingPoint num="9" id="622" />
+</COMPONENT>
+
+<COMPONENT type="5100" id="625" >
+<cdparam x="400" y="15" />
 <sizeparam width="15" height="15" minWidth="0" minHeight="0" maxWidth="2000" maxHeight="2000" minDesiredWidth="0" minDesiredHeight="0" />
 <hidden value="false" />
 <cdrectangleparam minX="10" maxX="2500" minY="10" maxY="1500" />
 <infoparam name="start state" value="null" />
-<TGConnectingPoint num="0" id="586" />
+<TGConnectingPoint num="0" id="624" />
 </COMPONENT>
 
 
-- 
GitLab