diff --git a/build.txt b/build.txt
index 75ab7413e27befb67cb7b568b8ebdde23fcabcbd..94919a66f181c4eebf2903b0d3dd217f8a537a1a 100644
--- a/build.txt
+++ b/build.txt
@@ -1 +1 @@
-14823
\ No newline at end of file
+14830
\ No newline at end of file
diff --git a/scripts/Dockerfile b/scripts/Dockerfile
index 2f0e75c102c3a1a4b034c864dafbb1345babe9f1..0cc6eb60db24001bf5ec2d5472f52d378081cc4d 100644
--- a/scripts/Dockerfile
+++ b/scripts/Dockerfile
@@ -6,10 +6,24 @@ RUN apt-get update && apt-get install -yqq make git-core python3 build-essential
 RUN rm -rf /var/lib/apt/lists/*
 
 # Install Proverif
-RUN apt-get install -yqq libexpat1-dev libgtk2.0-dev opam
-RUN opam init --best-effort -y && eval $(opam env) && opam install proverif --best-effort -y
-
-ENV PATH $HOME/.opam/default/bin/:$PATH
+WORKDIR /home/proverif/
+RUN apt-get clean && apt-get -y update && apt-get install -y git
+#RUN mkdir osboxes
+#WORKDIR home/osboxes/
+RUN apt-get install -y \
+    net-tools\
+    iputils-ping\
+    nano\
+    g++ make cmake \
+    tar \
+    ocaml \
+    ocaml-compiler-libs \
+    ocaml-findlib \
+    liblablgtk2-ocaml-dev \
+    wget 
+RUN wget https://bblanche.gitlabpages.inria.fr/proverif/proverif2.05.tar.gz && tar -xf proverif2.05.tar.gz -C /home/proverif/ && cd /home/proverif/proverif2.05/ && ./build
+
+ENV PATH="$PATH:/home/proverif/proverif2.05/"
 
 
 CMD /bin/bash
diff --git a/scripts/cidoc.md b/scripts/cidoc.md
index 3f5811219e138bc7a78684b6493f280ca2a24b1c..02e070b8e74fb891a438f816faeaa9719f604398 100644
--- a/scripts/cidoc.md
+++ b/scripts/cidoc.md
@@ -1,3 +1,5 @@
+# Preparation
+
 - create a .gitlab-ci.yml at the root of the gitlab
 
 - create an eval script
@@ -7,11 +9,46 @@
 - build the docker image
 docker build -f Dockerfile -t ttoolci:latest .
 
-- run the docker image
+- to test if the docker file runs as expected:
 docker run -it --rm ttoolci:latest bash
 
 
+# yvrac
+
 - launch the gitlab-runner so as to start a docker machine for each pull
 
 sudo gitlab-runner register -n --name ttool@yvrac -r GR13489416h8xwG1z62GLNe5Q1phV -u https://gitlab.telecom-paris.fr/ --executor docker --docker-image ttoolci:latest --docker-pull-policy never
 
+#  cadillac
+
+- create a new runner in the gitlab interface:
+https://gitlab.telecom-paris.fr/mbe-tools/TTool/-/settings/ci_cd
+
+- edit gitlab-runner configuration in cadillac
+
+emacs -nw sudo more /etc/gitlab-runner/config.toml
+[[runners]]
+  name = "ttool@cadillac"
+  url = "https://gitlab.telecom-paris.fr/"
+  id = 112
+  token = "glrt-8xpskVidT7YyKkj7edmH"
+  token_obtained_at = 2024-06-28T10:11:08Z
+  token_expires_at = 0001-01-01T00:00:00Z
+  executor = "docker"
+  [runners.cache]
+    MaxUploadedArchiveSize = 0
+  [runners.docker]
+    tls_verify = false
+    image = "ttoolci"
+    pull_policy = ["never"]
+    privileged = false
+    disable_entrypoint_overwrite = false
+    oom_kill_disable = false
+    disable_cache = false
+    volumes = ["/cache"]
+    shm_size = 0
+    network_mtu = 0
+
+- restart gitlab-runner
+systemctl restart gitlab-runner.service
+
diff --git a/src/main/java/avatartranslator/AvatarAttribute.java b/src/main/java/avatartranslator/AvatarAttribute.java
index 81993dbdc7c8c632450878ac933148fd6d16d4d3..2bc7c2f551eead73597a84cbeaec077271d2b109 100644
--- a/src/main/java/avatartranslator/AvatarAttribute.java
+++ b/src/main/java/avatartranslator/AvatarAttribute.java
@@ -56,7 +56,7 @@ public class AvatarAttribute extends AvatarLeftHand implements NameChecker.NameS
 
     // Types of parameters
     private AvatarType type;
-    private String initialValue;
+    private String initialValue; // optional
     private boolean isConstant;
     private AvatarDataType dataType;
 
@@ -160,7 +160,6 @@ public class AvatarAttribute extends AvatarLeftHand implements NameChecker.NameS
         return this.type.getStringType();
     }
 
-
     public String toString() {
         String ret = getStringType() + " " + getName();
         if (initialValue == null) {
@@ -215,8 +214,6 @@ public class AvatarAttribute extends AvatarLeftHand implements NameChecker.NameS
             aa.setInitialValue(getInitialValue());
         }
         aa.setDataType(getDataType());
-
         return aa;
     }
-
 }
diff --git a/src/main/java/avatartranslator/AvatarSyntaxChecker.java b/src/main/java/avatartranslator/AvatarSyntaxChecker.java
index 5184a2661ed982302b48d70fb9631828691e5d06..6cc9ca3dcad44d85fa00bfe1dcfbbdd90c917516 100644
--- a/src/main/java/avatartranslator/AvatarSyntaxChecker.java
+++ b/src/main/java/avatartranslator/AvatarSyntaxChecker.java
@@ -543,7 +543,13 @@ public class AvatarSyntaxChecker {
                     if (asme instanceof AvatarActionOnSignal) {
                         AvatarActionOnSignal aaos = (AvatarActionOnSignal)asme;
                         AvatarSignal sig = aaos.getSignal();
-                        if (aaos.getValues().size() != sig.getListOfAttributes().size()) {
+                        if (( sig.getListOfAttributes() == null) || (aaos.getValues() == null)) {
+                            AvatarError error = new AvatarError(avspec);
+                            error.block = block;
+                            error.firstAvatarElement = aaos;
+                            error.error = 16;
+                            errors.add(error);
+                        } else if (aaos.getValues().size() != sig.getListOfAttributes().size()) {
                             AvatarError error = new AvatarError(avspec);
                             error.block = block;
                             error.firstAvatarElement = aaos;
diff --git a/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java b/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java
index 6c3a63328359069febac73af2a6ddc4f743dcbe0..94eeca6663838bec2db42080d3265092c81daf13 100644
--- a/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java
+++ b/src/main/java/tmltranslator/tomappingsystemc2/MappedSystemCTask.java
@@ -702,7 +702,7 @@ public class MappedSystemCTask {
             String nbOfSamples = rCommand.getNbOfSamples();
             if (rCommand.getSecurityPattern() != null) {
                 nbOfSamples = "( " + nbOfSamples + ") + (" +
-                        rCommand.getSecurityPattern().getOverhead() + " / " +rCommand.getChannel(0).getSize() + ")";
+                        rCommand.getSecurityPattern().getOverhead() + " / " + rCommand.getChannel(0).getSize() + ")";
             }
             if (isIntValue(nbOfSamples))
                 //initCommand+= "," + cmdName + "("+currElem.getID()+",this,0," + rCommand.getChannel(0).getExtendedName() + "," + rCommand.getChannel(0).getSize() + "*" + rCommand.getNbOfSamples() + ")"+CR;
@@ -758,7 +758,7 @@ public class MappedSystemCTask {
             nbOfSamples = wCommand.getNbOfSamples();
             if (wCommand.getSecurityPattern() != null) {
                 nbOfSamples = "( " + nbOfSamples + ") + (" +
-                        wCommand.getSecurityPattern().getOverhead()  + " / ("  + wCommand.getChannel(0).getSize() + ")";
+                        wCommand.getSecurityPattern().getOverhead()  + " / "  + wCommand.getChannel(0).getSize() + ")";
             }
             if (isIntValue(nbOfSamples))
                 initCommand += "," + cmdName + "(" + currElem.getID() + ",this,0," + channels + "," + getFormattedLiveVarStr(currElem) + "," + nbOfSamples +
diff --git a/src/main/java/ui/util/DefaultText.java b/src/main/java/ui/util/DefaultText.java
index b2999d3404a9dd26c394a7d32ce57ad66ecd6548..c34c34cd7f11314942992fa36c166c6dba1d0785 100755
--- a/src/main/java/ui/util/DefaultText.java
+++ b/src/main/java/ui/util/DefaultText.java
@@ -50,8 +50,8 @@ package ui.util;
  */
 public class DefaultText {
 
-    public static String BUILD = "14822";
-    public static String DATE = "2024/06/27 03:22:33 CET";
+    public static String BUILD = "14829";
+    public static String DATE = "2024/07/05 03:21:57 CET";
 
     public static StringBuffer sbAbout = makeAbout();