diff --git a/.gitignore b/.gitignore
index 3edf70befdbd892297eea0203fca95688bf2d89b..8dbe798f4eb67e9104f9f584eb06b9fb6a7f300a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,6 @@
 *.sav
 *.o
 *~
-.frama-c
 config.status
 lia.cache
 
@@ -13,9 +12,6 @@ eva.log
 stats.txt
 flamegraph.txt
 
-# ignore timestamped versions
-*_20*-*.eva
-*_20*-*.parse
 *.error
 
 benchs-value.csv
diff --git a/2048/2048.eva/alarms.csv b/2048/.frama-c/2048.eva/alarms.csv
similarity index 100%
rename from 2048/2048.eva/alarms.csv
rename to 2048/.frama-c/2048.eva/alarms.csv
diff --git a/2048/2048.eva/metrics.log b/2048/.frama-c/2048.eva/metrics.log
similarity index 100%
rename from 2048/2048.eva/metrics.log
rename to 2048/.frama-c/2048.eva/metrics.log
diff --git a/2048/2048.eva/nonterm.log b/2048/.frama-c/2048.eva/nonterm.log
similarity index 100%
rename from 2048/2048.eva/nonterm.log
rename to 2048/.frama-c/2048.eva/nonterm.log
diff --git a/2048/2048.eva/warnings.log b/2048/.frama-c/2048.eva/warnings.log
similarity index 100%
rename from 2048/2048.eva/warnings.log
rename to 2048/.frama-c/2048.eva/warnings.log
diff --git a/2048/2048.parse/framac.ast b/2048/.frama-c/2048.parse/framac.ast
similarity index 100%
rename from 2048/2048.parse/framac.ast
rename to 2048/.frama-c/2048.parse/framac.ast
diff --git a/2048/2048.parse/metrics.log b/2048/.frama-c/2048.parse/metrics.log
similarity index 100%
rename from 2048/2048.parse/metrics.log
rename to 2048/.frama-c/2048.parse/metrics.log
diff --git a/2048/2048.parse/warnings.log b/2048/.frama-c/2048.parse/warnings.log
similarity index 100%
rename from 2048/2048.parse/warnings.log
rename to 2048/.frama-c/2048.parse/warnings.log
diff --git a/2048/.frama-c/GNUmakefile b/2048/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..6aa9429089c75a8391627ec1e3860ebb336618d6
--- /dev/null
+++ b/2048/.frama-c/GNUmakefile
@@ -0,0 +1,44 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -CC
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = 2048.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+2048.parse: \
+  ../2048.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/2048/.frama-c/path.mk b/2048/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/2048/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/2048/GNUmakefile b/2048/GNUmakefile
deleted file mode 100644
index 338348b776cfa2ebf0fab332c4535f40afebf7dc..0000000000000000000000000000000000000000
--- a/2048/GNUmakefile
+++ /dev/null
@@ -1,66 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -CC
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := 2048
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: 2048.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/2048/frama-c-path.mk b/2048/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/2048/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/Makefile b/Makefile
index ce34169f27fb7bc07c65601097de0563d65cd3c2..1eb9c825e0856aa9cc58c5a0f885356c33ee386c 100644
--- a/Makefile
+++ b/Makefile
@@ -85,30 +85,33 @@ QUICK_TARGETS=$(filter-out polarssl gzip124 libmodbus monocypher chrony,$(TARGET
 
 all: $(TARGETS)
 
+summary:
+	frama-c/share/analysis-scripts/summary.py
+
 $(TARGETS):
-	+$(MAKE) -C $@
+	+$(MAKE) -C $@/.frama-c
 
 quick: $(QUICK_TARGETS)
 
 %.clean:
-	$(MAKE) -C $* clean
+	$(MAKE) -C $*/.frama-c clean
 
 clean: $(addsuffix .clean,$(TARGETS))
 
 %.parse:
-	$(MAKE) -C $* parse
+	$(MAKE) -C $*/.frama-c parse
 
 parse: $(addsuffix .parse,$(TARGETS))
 
 %.stats:
-	$(MAKE) -C $* stats
+	$(MAKE) -C $*/.frama-c stats
 
 stats: $(addsuffix .stats,$(TARGETS))
 
 display-targets:
 	@echo $(foreach target,$(TARGETS),\
 	        $(addprefix $(target)/,\
-	          $(shell $(MAKE) --quiet -C $(target) display-targets)))
+	          $(shell $(MAKE) --quiet -C $(target)/.frama-c display-targets)))
 
 .PHONY: $(TARGETS) frama-c/build/bin/frama-c clean-all help stats-all
 
diff --git a/basic-cwe-examples/.frama-c/GNUmakefile b/basic-cwe-examples/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..1ca5e5f13f388089e1c2c8488346dd2629f9eb9c
--- /dev/null
+++ b/basic-cwe-examples/.frama-c/GNUmakefile
@@ -0,0 +1,58 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+# (Optional) Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+
+## Analysis targets (suffixed with .eva)
+IMPRECISE_TARGETS = cwe20.eva cwe119.eva cwe190.eva cwe416.eva cwe787.eva
+
+PRECISE_TARGETS = $(subst .eva,-precise.eva,$(IMPRECISE_TARGETS))
+
+TARGETS = $(IMPRECISE_TARGETS) $(PRECISE_TARGETS)
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+cwe20.parse:  ../cwe20.c
+cwe119.parse: ../cwe119.c
+cwe190.parse: ../cwe190.c
+cwe416.parse: ../cwe416.c
+cwe787.parse: ../cwe787.c
+
+cwe20-precise.parse:  ../cwe20.c
+cwe119-precise.parse: ../cwe119.c
+cwe190-precise.parse: ../cwe190.c
+cwe416-precise.parse: ../cwe416.c
+cwe787-precise.parse: ../cwe787.c
+
+cwe20-precise.eva:  EVAFLAGS +=
+cwe119-precise.eva: EVAFLAGS += -eva-precision 1
+cwe190-precise.eva: EVAFLAGS += -warn-unsigned-overflow -eva-no-alloc-returns-null
+cwe416-precise.eva: EVAFLAGS += -eva-precision 1
+cwe787-precise.eva: EVAFLAGS += -eva-precision 2 -eva-no-alloc-returns-null
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/basic-cwe-examples/cwe119-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe119-precise.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe119-precise.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe119-precise.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe119-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe119-precise.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe119-precise.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe119-precise.eva/metrics.log
diff --git a/basic-cwe-examples/cwe119-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe119-precise.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe119-precise.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe119-precise.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe119-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe119-precise.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe119-precise.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe119-precise.eva/warnings.log
diff --git a/basic-cwe-examples/cwe119-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe119-precise.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe119-precise.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe119-precise.parse/framac.ast
diff --git a/basic-cwe-examples/cwe119-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe119-precise.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe119-precise.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe119-precise.parse/metrics.log
diff --git a/basic-cwe-examples/cwe119-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe119-precise.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe119-precise.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe119-precise.parse/warnings.log
diff --git a/basic-cwe-examples/cwe119.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe119.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe119.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe119.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe119.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe119.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe119.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe119.eva/metrics.log
diff --git a/basic-cwe-examples/cwe119.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe119.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe119.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe119.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe119.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe119.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe119.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe119.eva/warnings.log
diff --git a/basic-cwe-examples/cwe119.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe119.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe119.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe119.parse/framac.ast
diff --git a/basic-cwe-examples/cwe119.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe119.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe119.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe119.parse/metrics.log
diff --git a/basic-cwe-examples/cwe119.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe119.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe119.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe119.parse/warnings.log
diff --git a/basic-cwe-examples/cwe190-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe190-precise.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe190-precise.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe190-precise.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe190-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe190-precise.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe190-precise.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe190-precise.eva/metrics.log
diff --git a/basic-cwe-examples/cwe190-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe190-precise.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe190-precise.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe190-precise.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe190-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe190-precise.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe190-precise.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe190-precise.eva/warnings.log
diff --git a/basic-cwe-examples/cwe190-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe190-precise.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe190-precise.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe190-precise.parse/framac.ast
diff --git a/basic-cwe-examples/cwe190-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe190-precise.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe190-precise.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe190-precise.parse/metrics.log
diff --git a/basic-cwe-examples/cwe190-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe190-precise.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe190-precise.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe190-precise.parse/warnings.log
diff --git a/basic-cwe-examples/cwe190.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe190.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe190.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe190.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe190.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe190.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe190.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe190.eva/metrics.log
diff --git a/basic-cwe-examples/cwe190.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe190.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe190.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe190.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe190.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe190.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe190.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe190.eva/warnings.log
diff --git a/basic-cwe-examples/cwe190.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe190.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe190.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe190.parse/framac.ast
diff --git a/basic-cwe-examples/cwe190.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe190.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe190.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe190.parse/metrics.log
diff --git a/basic-cwe-examples/cwe190.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe190.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe190.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe190.parse/warnings.log
diff --git a/basic-cwe-examples/cwe20-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe20-precise.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe20-precise.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe20-precise.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe20-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe20-precise.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe20-precise.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe20-precise.eva/metrics.log
diff --git a/basic-cwe-examples/cwe20-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe20-precise.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe20-precise.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe20-precise.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe20-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe20-precise.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe20-precise.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe20-precise.eva/warnings.log
diff --git a/basic-cwe-examples/cwe20-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe20-precise.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe20-precise.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe20-precise.parse/framac.ast
diff --git a/basic-cwe-examples/cwe20-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe20-precise.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe20-precise.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe20-precise.parse/metrics.log
diff --git a/basic-cwe-examples/cwe20-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe20-precise.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe20-precise.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe20-precise.parse/warnings.log
diff --git a/basic-cwe-examples/cwe20.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe20.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe20.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe20.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe20.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe20.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe20.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe20.eva/metrics.log
diff --git a/basic-cwe-examples/cwe20.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe20.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe20.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe20.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe20.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe20.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe20.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe20.eva/warnings.log
diff --git a/basic-cwe-examples/cwe20.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe20.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe20.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe20.parse/framac.ast
diff --git a/basic-cwe-examples/cwe20.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe20.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe20.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe20.parse/metrics.log
diff --git a/basic-cwe-examples/cwe20.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe20.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe20.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe20.parse/warnings.log
diff --git a/basic-cwe-examples/cwe416-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe416-precise.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe416-precise.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe416-precise.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe416-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe416-precise.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe416-precise.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe416-precise.eva/metrics.log
diff --git a/basic-cwe-examples/cwe416-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe416-precise.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe416-precise.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe416-precise.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe416-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe416-precise.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe416-precise.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe416-precise.eva/warnings.log
diff --git a/basic-cwe-examples/cwe416-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe416-precise.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe416-precise.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe416-precise.parse/framac.ast
diff --git a/basic-cwe-examples/cwe416-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe416-precise.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe416-precise.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe416-precise.parse/metrics.log
diff --git a/basic-cwe-examples/cwe416-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe416-precise.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe416-precise.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe416-precise.parse/warnings.log
diff --git a/basic-cwe-examples/cwe416.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe416.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe416.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe416.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe416.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe416.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe416.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe416.eva/metrics.log
diff --git a/basic-cwe-examples/cwe416.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe416.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe416.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe416.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe416.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe416.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe416.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe416.eva/warnings.log
diff --git a/basic-cwe-examples/cwe416.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe416.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe416.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe416.parse/framac.ast
diff --git a/basic-cwe-examples/cwe416.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe416.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe416.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe416.parse/metrics.log
diff --git a/basic-cwe-examples/cwe416.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe416.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe416.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe416.parse/warnings.log
diff --git a/basic-cwe-examples/cwe787-precise.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe787-precise.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe787-precise.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe787-precise.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe787-precise.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe787-precise.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe787-precise.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe787-precise.eva/metrics.log
diff --git a/basic-cwe-examples/cwe787-precise.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe787-precise.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe787-precise.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe787-precise.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe787-precise.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe787-precise.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe787-precise.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe787-precise.eva/warnings.log
diff --git a/basic-cwe-examples/cwe787-precise.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe787-precise.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe787-precise.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe787-precise.parse/framac.ast
diff --git a/basic-cwe-examples/cwe787-precise.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe787-precise.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe787-precise.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe787-precise.parse/metrics.log
diff --git a/basic-cwe-examples/cwe787-precise.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe787-precise.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe787-precise.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe787-precise.parse/warnings.log
diff --git a/basic-cwe-examples/cwe787.eva/alarms.csv b/basic-cwe-examples/.frama-c/cwe787.eva/alarms.csv
similarity index 100%
rename from basic-cwe-examples/cwe787.eva/alarms.csv
rename to basic-cwe-examples/.frama-c/cwe787.eva/alarms.csv
diff --git a/basic-cwe-examples/cwe787.eva/metrics.log b/basic-cwe-examples/.frama-c/cwe787.eva/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe787.eva/metrics.log
rename to basic-cwe-examples/.frama-c/cwe787.eva/metrics.log
diff --git a/basic-cwe-examples/cwe787.eva/nonterm.log b/basic-cwe-examples/.frama-c/cwe787.eva/nonterm.log
similarity index 100%
rename from basic-cwe-examples/cwe787.eva/nonterm.log
rename to basic-cwe-examples/.frama-c/cwe787.eva/nonterm.log
diff --git a/basic-cwe-examples/cwe787.eva/warnings.log b/basic-cwe-examples/.frama-c/cwe787.eva/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe787.eva/warnings.log
rename to basic-cwe-examples/.frama-c/cwe787.eva/warnings.log
diff --git a/basic-cwe-examples/cwe787.parse/framac.ast b/basic-cwe-examples/.frama-c/cwe787.parse/framac.ast
similarity index 100%
rename from basic-cwe-examples/cwe787.parse/framac.ast
rename to basic-cwe-examples/.frama-c/cwe787.parse/framac.ast
diff --git a/basic-cwe-examples/cwe787.parse/metrics.log b/basic-cwe-examples/.frama-c/cwe787.parse/metrics.log
similarity index 100%
rename from basic-cwe-examples/cwe787.parse/metrics.log
rename to basic-cwe-examples/.frama-c/cwe787.parse/metrics.log
diff --git a/basic-cwe-examples/cwe787.parse/warnings.log b/basic-cwe-examples/.frama-c/cwe787.parse/warnings.log
similarity index 100%
rename from basic-cwe-examples/cwe787.parse/warnings.log
rename to basic-cwe-examples/.frama-c/cwe787.parse/warnings.log
diff --git a/basic-cwe-examples/.frama-c/path.mk b/basic-cwe-examples/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/basic-cwe-examples/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/basic-cwe-examples/GNUmakefile b/basic-cwe-examples/GNUmakefile
deleted file mode 100644
index 75aa86ceb1cc0401c56ff0cd4a3ff0bd50ec5b2b..0000000000000000000000000000000000000000
--- a/basic-cwe-examples/GNUmakefile
+++ /dev/null
@@ -1,75 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-
-TARGETS = cwe20.eva cwe119.eva cwe190.eva cwe416.eva cwe787.eva
-
-PRECISE_TARGETS = $(subst .eva,-precise.eva,$(TARGETS))
-
-# Default target
-all: $(TARGETS) $(PRECISE_TARGETS)
-help:
-	@echo "targets: $(TARGETS) $(PRECISE_TARGETS)"
-display-targets:
-	@echo "$(TARGETS) $(PRECISE_TARGETS)"
-
-cwe20.parse:  cwe20.c
-cwe119.parse: cwe119.c
-cwe190.parse: cwe190.c
-cwe416.parse: cwe416.c
-cwe787.parse: cwe787.c
-
-cwe20-precise.parse:  cwe20.c
-cwe119-precise.parse: cwe119.c
-cwe190-precise.parse: cwe190.c
-cwe416-precise.parse: cwe416.c
-cwe787-precise.parse: cwe787.c
-
-cwe20-precise.eva:  EVAFLAGS +=
-cwe119-precise.eva: EVAFLAGS += -eva-precision 1
-cwe190-precise.eva: EVAFLAGS += -warn-unsigned-overflow -eva-no-alloc-returns-null
-cwe416-precise.eva: EVAFLAGS += -eva-precision 1
-cwe787-precise.eva: EVAFLAGS += -eva-precision 2 -eva-no-alloc-returns-null
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/basic-cwe-examples/frama-c-path.mk b/basic-cwe-examples/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/basic-cwe-examples/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/cerberus/.frama-c/GNUmakefile b/cerberus/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..c281c4c1a2eb603b7131887d667dd3f94c0604e1
--- /dev/null
+++ b/cerberus/.frama-c/GNUmakefile
@@ -0,0 +1,439 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -includefc_stubs.h
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+  -no-autoload-plugins -load-module eva,from,inout,metrics,nonterm,report,scope,variadic \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -slevel 6000 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS := \
+besson_blazy_wilke_6_2.eva \
+besson_blazy_wilke_bitfields_1.eva \
+besson_blazy_wilke_bitfields_1u.eva \
+besson_blazy_wilkie_Fig_1_adapted.eva \
+besson_blazy_wilkie_Fig_1.eva \
+besson_blazy_wilkie_Fig_2.eva \
+cast_struct_and_first_member_1.eva \
+cast_struct_inter_member_1.eva \
+cast_struct_isomorphic.eva \
+cast_struct_same_prefix.eva \
+cast_union_and_member_1.eva \
+cheri_01_deconst.eva \
+cheri_02_container.eva \
+cheri_03_ii.eva \
+cheri_03_ii_char.eva \
+cheri_04a_int_uintptr_t.eva \
+cheri_04b_int_unsigned_long.eva \
+cheri_05_ia.eva \
+cheri_06_mask.eva \
+cheri_07_wide.eva \
+cheri_08_last_word.eva \
+compcertMMv2-1.eva \
+compcertMMv2-2.eva \
+compcertMMv2-3.eva \
+compcertMMv2-4.eva \
+compcertMMv2-5.eva \
+compcertTSO-1.eva \
+compcertTSO-2.eva \
+effective_type_10.eva \
+effective_type_1.eva \
+effective_type_2.eva \
+effective_type_5.eva \
+effective_type_6.eva \
+effective_type_7.eva \
+effective_type_8.eva \
+effective_type_9.eva \
+frama-c-2013-03-13-2.eva \
+frama-c-2013-03-13-3.eva \
+frama-c-2013-03-13-3-uc.eva \
+khmgzv-1.eva \
+khmgzv-2.eva \
+klw-itp14-1.eva \
+klw-itp14-2.eva \
+krebbers_biener_1.eva \
+null_pointer_1.eva \
+null_pointer_2.eva \
+null_pointer_3.eva \
+null_pointer_4.eva \
+padding_10.eva \
+padding_struct_copy_1.eva \
+padding_struct_copy_2.eva \
+padding_struct_copy_3.eva \
+padding_struct_copy_of_representation_bytes.eva \
+padding_struct_members_copy.eva \
+padding_subunion_1.eva \
+padding_subunion_2.eva \
+padding_unspecified_value_1.eva \
+padding_unspecified_value_2.eva \
+padding_unspecified_value_3.eva \
+padding_unspecified_value_4.eva \
+padding_unspecified_value_5.eva \
+padding_unspecified_value_6.eva \
+padding_unspecified_value_7.eva \
+padding_unspecified_value_8.eva \
+pointer_add_wrap_1.eva \
+pointer_add_wrap_2.eva \
+pointer_arith_algebraic_properties_1_global.eva \
+pointer_arith_algebraic_properties_2_auto.eva \
+pointer_arith_algebraic_properties_2_global.eva \
+pointer_arith_algebraic_properties_3_auto.eva \
+pointer_arith_algebraic_properties_3_global.eva \
+pointer_comparison_7b.eva \
+pointer_comparison_7c.eva \
+pointer_comparison_eq_1_auto.eva \
+pointer_comparison_eq_1_global.eva \
+pointer_comparison_eq_2_auto.eva \
+pointer_comparison_eq_2_global.eva \
+pointer_comparison_eq_zombie_1.eva \
+pointer_comparison_eq_zombie_2.eva \
+pointer_comparison_rel_1_auto.eva \
+pointer_comparison_rel_1_global.eva \
+pointer_comparison_rel_different_type_members.eva \
+pointer_comparison_rel_substruct.eva \
+pointer_copy_memcpy.eva \
+pointer_copy_user_ctrlflow_bitwise.eva \
+pointer_copy_user_ctrlflow_bytewise_abbrev.eva \
+pointer_copy_user_ctrlflow_bytewise.eva \
+pointer_copy_user_dataflow_direct_bitwise.eva \
+pointer_copy_user_dataflow_direct_bytewise.eva \
+pointer_copy_user_dataflow_indirect_bytewise.eva \
+pointer_from_concrete_address_1.eva \
+pointer_from_concrete_address_2.eva \
+pointer_offset_constant_8_malloc.eva \
+pointer_offset_from_subtraction_1_auto.eva \
+pointer_offset_from_subtraction_1_global.eva \
+pointer_offset_from_subtraction_1_malloc.eva \
+pointer_offset_from_subtraction_2_auto.eva \
+pointer_offset_from_subtraction_2_global.eva \
+pointer_offset_xor_auto.eva \
+pointer_offset_xor_global.eva \
+pointer_stability_1.eva \
+pointer_stability_2.eva \
+provenance_basic_auto_xy.eva \
+provenance_basic_auto_yx.eva \
+provenance_basic_global_xy.eva \
+provenance_basic_global_yx.eva \
+provenance_basic_malloc_offset+12.eva \
+provenance_basic_malloc_offset+2.eva \
+provenance_basic_malloc_offset-4.eva \
+provenance_basic_malloc_offset+4.eva \
+provenance_basic_malloc_offset+8.eva \
+provenance_basic_mixed_auto.eva \
+provenance_basic_mixed_auto_offset-4.eva \
+provenance_basic_mixed_auto_offset+4.eva \
+provenance_basic_mixed_auto_offset-64.eva \
+provenance_basic_mixed_global_offset-4.eva \
+provenance_basic_mixed_global_offset+4.eva \
+provenance_basic_mixed_global_offset-64.eva \
+provenance_basic_using_intptr_t_auto_xy.eva \
+provenance_basic_using_intptr_t_auto_yx.eva \
+provenance_basic_using_intptr_t_auto_yx_offset-16.eva \
+provenance_basic_using_intptr_t_global_xy.eva \
+provenance_basic_using_intptr_t_global_xy_offset64.eva \
+provenance_basic_using_intptr_t_global_yx.eva \
+provenance_basic_using_intptr_t_malloc_offset_-16.eva \
+provenance_basic_using_intptr_t_malloc_offset_8.eva \
+provenance_equality_auto_cu_yx_a.eva \
+provenance_equality_auto_cu_yx_b.eva \
+provenance_equality_auto_fn_yx.eva \
+provenance_equality_auto_yx.eva \
+provenance_equality_global_cu_xy_a.eva \
+provenance_equality_global_cu_xy_b.eva \
+provenance_equality_global_cu_yx_a.eva \
+provenance_equality_global_cu_yx_b.eva \
+provenance_equality_global_fn_xy.eva \
+provenance_equality_global_fn_yx.eva \
+provenance_equality_global_xy.eva \
+provenance_equality_global_yx.eva \
+provenance_equality_uintptr_t_global_xy.eva \
+provenance_equality_uintptr_t_global_yx.eva \
+provenance_multiple_1_global.eva \
+provenance_multiple_2_global.eva \
+provenance_multiple_3_global_yx.eva \
+provenance_multiple_4_global_yx.eva \
+provenance_multiple_5_auto.eva \
+provenance_multiple_5_global.eva \
+provenance_roundtrip_via_intptr_t.eva \
+provenance_roundtrip_via_unsigned_long.eva \
+provenance_tag_bits_via_uintptr_t_1.eva \
+provenance_tag_bits_via_uintptr_t_1_no_assert.eva \
+provenance_union_punning_1_global.eva \
+provenance_union_punning_2_auto_xy.eva \
+provenance_union_punning_2_auto_yx.eva \
+provenance_union_punning_2_global_xy.eva \
+provenance_union_punning_2_global_yx.eva \
+provenance_via_io_auto.eva \
+provenance_via_io_bytewise_global.eva \
+provenance_via_io_global.eva \
+provenance_via_io_percentp_global.eva \
+provenance_via_io_uintptr_t_global.eva \
+read_union_same_prefix_visible.eva \
+read_via_invalid_1.eva \
+signalling_nan_1.eva \
+struct_initialise_members.eva \
+struct_inter_submember_1.eva \
+tkn-1.eva \
+tkn-2.eva \
+tkn-3.eva \
+tkn-3-commented.eva \
+trap_representation_1.eva \
+trap_representation_2.eva \
+trap_representation_3.eva \
+ubc_addr_null_1.eva \
+union_punning_gcc_1.eva \
+union_punning_gcc_2.eva \
+union_punning_gcc_3.eva \
+unspecified_value_control_flow_choice.eva \
+unspecified_value_daemonic_1.eva \
+unspecified_value_library_call_argument.eva \
+unspecified_value_representation_bytes_1.eva \
+unspecified_value_representation_bytes_2.eva \
+unspecified_value_representation_bytes_3.eva \
+unspecified_value_representation_bytes_4.eva \
+unspecified_value_stability.eva \
+unspecified_value_strictness_and_1.eva \
+unspecified_value_strictness_int.eva \
+unspecified_value_strictness_mod_1.eva \
+unspecified_value_strictness_mod_2.eva \
+unspecified_value_strictness_unsigned_char.eva \
+unspecified_value_struct_copy.eva \
+unspecified_value_union_1.eva \
+write_union_same_prefix_visible.eva \
+
+#TODO: support stdalign.h and _Alignas for the following targets:
+#TARGETS+=effective_type_3 effective_type_4
+
+# Syntactically invalid and non-obvious to fix
+#use_struct_isomorphic.parse: use_struct_isomorphic.c
+
+# Redefines memcpy
+# compcertMMv2-6.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+besson_blazy_wilke_6_2.parse: ../besson_blazy_wilke_6_2.c
+besson_blazy_wilke_bitfields_1.parse: ../besson_blazy_wilke_bitfields_1.c
+besson_blazy_wilke_bitfields_1u.parse: ../besson_blazy_wilke_bitfields_1u.c
+besson_blazy_wilkie_Fig_1_adapted.parse: ../besson_blazy_wilkie_Fig_1_adapted.c
+besson_blazy_wilkie_Fig_1.parse: ../besson_blazy_wilkie_Fig_1.c
+besson_blazy_wilkie_Fig_2.parse: ../besson_blazy_wilkie_Fig_2.c
+cast_struct_and_first_member_1.parse: ../cast_struct_and_first_member_1.c
+cast_struct_inter_member_1.parse: ../cast_struct_inter_member_1.c
+cast_struct_isomorphic.parse: ../cast_struct_isomorphic.c
+cast_struct_same_prefix.parse: ../cast_struct_same_prefix.c
+cast_union_and_member_1.parse: ../cast_union_and_member_1.c
+cheri_01_deconst.parse: ../cheri_01_deconst.c
+cheri_02_container.parse: ../cheri_02_container.c
+cheri_03_ii.parse: ../cheri_03_ii.c
+cheri_03_ii_char.parse: ../cheri_03_ii_char.c
+cheri_04a_int_uintptr_t.parse: ../cheri_04a_int_uintptr_t.c
+cheri_04b_int_unsigned_long.parse: ../cheri_04b_int_unsigned_long.c
+cheri_05_ia.parse: ../cheri_05_ia.c
+cheri_06_mask.parse: ../cheri_06_mask.c
+cheri_07_wide.parse: ../cheri_07_wide.c
+cheri_08_last_word.parse: ../cheri_08_last_word.c
+compcertMMv2-1.parse: ../compcertMMv2-1.c
+compcertMMv2-2.parse: ../compcertMMv2-2.c
+compcertMMv2-3.parse: ../compcertMMv2-3.c
+compcertMMv2-4.parse: ../compcertMMv2-4.c
+compcertMMv2-5.parse: ../compcertMMv2-5.c
+compcertTSO-1.parse: ../compcertTSO-1.c
+compcertTSO-2.parse: ../compcertTSO-2.c
+effective_type_10.parse: ../effective_type_10.c
+effective_type_1.parse: ../effective_type_1.c
+effective_type_2.parse: ../effective_type_2.c
+effective_type_3.parse: ../effective_type_3.c
+effective_type_4.parse: ../effective_type_4.c
+effective_type_5.parse: ../effective_type_5.c
+effective_type_6.parse: ../effective_type_6.c
+effective_type_7.parse: ../effective_type_7.c
+effective_type_8.parse: ../effective_type_8.c
+effective_type_9.parse: ../effective_type_9.c
+frama-c-2013-03-13-2.parse: ../frama-c-2013-03-13-2.c
+frama-c-2013-03-13-3.parse: ../frama-c-2013-03-13-3.c
+frama-c-2013-03-13-3-uc.parse: ../frama-c-2013-03-13-3-uc.c
+khmgzv-1.parse: ../khmgzv-1.c
+khmgzv-2.parse: ../khmgzv-2.c
+klw-itp14-1.parse: ../klw-itp14-1.c
+klw-itp14-2.parse: ../klw-itp14-2.c
+krebbers_biener_1.parse: ../krebbers_biener_1.c
+null_pointer_1.parse: ../null_pointer_1.c
+null_pointer_2.parse: ../null_pointer_2.c
+null_pointer_3.parse: ../null_pointer_3.c
+null_pointer_4.parse: ../null_pointer_4.c
+padding_10.parse: ../padding_10.c
+padding_struct_copy_1.parse: ../padding_struct_copy_1.c
+padding_struct_copy_2.parse: ../padding_struct_copy_2.c
+padding_struct_copy_3.parse: ../padding_struct_copy_3.c
+padding_struct_copy_of_representation_bytes.parse: ../padding_struct_copy_of_representation_bytes.c
+padding_struct_members_copy.parse: ../padding_struct_members_copy.c
+padding_subunion_1.parse: ../padding_subunion_1.c
+padding_subunion_2.parse: ../padding_subunion_2.c
+padding_unspecified_value_1.parse: ../padding_unspecified_value_1.c
+padding_unspecified_value_2.parse: ../padding_unspecified_value_2.c
+padding_unspecified_value_3.parse: ../padding_unspecified_value_3.c
+padding_unspecified_value_4.parse: ../padding_unspecified_value_4.c
+padding_unspecified_value_5.parse: ../padding_unspecified_value_5.c
+padding_unspecified_value_6.parse: ../padding_unspecified_value_6.c
+padding_unspecified_value_7.parse: ../padding_unspecified_value_7.c
+padding_unspecified_value_8.parse: ../padding_unspecified_value_8.c
+pointer_add_wrap_1.parse: ../pointer_add_wrap_1.c
+pointer_add_wrap_2.parse: ../pointer_add_wrap_2.c
+pointer_arith_algebraic_properties_1_global.parse: ../pointer_arith_algebraic_properties_1_global.c
+pointer_arith_algebraic_properties_2_auto.parse: ../pointer_arith_algebraic_properties_2_auto.c
+pointer_arith_algebraic_properties_2_global.parse: ../pointer_arith_algebraic_properties_2_global.c
+pointer_arith_algebraic_properties_3_auto.parse: ../pointer_arith_algebraic_properties_3_auto.c
+pointer_arith_algebraic_properties_3_global.parse: ../pointer_arith_algebraic_properties_3_global.c
+pointer_comparison_7b.parse: ../pointer_comparison_7b.c
+pointer_comparison_7c.parse: ../pointer_comparison_7c.c
+pointer_comparison_eq_1_auto.parse: ../pointer_comparison_eq_1_auto.c
+pointer_comparison_eq_1_global.parse: ../pointer_comparison_eq_1_global.c
+pointer_comparison_eq_2_auto.parse: ../pointer_comparison_eq_2_auto.c
+pointer_comparison_eq_2_global.parse: ../pointer_comparison_eq_2_global.c
+pointer_comparison_eq_zombie_1.parse: ../pointer_comparison_eq_zombie_1.c
+pointer_comparison_eq_zombie_2.parse: ../pointer_comparison_eq_zombie_2.c
+pointer_comparison_rel_1_auto.parse: ../pointer_comparison_rel_1_auto.c
+pointer_comparison_rel_1_global.parse: ../pointer_comparison_rel_1_global.c
+pointer_comparison_rel_different_type_members.parse: ../pointer_comparison_rel_different_type_members.c
+pointer_comparison_rel_substruct.parse: ../pointer_comparison_rel_substruct.c
+pointer_copy_memcpy.parse: ../pointer_copy_memcpy.c
+pointer_copy_user_ctrlflow_bitwise.parse: ../pointer_copy_user_ctrlflow_bitwise.c
+pointer_copy_user_ctrlflow_bytewise_abbrev.parse: ../pointer_copy_user_ctrlflow_bytewise_abbrev.c
+pointer_copy_user_ctrlflow_bytewise.parse: ../pointer_copy_user_ctrlflow_bytewise.c
+pointer_copy_user_dataflow_direct_bitwise.parse: ../pointer_copy_user_dataflow_direct_bitwise.c
+pointer_copy_user_dataflow_direct_bytewise.parse: ../pointer_copy_user_dataflow_direct_bytewise.c
+pointer_copy_user_dataflow_indirect_bytewise.parse: ../pointer_copy_user_dataflow_indirect_bytewise.c
+pointer_from_concrete_address_1.parse: ../pointer_from_concrete_address_1.c
+pointer_from_concrete_address_2.parse: ../pointer_from_concrete_address_2.c
+pointer_offset_constant_8_malloc.parse: ../pointer_offset_constant_8_malloc.c
+pointer_offset_from_subtraction_1_auto.parse: ../pointer_offset_from_subtraction_1_auto.c
+pointer_offset_from_subtraction_1_global.parse: ../pointer_offset_from_subtraction_1_global.c
+pointer_offset_from_subtraction_1_malloc.parse: ../pointer_offset_from_subtraction_1_malloc.c
+pointer_offset_from_subtraction_2_auto.parse: ../pointer_offset_from_subtraction_2_auto.c
+pointer_offset_from_subtraction_2_global.parse: ../pointer_offset_from_subtraction_2_global.c
+pointer_offset_xor_auto.parse: ../pointer_offset_xor_auto.c
+pointer_offset_xor_global.parse: ../pointer_offset_xor_global.c
+pointer_stability_1.parse: ../pointer_stability_1.c
+pointer_stability_2.parse: ../pointer_stability_2.c
+provenance_basic_auto_xy.parse: ../provenance_basic_auto_xy.c
+provenance_basic_auto_yx.parse: ../provenance_basic_auto_yx.c
+provenance_basic_global_xy.parse: ../provenance_basic_global_xy.c
+provenance_basic_global_yx.parse: ../provenance_basic_global_yx.c
+provenance_basic_malloc_offset+12.parse: ../provenance_basic_malloc_offset+12.c
+provenance_basic_malloc_offset+2.parse: ../provenance_basic_malloc_offset+2.c
+provenance_basic_malloc_offset-4.parse: ../provenance_basic_malloc_offset-4.c
+provenance_basic_malloc_offset+4.parse: ../provenance_basic_malloc_offset+4.c
+provenance_basic_malloc_offset+8.parse: ../provenance_basic_malloc_offset+8.c
+provenance_basic_mixed_auto.parse: ../provenance_basic_mixed_auto.c
+provenance_basic_mixed_auto_offset-4.parse: ../provenance_basic_mixed_auto_offset-4.c
+provenance_basic_mixed_auto_offset+4.parse: ../provenance_basic_mixed_auto_offset+4.c
+provenance_basic_mixed_auto_offset-64.parse: ../provenance_basic_mixed_auto_offset-64.c
+provenance_basic_mixed_global_offset-4.parse: ../provenance_basic_mixed_global_offset-4.c
+provenance_basic_mixed_global_offset+4.parse: ../provenance_basic_mixed_global_offset+4.c
+provenance_basic_mixed_global_offset-64.parse: ../provenance_basic_mixed_global_offset-64.c
+provenance_basic_using_intptr_t_auto_xy.parse: ../provenance_basic_using_intptr_t_auto_xy.c
+provenance_basic_using_intptr_t_auto_yx.parse: ../provenance_basic_using_intptr_t_auto_yx.c
+provenance_basic_using_intptr_t_auto_yx_offset-16.parse: ../provenance_basic_using_intptr_t_auto_yx_offset-16.c
+provenance_basic_using_intptr_t_global_xy.parse: ../provenance_basic_using_intptr_t_global_xy.c
+provenance_basic_using_intptr_t_global_xy_offset64.parse: ../provenance_basic_using_intptr_t_global_xy_offset64.c
+provenance_basic_using_intptr_t_global_yx.parse: ../provenance_basic_using_intptr_t_global_yx.c
+provenance_basic_using_intptr_t_malloc_offset_-16.parse: ../provenance_basic_using_intptr_t_malloc_offset_-16.c
+provenance_basic_using_intptr_t_malloc_offset_8.parse: ../provenance_basic_using_intptr_t_malloc_offset_8.c
+provenance_equality_auto_cu_yx_a.parse: ../provenance_equality_auto_cu_yx_a.c
+provenance_equality_auto_cu_yx_b.parse: ../provenance_equality_auto_cu_yx_b.c
+provenance_equality_auto_fn_yx.parse: ../provenance_equality_auto_fn_yx.c
+provenance_equality_auto_yx.parse: ../provenance_equality_auto_yx.c
+provenance_equality_global_cu_xy_a.parse: ../provenance_equality_global_cu_xy_a.c
+provenance_equality_global_cu_xy_b.parse: ../provenance_equality_global_cu_xy_b.c
+provenance_equality_global_cu_yx_a.parse: ../provenance_equality_global_cu_yx_a.c
+provenance_equality_global_cu_yx_b.parse: ../provenance_equality_global_cu_yx_b.c
+provenance_equality_global_fn_xy.parse: ../provenance_equality_global_fn_xy.c
+provenance_equality_global_fn_yx.parse: ../provenance_equality_global_fn_yx.c
+provenance_equality_global_xy.parse: ../provenance_equality_global_xy.c
+provenance_equality_global_yx.parse: ../provenance_equality_global_yx.c
+provenance_equality_uintptr_t_global_xy.parse: ../provenance_equality_uintptr_t_global_xy.c
+provenance_equality_uintptr_t_global_yx.parse: ../provenance_equality_uintptr_t_global_yx.c
+provenance_multiple_1_global.parse: ../provenance_multiple_1_global.c
+provenance_multiple_2_global.parse: ../provenance_multiple_2_global.c
+provenance_multiple_3_global_yx.parse: ../provenance_multiple_3_global_yx.c
+provenance_multiple_4_global_yx.parse: ../provenance_multiple_4_global_yx.c
+provenance_multiple_5_auto.parse: ../provenance_multiple_5_auto.c
+provenance_multiple_5_global.parse: ../provenance_multiple_5_global.c
+provenance_roundtrip_via_intptr_t.parse: ../provenance_roundtrip_via_intptr_t.c
+provenance_roundtrip_via_unsigned_long.parse: ../provenance_roundtrip_via_unsigned_long.c
+provenance_tag_bits_via_uintptr_t_1.parse: ../provenance_tag_bits_via_uintptr_t_1.c
+provenance_tag_bits_via_uintptr_t_1_no_assert.parse: ../provenance_tag_bits_via_uintptr_t_1_no_assert.c
+provenance_union_punning_1_global.parse: ../provenance_union_punning_1_global.c
+provenance_union_punning_2_auto_xy.parse: ../provenance_union_punning_2_auto_xy.c
+provenance_union_punning_2_auto_yx.parse: ../provenance_union_punning_2_auto_yx.c
+provenance_union_punning_2_global_xy.parse: ../provenance_union_punning_2_global_xy.c
+provenance_union_punning_2_global_yx.parse: ../provenance_union_punning_2_global_yx.c
+provenance_via_io_auto.parse: ../provenance_via_io_auto.c
+provenance_via_io_bytewise_global.parse: ../provenance_via_io_bytewise_global.c
+provenance_via_io_global.parse: ../provenance_via_io_global.c
+provenance_via_io_percentp_global.parse: ../provenance_via_io_percentp_global.c
+provenance_via_io_uintptr_t_global.parse: ../provenance_via_io_uintptr_t_global.c
+read_union_same_prefix_visible.parse: ../read_union_same_prefix_visible.c
+read_via_invalid_1.parse: ../read_via_invalid_1.c
+signalling_nan_1.parse: ../signalling_nan_1.c
+struct_initialise_members.parse: ../struct_initialise_members.c
+struct_inter_submember_1.parse: ../struct_inter_submember_1.c
+tkn-1.parse: ../tkn-1.c
+tkn-2.parse: ../tkn-2.c
+tkn-3.parse: ../tkn-3.c
+tkn-3-commented.parse: ../tkn-3-commented.c
+trap_representation_1.parse: ../trap_representation_1.c
+trap_representation_2.parse: ../trap_representation_2.c
+trap_representation_3.parse: ../trap_representation_3.c
+ubc_addr_null_1.parse: ../ubc_addr_null_1.c
+union_punning_gcc_1.parse: ../union_punning_gcc_1.c
+union_punning_gcc_2.parse: ../union_punning_gcc_2.c
+union_punning_gcc_3.parse: ../union_punning_gcc_3.c
+unspecified_value_control_flow_choice.parse: ../unspecified_value_control_flow_choice.c
+unspecified_value_daemonic_1.parse: ../unspecified_value_daemonic_1.c
+unspecified_value_library_call_argument.parse: ../unspecified_value_library_call_argument.c
+unspecified_value_representation_bytes_1.parse: ../unspecified_value_representation_bytes_1.c
+unspecified_value_representation_bytes_2.parse: ../unspecified_value_representation_bytes_2.c
+unspecified_value_representation_bytes_3.parse: ../unspecified_value_representation_bytes_3.c
+unspecified_value_representation_bytes_4.parse: ../unspecified_value_representation_bytes_4.c
+unspecified_value_stability.parse: ../unspecified_value_stability.c
+unspecified_value_strictness_and_1.parse: ../unspecified_value_strictness_and_1.c
+unspecified_value_strictness_int.parse: ../unspecified_value_strictness_int.c
+unspecified_value_strictness_mod_1.parse: ../unspecified_value_strictness_mod_1.c
+unspecified_value_strictness_mod_2.parse: ../unspecified_value_strictness_mod_2.c
+unspecified_value_strictness_unsigned_char.parse: ../unspecified_value_strictness_unsigned_char.c
+unspecified_value_struct_copy.parse: ../unspecified_value_struct_copy.c
+unspecified_value_union_1.parse: ../unspecified_value_union_1.c
+write_union_same_prefix_visible.parse: ../write_union_same_prefix_visible.c
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/cerberus/besson_blazy_wilke_6_2.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilke_6_2.eva/alarms.csv
similarity index 100%
rename from cerberus/besson_blazy_wilke_6_2.eva/alarms.csv
rename to cerberus/.frama-c/besson_blazy_wilke_6_2.eva/alarms.csv
diff --git a/cerberus/besson_blazy_wilke_6_2.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.eva/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_6_2.eva/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilke_6_2.eva/metrics.log
diff --git a/cerberus/besson_blazy_wilke_6_2.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.eva/nonterm.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_6_2.eva/nonterm.log
rename to cerberus/.frama-c/besson_blazy_wilke_6_2.eva/nonterm.log
diff --git a/cerberus/besson_blazy_wilke_6_2.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.eva/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_6_2.eva/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilke_6_2.eva/warnings.log
diff --git a/cerberus/besson_blazy_wilke_6_2.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilke_6_2.parse/framac.ast
similarity index 100%
rename from cerberus/besson_blazy_wilke_6_2.parse/framac.ast
rename to cerberus/.frama-c/besson_blazy_wilke_6_2.parse/framac.ast
diff --git a/cerberus/besson_blazy_wilke_6_2.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.parse/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_6_2.parse/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilke_6_2.parse/metrics.log
diff --git a/cerberus/besson_blazy_wilke_6_2.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_6_2.parse/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_6_2.parse/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilke_6_2.parse/warnings.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/alarms.csv
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1.eva/alarms.csv
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/alarms.csv
diff --git a/cerberus/besson_blazy_wilke_bitfields_1.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1.eva/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/metrics.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/nonterm.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1.eva/nonterm.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/nonterm.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1.eva/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.eva/warnings.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/framac.ast
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1.parse/framac.ast
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/framac.ast
diff --git a/cerberus/besson_blazy_wilke_bitfields_1.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1.parse/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/metrics.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1.parse/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1.parse/warnings.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/alarms.csv
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1u.eva/alarms.csv
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/alarms.csv
diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1u.eva/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/metrics.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/nonterm.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1u.eva/nonterm.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/nonterm.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1u.eva/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.eva/warnings.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/framac.ast
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1u.parse/framac.ast
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/framac.ast
diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1u.parse/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/metrics.log
diff --git a/cerberus/besson_blazy_wilke_bitfields_1u.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilke_bitfields_1u.parse/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilke_bitfields_1u.parse/warnings.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/alarms.csv
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1.eva/alarms.csv
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/alarms.csv
diff --git a/cerberus/besson_blazy_wilkie_Fig_1.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1.eva/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/metrics.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/nonterm.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1.eva/nonterm.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/nonterm.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1.eva/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.eva/warnings.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/framac.ast
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1.parse/framac.ast
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/framac.ast
diff --git a/cerberus/besson_blazy_wilkie_Fig_1.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1.parse/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/metrics.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1.parse/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1.parse/warnings.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/alarms.csv
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/alarms.csv
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/alarms.csv
diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/metrics.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/nonterm.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/nonterm.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/nonterm.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.eva/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.eva/warnings.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/framac.ast
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/framac.ast
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/framac.ast
diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/metrics.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_1_adapted.parse/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_1_adapted.parse/warnings.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_2.eva/alarms.csv b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/alarms.csv
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_2.eva/alarms.csv
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/alarms.csv
diff --git a/cerberus/besson_blazy_wilkie_Fig_2.eva/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_2.eva/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/metrics.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_2.eva/nonterm.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/nonterm.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_2.eva/nonterm.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/nonterm.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_2.eva/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_2.eva/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.eva/warnings.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_2.parse/framac.ast b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/framac.ast
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_2.parse/framac.ast
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/framac.ast
diff --git a/cerberus/besson_blazy_wilkie_Fig_2.parse/metrics.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/metrics.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_2.parse/metrics.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/metrics.log
diff --git a/cerberus/besson_blazy_wilkie_Fig_2.parse/warnings.log b/cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/warnings.log
similarity index 100%
rename from cerberus/besson_blazy_wilkie_Fig_2.parse/warnings.log
rename to cerberus/.frama-c/besson_blazy_wilkie_Fig_2.parse/warnings.log
diff --git a/cerberus/cast_struct_and_first_member_1.eva/alarms.csv b/cerberus/.frama-c/cast_struct_and_first_member_1.eva/alarms.csv
similarity index 100%
rename from cerberus/cast_struct_and_first_member_1.eva/alarms.csv
rename to cerberus/.frama-c/cast_struct_and_first_member_1.eva/alarms.csv
diff --git a/cerberus/cast_struct_and_first_member_1.eva/metrics.log b/cerberus/.frama-c/cast_struct_and_first_member_1.eva/metrics.log
similarity index 100%
rename from cerberus/cast_struct_and_first_member_1.eva/metrics.log
rename to cerberus/.frama-c/cast_struct_and_first_member_1.eva/metrics.log
diff --git a/cerberus/cast_struct_and_first_member_1.eva/nonterm.log b/cerberus/.frama-c/cast_struct_and_first_member_1.eva/nonterm.log
similarity index 100%
rename from cerberus/cast_struct_and_first_member_1.eva/nonterm.log
rename to cerberus/.frama-c/cast_struct_and_first_member_1.eva/nonterm.log
diff --git a/cerberus/cast_struct_and_first_member_1.eva/warnings.log b/cerberus/.frama-c/cast_struct_and_first_member_1.eva/warnings.log
similarity index 100%
rename from cerberus/cast_struct_and_first_member_1.eva/warnings.log
rename to cerberus/.frama-c/cast_struct_and_first_member_1.eva/warnings.log
diff --git a/cerberus/cast_struct_and_first_member_1.parse/framac.ast b/cerberus/.frama-c/cast_struct_and_first_member_1.parse/framac.ast
similarity index 100%
rename from cerberus/cast_struct_and_first_member_1.parse/framac.ast
rename to cerberus/.frama-c/cast_struct_and_first_member_1.parse/framac.ast
diff --git a/cerberus/cast_struct_and_first_member_1.parse/metrics.log b/cerberus/.frama-c/cast_struct_and_first_member_1.parse/metrics.log
similarity index 100%
rename from cerberus/cast_struct_and_first_member_1.parse/metrics.log
rename to cerberus/.frama-c/cast_struct_and_first_member_1.parse/metrics.log
diff --git a/cerberus/cast_struct_and_first_member_1.parse/warnings.log b/cerberus/.frama-c/cast_struct_and_first_member_1.parse/warnings.log
similarity index 100%
rename from cerberus/cast_struct_and_first_member_1.parse/warnings.log
rename to cerberus/.frama-c/cast_struct_and_first_member_1.parse/warnings.log
diff --git a/cerberus/cast_struct_inter_member_1.eva/alarms.csv b/cerberus/.frama-c/cast_struct_inter_member_1.eva/alarms.csv
similarity index 100%
rename from cerberus/cast_struct_inter_member_1.eva/alarms.csv
rename to cerberus/.frama-c/cast_struct_inter_member_1.eva/alarms.csv
diff --git a/cerberus/cast_struct_inter_member_1.eva/metrics.log b/cerberus/.frama-c/cast_struct_inter_member_1.eva/metrics.log
similarity index 100%
rename from cerberus/cast_struct_inter_member_1.eva/metrics.log
rename to cerberus/.frama-c/cast_struct_inter_member_1.eva/metrics.log
diff --git a/cerberus/cast_struct_inter_member_1.eva/nonterm.log b/cerberus/.frama-c/cast_struct_inter_member_1.eva/nonterm.log
similarity index 100%
rename from cerberus/cast_struct_inter_member_1.eva/nonterm.log
rename to cerberus/.frama-c/cast_struct_inter_member_1.eva/nonterm.log
diff --git a/cerberus/cast_struct_inter_member_1.eva/warnings.log b/cerberus/.frama-c/cast_struct_inter_member_1.eva/warnings.log
similarity index 100%
rename from cerberus/cast_struct_inter_member_1.eva/warnings.log
rename to cerberus/.frama-c/cast_struct_inter_member_1.eva/warnings.log
diff --git a/cerberus/cast_struct_inter_member_1.parse/framac.ast b/cerberus/.frama-c/cast_struct_inter_member_1.parse/framac.ast
similarity index 100%
rename from cerberus/cast_struct_inter_member_1.parse/framac.ast
rename to cerberus/.frama-c/cast_struct_inter_member_1.parse/framac.ast
diff --git a/cerberus/cast_struct_inter_member_1.parse/metrics.log b/cerberus/.frama-c/cast_struct_inter_member_1.parse/metrics.log
similarity index 100%
rename from cerberus/cast_struct_inter_member_1.parse/metrics.log
rename to cerberus/.frama-c/cast_struct_inter_member_1.parse/metrics.log
diff --git a/cerberus/cast_struct_inter_member_1.parse/warnings.log b/cerberus/.frama-c/cast_struct_inter_member_1.parse/warnings.log
similarity index 100%
rename from cerberus/cast_struct_inter_member_1.parse/warnings.log
rename to cerberus/.frama-c/cast_struct_inter_member_1.parse/warnings.log
diff --git a/cerberus/cast_struct_isomorphic.eva/alarms.csv b/cerberus/.frama-c/cast_struct_isomorphic.eva/alarms.csv
similarity index 100%
rename from cerberus/cast_struct_isomorphic.eva/alarms.csv
rename to cerberus/.frama-c/cast_struct_isomorphic.eva/alarms.csv
diff --git a/cerberus/cast_struct_isomorphic.eva/metrics.log b/cerberus/.frama-c/cast_struct_isomorphic.eva/metrics.log
similarity index 100%
rename from cerberus/cast_struct_isomorphic.eva/metrics.log
rename to cerberus/.frama-c/cast_struct_isomorphic.eva/metrics.log
diff --git a/cerberus/cast_struct_isomorphic.eva/nonterm.log b/cerberus/.frama-c/cast_struct_isomorphic.eva/nonterm.log
similarity index 100%
rename from cerberus/cast_struct_isomorphic.eva/nonterm.log
rename to cerberus/.frama-c/cast_struct_isomorphic.eva/nonterm.log
diff --git a/cerberus/cast_struct_isomorphic.eva/warnings.log b/cerberus/.frama-c/cast_struct_isomorphic.eva/warnings.log
similarity index 100%
rename from cerberus/cast_struct_isomorphic.eva/warnings.log
rename to cerberus/.frama-c/cast_struct_isomorphic.eva/warnings.log
diff --git a/cerberus/cast_struct_isomorphic.parse/framac.ast b/cerberus/.frama-c/cast_struct_isomorphic.parse/framac.ast
similarity index 100%
rename from cerberus/cast_struct_isomorphic.parse/framac.ast
rename to cerberus/.frama-c/cast_struct_isomorphic.parse/framac.ast
diff --git a/cerberus/cast_struct_isomorphic.parse/metrics.log b/cerberus/.frama-c/cast_struct_isomorphic.parse/metrics.log
similarity index 100%
rename from cerberus/cast_struct_isomorphic.parse/metrics.log
rename to cerberus/.frama-c/cast_struct_isomorphic.parse/metrics.log
diff --git a/cerberus/cast_struct_isomorphic.parse/warnings.log b/cerberus/.frama-c/cast_struct_isomorphic.parse/warnings.log
similarity index 100%
rename from cerberus/cast_struct_isomorphic.parse/warnings.log
rename to cerberus/.frama-c/cast_struct_isomorphic.parse/warnings.log
diff --git a/cerberus/cast_struct_same_prefix.eva/alarms.csv b/cerberus/.frama-c/cast_struct_same_prefix.eva/alarms.csv
similarity index 100%
rename from cerberus/cast_struct_same_prefix.eva/alarms.csv
rename to cerberus/.frama-c/cast_struct_same_prefix.eva/alarms.csv
diff --git a/cerberus/cast_struct_same_prefix.eva/metrics.log b/cerberus/.frama-c/cast_struct_same_prefix.eva/metrics.log
similarity index 100%
rename from cerberus/cast_struct_same_prefix.eva/metrics.log
rename to cerberus/.frama-c/cast_struct_same_prefix.eva/metrics.log
diff --git a/cerberus/cast_struct_same_prefix.eva/nonterm.log b/cerberus/.frama-c/cast_struct_same_prefix.eva/nonterm.log
similarity index 100%
rename from cerberus/cast_struct_same_prefix.eva/nonterm.log
rename to cerberus/.frama-c/cast_struct_same_prefix.eva/nonterm.log
diff --git a/cerberus/cast_struct_same_prefix.eva/warnings.log b/cerberus/.frama-c/cast_struct_same_prefix.eva/warnings.log
similarity index 100%
rename from cerberus/cast_struct_same_prefix.eva/warnings.log
rename to cerberus/.frama-c/cast_struct_same_prefix.eva/warnings.log
diff --git a/cerberus/cast_struct_same_prefix.parse/framac.ast b/cerberus/.frama-c/cast_struct_same_prefix.parse/framac.ast
similarity index 100%
rename from cerberus/cast_struct_same_prefix.parse/framac.ast
rename to cerberus/.frama-c/cast_struct_same_prefix.parse/framac.ast
diff --git a/cerberus/cast_struct_same_prefix.parse/metrics.log b/cerberus/.frama-c/cast_struct_same_prefix.parse/metrics.log
similarity index 100%
rename from cerberus/cast_struct_same_prefix.parse/metrics.log
rename to cerberus/.frama-c/cast_struct_same_prefix.parse/metrics.log
diff --git a/cerberus/cast_struct_same_prefix.parse/warnings.log b/cerberus/.frama-c/cast_struct_same_prefix.parse/warnings.log
similarity index 100%
rename from cerberus/cast_struct_same_prefix.parse/warnings.log
rename to cerberus/.frama-c/cast_struct_same_prefix.parse/warnings.log
diff --git a/cerberus/cast_union_and_member_1.eva/alarms.csv b/cerberus/.frama-c/cast_union_and_member_1.eva/alarms.csv
similarity index 100%
rename from cerberus/cast_union_and_member_1.eva/alarms.csv
rename to cerberus/.frama-c/cast_union_and_member_1.eva/alarms.csv
diff --git a/cerberus/cast_union_and_member_1.eva/metrics.log b/cerberus/.frama-c/cast_union_and_member_1.eva/metrics.log
similarity index 100%
rename from cerberus/cast_union_and_member_1.eva/metrics.log
rename to cerberus/.frama-c/cast_union_and_member_1.eva/metrics.log
diff --git a/cerberus/cast_union_and_member_1.eva/nonterm.log b/cerberus/.frama-c/cast_union_and_member_1.eva/nonterm.log
similarity index 100%
rename from cerberus/cast_union_and_member_1.eva/nonterm.log
rename to cerberus/.frama-c/cast_union_and_member_1.eva/nonterm.log
diff --git a/cerberus/cast_union_and_member_1.eva/warnings.log b/cerberus/.frama-c/cast_union_and_member_1.eva/warnings.log
similarity index 100%
rename from cerberus/cast_union_and_member_1.eva/warnings.log
rename to cerberus/.frama-c/cast_union_and_member_1.eva/warnings.log
diff --git a/cerberus/cast_union_and_member_1.parse/framac.ast b/cerberus/.frama-c/cast_union_and_member_1.parse/framac.ast
similarity index 100%
rename from cerberus/cast_union_and_member_1.parse/framac.ast
rename to cerberus/.frama-c/cast_union_and_member_1.parse/framac.ast
diff --git a/cerberus/cast_union_and_member_1.parse/metrics.log b/cerberus/.frama-c/cast_union_and_member_1.parse/metrics.log
similarity index 100%
rename from cerberus/cast_union_and_member_1.parse/metrics.log
rename to cerberus/.frama-c/cast_union_and_member_1.parse/metrics.log
diff --git a/cerberus/cast_union_and_member_1.parse/warnings.log b/cerberus/.frama-c/cast_union_and_member_1.parse/warnings.log
similarity index 100%
rename from cerberus/cast_union_and_member_1.parse/warnings.log
rename to cerberus/.frama-c/cast_union_and_member_1.parse/warnings.log
diff --git a/cerberus/cheri_01_deconst.eva/alarms.csv b/cerberus/.frama-c/cheri_01_deconst.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_01_deconst.eva/alarms.csv
rename to cerberus/.frama-c/cheri_01_deconst.eva/alarms.csv
diff --git a/cerberus/cheri_01_deconst.eva/metrics.log b/cerberus/.frama-c/cheri_01_deconst.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_01_deconst.eva/metrics.log
rename to cerberus/.frama-c/cheri_01_deconst.eva/metrics.log
diff --git a/cerberus/cheri_01_deconst.eva/nonterm.log b/cerberus/.frama-c/cheri_01_deconst.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_01_deconst.eva/nonterm.log
rename to cerberus/.frama-c/cheri_01_deconst.eva/nonterm.log
diff --git a/cerberus/cheri_01_deconst.eva/warnings.log b/cerberus/.frama-c/cheri_01_deconst.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_01_deconst.eva/warnings.log
rename to cerberus/.frama-c/cheri_01_deconst.eva/warnings.log
diff --git a/cerberus/cheri_01_deconst.parse/framac.ast b/cerberus/.frama-c/cheri_01_deconst.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_01_deconst.parse/framac.ast
rename to cerberus/.frama-c/cheri_01_deconst.parse/framac.ast
diff --git a/cerberus/cheri_01_deconst.parse/metrics.log b/cerberus/.frama-c/cheri_01_deconst.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_01_deconst.parse/metrics.log
rename to cerberus/.frama-c/cheri_01_deconst.parse/metrics.log
diff --git a/cerberus/cheri_01_deconst.parse/warnings.log b/cerberus/.frama-c/cheri_01_deconst.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_01_deconst.parse/warnings.log
rename to cerberus/.frama-c/cheri_01_deconst.parse/warnings.log
diff --git a/cerberus/cheri_02_container.eva/alarms.csv b/cerberus/.frama-c/cheri_02_container.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_02_container.eva/alarms.csv
rename to cerberus/.frama-c/cheri_02_container.eva/alarms.csv
diff --git a/cerberus/cheri_02_container.eva/metrics.log b/cerberus/.frama-c/cheri_02_container.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_02_container.eva/metrics.log
rename to cerberus/.frama-c/cheri_02_container.eva/metrics.log
diff --git a/cerberus/cheri_02_container.eva/nonterm.log b/cerberus/.frama-c/cheri_02_container.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_02_container.eva/nonterm.log
rename to cerberus/.frama-c/cheri_02_container.eva/nonterm.log
diff --git a/cerberus/cheri_02_container.eva/warnings.log b/cerberus/.frama-c/cheri_02_container.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_02_container.eva/warnings.log
rename to cerberus/.frama-c/cheri_02_container.eva/warnings.log
diff --git a/cerberus/cheri_02_container.parse/framac.ast b/cerberus/.frama-c/cheri_02_container.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_02_container.parse/framac.ast
rename to cerberus/.frama-c/cheri_02_container.parse/framac.ast
diff --git a/cerberus/cheri_02_container.parse/metrics.log b/cerberus/.frama-c/cheri_02_container.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_02_container.parse/metrics.log
rename to cerberus/.frama-c/cheri_02_container.parse/metrics.log
diff --git a/cerberus/cheri_02_container.parse/warnings.log b/cerberus/.frama-c/cheri_02_container.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_02_container.parse/warnings.log
rename to cerberus/.frama-c/cheri_02_container.parse/warnings.log
diff --git a/cerberus/cheri_03_ii.eva/alarms.csv b/cerberus/.frama-c/cheri_03_ii.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_03_ii.eva/alarms.csv
rename to cerberus/.frama-c/cheri_03_ii.eva/alarms.csv
diff --git a/cerberus/cheri_03_ii.eva/metrics.log b/cerberus/.frama-c/cheri_03_ii.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_03_ii.eva/metrics.log
rename to cerberus/.frama-c/cheri_03_ii.eva/metrics.log
diff --git a/cerberus/cheri_03_ii.eva/nonterm.log b/cerberus/.frama-c/cheri_03_ii.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_03_ii.eva/nonterm.log
rename to cerberus/.frama-c/cheri_03_ii.eva/nonterm.log
diff --git a/cerberus/cheri_03_ii.eva/warnings.log b/cerberus/.frama-c/cheri_03_ii.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_03_ii.eva/warnings.log
rename to cerberus/.frama-c/cheri_03_ii.eva/warnings.log
diff --git a/cerberus/cheri_03_ii.parse/framac.ast b/cerberus/.frama-c/cheri_03_ii.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_03_ii.parse/framac.ast
rename to cerberus/.frama-c/cheri_03_ii.parse/framac.ast
diff --git a/cerberus/cheri_03_ii.parse/metrics.log b/cerberus/.frama-c/cheri_03_ii.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_03_ii.parse/metrics.log
rename to cerberus/.frama-c/cheri_03_ii.parse/metrics.log
diff --git a/cerberus/cheri_03_ii.parse/warnings.log b/cerberus/.frama-c/cheri_03_ii.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_03_ii.parse/warnings.log
rename to cerberus/.frama-c/cheri_03_ii.parse/warnings.log
diff --git a/cerberus/cheri_03_ii_char.eva/alarms.csv b/cerberus/.frama-c/cheri_03_ii_char.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_03_ii_char.eva/alarms.csv
rename to cerberus/.frama-c/cheri_03_ii_char.eva/alarms.csv
diff --git a/cerberus/cheri_03_ii_char.eva/metrics.log b/cerberus/.frama-c/cheri_03_ii_char.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_03_ii_char.eva/metrics.log
rename to cerberus/.frama-c/cheri_03_ii_char.eva/metrics.log
diff --git a/cerberus/cheri_03_ii_char.eva/nonterm.log b/cerberus/.frama-c/cheri_03_ii_char.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_03_ii_char.eva/nonterm.log
rename to cerberus/.frama-c/cheri_03_ii_char.eva/nonterm.log
diff --git a/cerberus/cheri_03_ii_char.eva/warnings.log b/cerberus/.frama-c/cheri_03_ii_char.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_03_ii_char.eva/warnings.log
rename to cerberus/.frama-c/cheri_03_ii_char.eva/warnings.log
diff --git a/cerberus/cheri_03_ii_char.parse/framac.ast b/cerberus/.frama-c/cheri_03_ii_char.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_03_ii_char.parse/framac.ast
rename to cerberus/.frama-c/cheri_03_ii_char.parse/framac.ast
diff --git a/cerberus/cheri_03_ii_char.parse/metrics.log b/cerberus/.frama-c/cheri_03_ii_char.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_03_ii_char.parse/metrics.log
rename to cerberus/.frama-c/cheri_03_ii_char.parse/metrics.log
diff --git a/cerberus/cheri_03_ii_char.parse/warnings.log b/cerberus/.frama-c/cheri_03_ii_char.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_03_ii_char.parse/warnings.log
rename to cerberus/.frama-c/cheri_03_ii_char.parse/warnings.log
diff --git a/cerberus/cheri_04a_int_uintptr_t.eva/alarms.csv b/cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_04a_int_uintptr_t.eva/alarms.csv
rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/alarms.csv
diff --git a/cerberus/cheri_04a_int_uintptr_t.eva/metrics.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_04a_int_uintptr_t.eva/metrics.log
rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/metrics.log
diff --git a/cerberus/cheri_04a_int_uintptr_t.eva/nonterm.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_04a_int_uintptr_t.eva/nonterm.log
rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/nonterm.log
diff --git a/cerberus/cheri_04a_int_uintptr_t.eva/warnings.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_04a_int_uintptr_t.eva/warnings.log
rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.eva/warnings.log
diff --git a/cerberus/cheri_04a_int_uintptr_t.parse/framac.ast b/cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_04a_int_uintptr_t.parse/framac.ast
rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/framac.ast
diff --git a/cerberus/cheri_04a_int_uintptr_t.parse/metrics.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_04a_int_uintptr_t.parse/metrics.log
rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/metrics.log
diff --git a/cerberus/cheri_04a_int_uintptr_t.parse/warnings.log b/cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_04a_int_uintptr_t.parse/warnings.log
rename to cerberus/.frama-c/cheri_04a_int_uintptr_t.parse/warnings.log
diff --git a/cerberus/cheri_04b_int_unsigned_long.eva/alarms.csv b/cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_04b_int_unsigned_long.eva/alarms.csv
rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/alarms.csv
diff --git a/cerberus/cheri_04b_int_unsigned_long.eva/metrics.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_04b_int_unsigned_long.eva/metrics.log
rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/metrics.log
diff --git a/cerberus/cheri_04b_int_unsigned_long.eva/nonterm.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_04b_int_unsigned_long.eva/nonterm.log
rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/nonterm.log
diff --git a/cerberus/cheri_04b_int_unsigned_long.eva/warnings.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_04b_int_unsigned_long.eva/warnings.log
rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.eva/warnings.log
diff --git a/cerberus/cheri_04b_int_unsigned_long.parse/framac.ast b/cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_04b_int_unsigned_long.parse/framac.ast
rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/framac.ast
diff --git a/cerberus/cheri_04b_int_unsigned_long.parse/metrics.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_04b_int_unsigned_long.parse/metrics.log
rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/metrics.log
diff --git a/cerberus/cheri_04b_int_unsigned_long.parse/warnings.log b/cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_04b_int_unsigned_long.parse/warnings.log
rename to cerberus/.frama-c/cheri_04b_int_unsigned_long.parse/warnings.log
diff --git a/cerberus/cheri_05_ia.eva/alarms.csv b/cerberus/.frama-c/cheri_05_ia.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_05_ia.eva/alarms.csv
rename to cerberus/.frama-c/cheri_05_ia.eva/alarms.csv
diff --git a/cerberus/cheri_05_ia.eva/metrics.log b/cerberus/.frama-c/cheri_05_ia.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_05_ia.eva/metrics.log
rename to cerberus/.frama-c/cheri_05_ia.eva/metrics.log
diff --git a/cerberus/cheri_05_ia.eva/nonterm.log b/cerberus/.frama-c/cheri_05_ia.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_05_ia.eva/nonterm.log
rename to cerberus/.frama-c/cheri_05_ia.eva/nonterm.log
diff --git a/cerberus/cheri_05_ia.eva/warnings.log b/cerberus/.frama-c/cheri_05_ia.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_05_ia.eva/warnings.log
rename to cerberus/.frama-c/cheri_05_ia.eva/warnings.log
diff --git a/cerberus/cheri_05_ia.parse/framac.ast b/cerberus/.frama-c/cheri_05_ia.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_05_ia.parse/framac.ast
rename to cerberus/.frama-c/cheri_05_ia.parse/framac.ast
diff --git a/cerberus/cheri_05_ia.parse/metrics.log b/cerberus/.frama-c/cheri_05_ia.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_05_ia.parse/metrics.log
rename to cerberus/.frama-c/cheri_05_ia.parse/metrics.log
diff --git a/cerberus/cheri_05_ia.parse/warnings.log b/cerberus/.frama-c/cheri_05_ia.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_05_ia.parse/warnings.log
rename to cerberus/.frama-c/cheri_05_ia.parse/warnings.log
diff --git a/cerberus/cheri_06_mask.eva/alarms.csv b/cerberus/.frama-c/cheri_06_mask.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_06_mask.eva/alarms.csv
rename to cerberus/.frama-c/cheri_06_mask.eva/alarms.csv
diff --git a/cerberus/cheri_06_mask.eva/metrics.log b/cerberus/.frama-c/cheri_06_mask.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_06_mask.eva/metrics.log
rename to cerberus/.frama-c/cheri_06_mask.eva/metrics.log
diff --git a/cerberus/cheri_06_mask.eva/nonterm.log b/cerberus/.frama-c/cheri_06_mask.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_06_mask.eva/nonterm.log
rename to cerberus/.frama-c/cheri_06_mask.eva/nonterm.log
diff --git a/cerberus/cheri_06_mask.eva/warnings.log b/cerberus/.frama-c/cheri_06_mask.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_06_mask.eva/warnings.log
rename to cerberus/.frama-c/cheri_06_mask.eva/warnings.log
diff --git a/cerberus/cheri_06_mask.parse/framac.ast b/cerberus/.frama-c/cheri_06_mask.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_06_mask.parse/framac.ast
rename to cerberus/.frama-c/cheri_06_mask.parse/framac.ast
diff --git a/cerberus/cheri_06_mask.parse/metrics.log b/cerberus/.frama-c/cheri_06_mask.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_06_mask.parse/metrics.log
rename to cerberus/.frama-c/cheri_06_mask.parse/metrics.log
diff --git a/cerberus/cheri_06_mask.parse/warnings.log b/cerberus/.frama-c/cheri_06_mask.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_06_mask.parse/warnings.log
rename to cerberus/.frama-c/cheri_06_mask.parse/warnings.log
diff --git a/cerberus/cheri_07_wide.eva/alarms.csv b/cerberus/.frama-c/cheri_07_wide.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_07_wide.eva/alarms.csv
rename to cerberus/.frama-c/cheri_07_wide.eva/alarms.csv
diff --git a/cerberus/cheri_07_wide.eva/metrics.log b/cerberus/.frama-c/cheri_07_wide.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_07_wide.eva/metrics.log
rename to cerberus/.frama-c/cheri_07_wide.eva/metrics.log
diff --git a/cerberus/cheri_07_wide.eva/nonterm.log b/cerberus/.frama-c/cheri_07_wide.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_07_wide.eva/nonterm.log
rename to cerberus/.frama-c/cheri_07_wide.eva/nonterm.log
diff --git a/cerberus/cheri_07_wide.eva/warnings.log b/cerberus/.frama-c/cheri_07_wide.eva/warnings.log
similarity index 78%
rename from cerberus/cheri_07_wide.eva/warnings.log
rename to cerberus/.frama-c/cheri_07_wide.eva/warnings.log
index 3cdf16b5d94390388930fbb168f4233f8a388b70..76958fa83df051b3dcfdf4e99f6be3041b8c0355 100644
--- a/cerberus/cheri_07_wide.eva/warnings.log
+++ b/cerberus/.frama-c/cheri_07_wide.eva/warnings.log
@@ -1,2 +1,3 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
 cheri_07_wide.c:10:[eva:garbled-mix] warning: The specification of function printf_va_1 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data.
 cheri_07_wide.c:12:[eva:garbled-mix] warning: The specification of function printf_va_2 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data.
diff --git a/cerberus/cheri_07_wide.parse/framac.ast b/cerberus/.frama-c/cheri_07_wide.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_07_wide.parse/framac.ast
rename to cerberus/.frama-c/cheri_07_wide.parse/framac.ast
diff --git a/cerberus/cheri_07_wide.parse/metrics.log b/cerberus/.frama-c/cheri_07_wide.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_07_wide.parse/metrics.log
rename to cerberus/.frama-c/cheri_07_wide.parse/metrics.log
diff --git a/cerberus/cheri_07_wide.parse/warnings.log b/cerberus/.frama-c/cheri_07_wide.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_07_wide.parse/warnings.log
rename to cerberus/.frama-c/cheri_07_wide.parse/warnings.log
diff --git a/cerberus/cheri_08_last_word.eva/alarms.csv b/cerberus/.frama-c/cheri_08_last_word.eva/alarms.csv
similarity index 100%
rename from cerberus/cheri_08_last_word.eva/alarms.csv
rename to cerberus/.frama-c/cheri_08_last_word.eva/alarms.csv
diff --git a/cerberus/cheri_08_last_word.eva/metrics.log b/cerberus/.frama-c/cheri_08_last_word.eva/metrics.log
similarity index 100%
rename from cerberus/cheri_08_last_word.eva/metrics.log
rename to cerberus/.frama-c/cheri_08_last_word.eva/metrics.log
diff --git a/cerberus/cheri_08_last_word.eva/nonterm.log b/cerberus/.frama-c/cheri_08_last_word.eva/nonterm.log
similarity index 100%
rename from cerberus/cheri_08_last_word.eva/nonterm.log
rename to cerberus/.frama-c/cheri_08_last_word.eva/nonterm.log
diff --git a/cerberus/cheri_08_last_word.eva/warnings.log b/cerberus/.frama-c/cheri_08_last_word.eva/warnings.log
similarity index 100%
rename from cerberus/cheri_08_last_word.eva/warnings.log
rename to cerberus/.frama-c/cheri_08_last_word.eva/warnings.log
diff --git a/cerberus/cheri_08_last_word.parse/framac.ast b/cerberus/.frama-c/cheri_08_last_word.parse/framac.ast
similarity index 100%
rename from cerberus/cheri_08_last_word.parse/framac.ast
rename to cerberus/.frama-c/cheri_08_last_word.parse/framac.ast
diff --git a/cerberus/cheri_08_last_word.parse/metrics.log b/cerberus/.frama-c/cheri_08_last_word.parse/metrics.log
similarity index 100%
rename from cerberus/cheri_08_last_word.parse/metrics.log
rename to cerberus/.frama-c/cheri_08_last_word.parse/metrics.log
diff --git a/cerberus/cheri_08_last_word.parse/warnings.log b/cerberus/.frama-c/cheri_08_last_word.parse/warnings.log
similarity index 100%
rename from cerberus/cheri_08_last_word.parse/warnings.log
rename to cerberus/.frama-c/cheri_08_last_word.parse/warnings.log
diff --git a/cerberus/compcertMMv2-1.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-1.eva/alarms.csv
similarity index 100%
rename from cerberus/compcertMMv2-1.eva/alarms.csv
rename to cerberus/.frama-c/compcertMMv2-1.eva/alarms.csv
diff --git a/cerberus/compcertMMv2-1.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-1.eva/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-1.eva/metrics.log
rename to cerberus/.frama-c/compcertMMv2-1.eva/metrics.log
diff --git a/cerberus/compcertMMv2-1.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-1.eva/nonterm.log
similarity index 100%
rename from cerberus/compcertMMv2-1.eva/nonterm.log
rename to cerberus/.frama-c/compcertMMv2-1.eva/nonterm.log
diff --git a/cerberus/compcertMMv2-1.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-1.eva/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-1.eva/warnings.log
rename to cerberus/.frama-c/compcertMMv2-1.eva/warnings.log
diff --git a/cerberus/compcertMMv2-1.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-1.parse/framac.ast
similarity index 100%
rename from cerberus/compcertMMv2-1.parse/framac.ast
rename to cerberus/.frama-c/compcertMMv2-1.parse/framac.ast
diff --git a/cerberus/compcertMMv2-1.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-1.parse/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-1.parse/metrics.log
rename to cerberus/.frama-c/compcertMMv2-1.parse/metrics.log
diff --git a/cerberus/compcertMMv2-1.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-1.parse/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-1.parse/warnings.log
rename to cerberus/.frama-c/compcertMMv2-1.parse/warnings.log
diff --git a/cerberus/compcertMMv2-2.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-2.eva/alarms.csv
similarity index 100%
rename from cerberus/compcertMMv2-2.eva/alarms.csv
rename to cerberus/.frama-c/compcertMMv2-2.eva/alarms.csv
diff --git a/cerberus/compcertMMv2-2.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-2.eva/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-2.eva/metrics.log
rename to cerberus/.frama-c/compcertMMv2-2.eva/metrics.log
diff --git a/cerberus/compcertMMv2-2.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-2.eva/nonterm.log
similarity index 100%
rename from cerberus/compcertMMv2-2.eva/nonterm.log
rename to cerberus/.frama-c/compcertMMv2-2.eva/nonterm.log
diff --git a/cerberus/compcertMMv2-2.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-2.eva/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-2.eva/warnings.log
rename to cerberus/.frama-c/compcertMMv2-2.eva/warnings.log
diff --git a/cerberus/compcertMMv2-2.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-2.parse/framac.ast
similarity index 100%
rename from cerberus/compcertMMv2-2.parse/framac.ast
rename to cerberus/.frama-c/compcertMMv2-2.parse/framac.ast
diff --git a/cerberus/compcertMMv2-2.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-2.parse/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-2.parse/metrics.log
rename to cerberus/.frama-c/compcertMMv2-2.parse/metrics.log
diff --git a/cerberus/compcertMMv2-2.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-2.parse/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-2.parse/warnings.log
rename to cerberus/.frama-c/compcertMMv2-2.parse/warnings.log
diff --git a/cerberus/compcertMMv2-3.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-3.eva/alarms.csv
similarity index 100%
rename from cerberus/compcertMMv2-3.eva/alarms.csv
rename to cerberus/.frama-c/compcertMMv2-3.eva/alarms.csv
diff --git a/cerberus/compcertMMv2-3.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-3.eva/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-3.eva/metrics.log
rename to cerberus/.frama-c/compcertMMv2-3.eva/metrics.log
diff --git a/cerberus/compcertMMv2-3.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-3.eva/nonterm.log
similarity index 100%
rename from cerberus/compcertMMv2-3.eva/nonterm.log
rename to cerberus/.frama-c/compcertMMv2-3.eva/nonterm.log
diff --git a/cerberus/compcertMMv2-3.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-3.eva/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-3.eva/warnings.log
rename to cerberus/.frama-c/compcertMMv2-3.eva/warnings.log
diff --git a/cerberus/compcertMMv2-3.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-3.parse/framac.ast
similarity index 100%
rename from cerberus/compcertMMv2-3.parse/framac.ast
rename to cerberus/.frama-c/compcertMMv2-3.parse/framac.ast
diff --git a/cerberus/compcertMMv2-3.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-3.parse/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-3.parse/metrics.log
rename to cerberus/.frama-c/compcertMMv2-3.parse/metrics.log
diff --git a/cerberus/compcertMMv2-3.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-3.parse/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-3.parse/warnings.log
rename to cerberus/.frama-c/compcertMMv2-3.parse/warnings.log
diff --git a/cerberus/compcertMMv2-4.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-4.eva/alarms.csv
similarity index 100%
rename from cerberus/compcertMMv2-4.eva/alarms.csv
rename to cerberus/.frama-c/compcertMMv2-4.eva/alarms.csv
diff --git a/cerberus/compcertMMv2-4.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-4.eva/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-4.eva/metrics.log
rename to cerberus/.frama-c/compcertMMv2-4.eva/metrics.log
diff --git a/cerberus/compcertMMv2-4.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-4.eva/nonterm.log
similarity index 100%
rename from cerberus/compcertMMv2-4.eva/nonterm.log
rename to cerberus/.frama-c/compcertMMv2-4.eva/nonterm.log
diff --git a/cerberus/compcertMMv2-4.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-4.eva/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-4.eva/warnings.log
rename to cerberus/.frama-c/compcertMMv2-4.eva/warnings.log
diff --git a/cerberus/compcertMMv2-4.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-4.parse/framac.ast
similarity index 100%
rename from cerberus/compcertMMv2-4.parse/framac.ast
rename to cerberus/.frama-c/compcertMMv2-4.parse/framac.ast
diff --git a/cerberus/compcertMMv2-4.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-4.parse/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-4.parse/metrics.log
rename to cerberus/.frama-c/compcertMMv2-4.parse/metrics.log
diff --git a/cerberus/compcertMMv2-4.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-4.parse/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-4.parse/warnings.log
rename to cerberus/.frama-c/compcertMMv2-4.parse/warnings.log
diff --git a/cerberus/compcertMMv2-5.eva/alarms.csv b/cerberus/.frama-c/compcertMMv2-5.eva/alarms.csv
similarity index 100%
rename from cerberus/compcertMMv2-5.eva/alarms.csv
rename to cerberus/.frama-c/compcertMMv2-5.eva/alarms.csv
diff --git a/cerberus/compcertMMv2-5.eva/metrics.log b/cerberus/.frama-c/compcertMMv2-5.eva/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-5.eva/metrics.log
rename to cerberus/.frama-c/compcertMMv2-5.eva/metrics.log
diff --git a/cerberus/compcertMMv2-5.eva/nonterm.log b/cerberus/.frama-c/compcertMMv2-5.eva/nonterm.log
similarity index 100%
rename from cerberus/compcertMMv2-5.eva/nonterm.log
rename to cerberus/.frama-c/compcertMMv2-5.eva/nonterm.log
diff --git a/cerberus/compcertMMv2-5.eva/warnings.log b/cerberus/.frama-c/compcertMMv2-5.eva/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-5.eva/warnings.log
rename to cerberus/.frama-c/compcertMMv2-5.eva/warnings.log
diff --git a/cerberus/compcertMMv2-5.parse/framac.ast b/cerberus/.frama-c/compcertMMv2-5.parse/framac.ast
similarity index 100%
rename from cerberus/compcertMMv2-5.parse/framac.ast
rename to cerberus/.frama-c/compcertMMv2-5.parse/framac.ast
diff --git a/cerberus/compcertMMv2-5.parse/metrics.log b/cerberus/.frama-c/compcertMMv2-5.parse/metrics.log
similarity index 100%
rename from cerberus/compcertMMv2-5.parse/metrics.log
rename to cerberus/.frama-c/compcertMMv2-5.parse/metrics.log
diff --git a/cerberus/compcertMMv2-5.parse/warnings.log b/cerberus/.frama-c/compcertMMv2-5.parse/warnings.log
similarity index 100%
rename from cerberus/compcertMMv2-5.parse/warnings.log
rename to cerberus/.frama-c/compcertMMv2-5.parse/warnings.log
diff --git a/cerberus/compcertTSO-1.eva/alarms.csv b/cerberus/.frama-c/compcertTSO-1.eva/alarms.csv
similarity index 100%
rename from cerberus/compcertTSO-1.eva/alarms.csv
rename to cerberus/.frama-c/compcertTSO-1.eva/alarms.csv
diff --git a/cerberus/compcertTSO-1.eva/metrics.log b/cerberus/.frama-c/compcertTSO-1.eva/metrics.log
similarity index 100%
rename from cerberus/compcertTSO-1.eva/metrics.log
rename to cerberus/.frama-c/compcertTSO-1.eva/metrics.log
diff --git a/cerberus/compcertTSO-1.eva/nonterm.log b/cerberus/.frama-c/compcertTSO-1.eva/nonterm.log
similarity index 100%
rename from cerberus/compcertTSO-1.eva/nonterm.log
rename to cerberus/.frama-c/compcertTSO-1.eva/nonterm.log
diff --git a/cerberus/compcertTSO-1.eva/warnings.log b/cerberus/.frama-c/compcertTSO-1.eva/warnings.log
similarity index 67%
rename from cerberus/compcertTSO-1.eva/warnings.log
rename to cerberus/.frama-c/compcertTSO-1.eva/warnings.log
index 4a397709dd630278b0c13c2d5b1cebb57795893f..5880780ea1103b115ec7ac70bf68f02a8cda9e72 100644
--- a/cerberus/compcertTSO-1.eva/warnings.log
+++ b/cerberus/.frama-c/compcertTSO-1.eva/warnings.log
@@ -1,2 +1,3 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
 compcertTSO-1.c:8:[eva:locals-escaping] warning: locals {a} escaping the scope of f through \result<f>
 compcertTSO-1.c:8:[eva:locals-escaping] warning: locals {a} escaping the scope of g through \result<g>
diff --git a/cerberus/compcertTSO-1.parse/framac.ast b/cerberus/.frama-c/compcertTSO-1.parse/framac.ast
similarity index 100%
rename from cerberus/compcertTSO-1.parse/framac.ast
rename to cerberus/.frama-c/compcertTSO-1.parse/framac.ast
diff --git a/cerberus/compcertTSO-1.parse/metrics.log b/cerberus/.frama-c/compcertTSO-1.parse/metrics.log
similarity index 100%
rename from cerberus/compcertTSO-1.parse/metrics.log
rename to cerberus/.frama-c/compcertTSO-1.parse/metrics.log
diff --git a/cerberus/compcertTSO-1.parse/warnings.log b/cerberus/.frama-c/compcertTSO-1.parse/warnings.log
similarity index 100%
rename from cerberus/compcertTSO-1.parse/warnings.log
rename to cerberus/.frama-c/compcertTSO-1.parse/warnings.log
diff --git a/cerberus/compcertTSO-2.eva/alarms.csv b/cerberus/.frama-c/compcertTSO-2.eva/alarms.csv
similarity index 100%
rename from cerberus/compcertTSO-2.eva/alarms.csv
rename to cerberus/.frama-c/compcertTSO-2.eva/alarms.csv
diff --git a/cerberus/compcertTSO-2.eva/metrics.log b/cerberus/.frama-c/compcertTSO-2.eva/metrics.log
similarity index 100%
rename from cerberus/compcertTSO-2.eva/metrics.log
rename to cerberus/.frama-c/compcertTSO-2.eva/metrics.log
diff --git a/cerberus/compcertTSO-2.eva/nonterm.log b/cerberus/.frama-c/compcertTSO-2.eva/nonterm.log
similarity index 100%
rename from cerberus/compcertTSO-2.eva/nonterm.log
rename to cerberus/.frama-c/compcertTSO-2.eva/nonterm.log
diff --git a/cerberus/compcertTSO-2.eva/warnings.log b/cerberus/.frama-c/compcertTSO-2.eva/warnings.log
similarity index 100%
rename from cerberus/compcertTSO-2.eva/warnings.log
rename to cerberus/.frama-c/compcertTSO-2.eva/warnings.log
diff --git a/cerberus/compcertTSO-2.parse/framac.ast b/cerberus/.frama-c/compcertTSO-2.parse/framac.ast
similarity index 100%
rename from cerberus/compcertTSO-2.parse/framac.ast
rename to cerberus/.frama-c/compcertTSO-2.parse/framac.ast
diff --git a/cerberus/compcertTSO-2.parse/metrics.log b/cerberus/.frama-c/compcertTSO-2.parse/metrics.log
similarity index 100%
rename from cerberus/compcertTSO-2.parse/metrics.log
rename to cerberus/.frama-c/compcertTSO-2.parse/metrics.log
diff --git a/cerberus/compcertTSO-2.parse/warnings.log b/cerberus/.frama-c/compcertTSO-2.parse/warnings.log
similarity index 100%
rename from cerberus/compcertTSO-2.parse/warnings.log
rename to cerberus/.frama-c/compcertTSO-2.parse/warnings.log
diff --git a/cerberus/effective_type_1.eva/alarms.csv b/cerberus/.frama-c/effective_type_1.eva/alarms.csv
similarity index 100%
rename from cerberus/effective_type_1.eva/alarms.csv
rename to cerberus/.frama-c/effective_type_1.eva/alarms.csv
diff --git a/cerberus/effective_type_1.eva/metrics.log b/cerberus/.frama-c/effective_type_1.eva/metrics.log
similarity index 100%
rename from cerberus/effective_type_1.eva/metrics.log
rename to cerberus/.frama-c/effective_type_1.eva/metrics.log
diff --git a/cerberus/effective_type_1.eva/nonterm.log b/cerberus/.frama-c/effective_type_1.eva/nonterm.log
similarity index 100%
rename from cerberus/effective_type_1.eva/nonterm.log
rename to cerberus/.frama-c/effective_type_1.eva/nonterm.log
diff --git a/cerberus/effective_type_1.eva/warnings.log b/cerberus/.frama-c/effective_type_1.eva/warnings.log
similarity index 100%
rename from cerberus/effective_type_1.eva/warnings.log
rename to cerberus/.frama-c/effective_type_1.eva/warnings.log
diff --git a/cerberus/effective_type_1.parse/framac.ast b/cerberus/.frama-c/effective_type_1.parse/framac.ast
similarity index 100%
rename from cerberus/effective_type_1.parse/framac.ast
rename to cerberus/.frama-c/effective_type_1.parse/framac.ast
diff --git a/cerberus/effective_type_1.parse/metrics.log b/cerberus/.frama-c/effective_type_1.parse/metrics.log
similarity index 100%
rename from cerberus/effective_type_1.parse/metrics.log
rename to cerberus/.frama-c/effective_type_1.parse/metrics.log
diff --git a/cerberus/effective_type_1.parse/warnings.log b/cerberus/.frama-c/effective_type_1.parse/warnings.log
similarity index 100%
rename from cerberus/effective_type_1.parse/warnings.log
rename to cerberus/.frama-c/effective_type_1.parse/warnings.log
diff --git a/cerberus/effective_type_10.eva/alarms.csv b/cerberus/.frama-c/effective_type_10.eva/alarms.csv
similarity index 100%
rename from cerberus/effective_type_10.eva/alarms.csv
rename to cerberus/.frama-c/effective_type_10.eva/alarms.csv
diff --git a/cerberus/effective_type_10.eva/metrics.log b/cerberus/.frama-c/effective_type_10.eva/metrics.log
similarity index 100%
rename from cerberus/effective_type_10.eva/metrics.log
rename to cerberus/.frama-c/effective_type_10.eva/metrics.log
diff --git a/cerberus/effective_type_10.eva/nonterm.log b/cerberus/.frama-c/effective_type_10.eva/nonterm.log
similarity index 100%
rename from cerberus/effective_type_10.eva/nonterm.log
rename to cerberus/.frama-c/effective_type_10.eva/nonterm.log
diff --git a/cerberus/effective_type_10.eva/warnings.log b/cerberus/.frama-c/effective_type_10.eva/warnings.log
similarity index 100%
rename from cerberus/effective_type_10.eva/warnings.log
rename to cerberus/.frama-c/effective_type_10.eva/warnings.log
diff --git a/cerberus/effective_type_10.parse/framac.ast b/cerberus/.frama-c/effective_type_10.parse/framac.ast
similarity index 100%
rename from cerberus/effective_type_10.parse/framac.ast
rename to cerberus/.frama-c/effective_type_10.parse/framac.ast
diff --git a/cerberus/effective_type_10.parse/metrics.log b/cerberus/.frama-c/effective_type_10.parse/metrics.log
similarity index 100%
rename from cerberus/effective_type_10.parse/metrics.log
rename to cerberus/.frama-c/effective_type_10.parse/metrics.log
diff --git a/cerberus/effective_type_10.parse/warnings.log b/cerberus/.frama-c/effective_type_10.parse/warnings.log
similarity index 100%
rename from cerberus/effective_type_10.parse/warnings.log
rename to cerberus/.frama-c/effective_type_10.parse/warnings.log
diff --git a/cerberus/effective_type_2.eva/alarms.csv b/cerberus/.frama-c/effective_type_2.eva/alarms.csv
similarity index 100%
rename from cerberus/effective_type_2.eva/alarms.csv
rename to cerberus/.frama-c/effective_type_2.eva/alarms.csv
diff --git a/cerberus/effective_type_2.eva/metrics.log b/cerberus/.frama-c/effective_type_2.eva/metrics.log
similarity index 100%
rename from cerberus/effective_type_2.eva/metrics.log
rename to cerberus/.frama-c/effective_type_2.eva/metrics.log
diff --git a/cerberus/effective_type_2.eva/nonterm.log b/cerberus/.frama-c/effective_type_2.eva/nonterm.log
similarity index 100%
rename from cerberus/effective_type_2.eva/nonterm.log
rename to cerberus/.frama-c/effective_type_2.eva/nonterm.log
diff --git a/cerberus/effective_type_2.eva/warnings.log b/cerberus/.frama-c/effective_type_2.eva/warnings.log
similarity index 100%
rename from cerberus/effective_type_2.eva/warnings.log
rename to cerberus/.frama-c/effective_type_2.eva/warnings.log
diff --git a/cerberus/effective_type_2.parse/framac.ast b/cerberus/.frama-c/effective_type_2.parse/framac.ast
similarity index 100%
rename from cerberus/effective_type_2.parse/framac.ast
rename to cerberus/.frama-c/effective_type_2.parse/framac.ast
diff --git a/cerberus/effective_type_2.parse/metrics.log b/cerberus/.frama-c/effective_type_2.parse/metrics.log
similarity index 100%
rename from cerberus/effective_type_2.parse/metrics.log
rename to cerberus/.frama-c/effective_type_2.parse/metrics.log
diff --git a/cerberus/effective_type_2.parse/warnings.log b/cerberus/.frama-c/effective_type_2.parse/warnings.log
similarity index 100%
rename from cerberus/effective_type_2.parse/warnings.log
rename to cerberus/.frama-c/effective_type_2.parse/warnings.log
diff --git a/cerberus/effective_type_5.eva/alarms.csv b/cerberus/.frama-c/effective_type_5.eva/alarms.csv
similarity index 100%
rename from cerberus/effective_type_5.eva/alarms.csv
rename to cerberus/.frama-c/effective_type_5.eva/alarms.csv
diff --git a/cerberus/effective_type_5.eva/metrics.log b/cerberus/.frama-c/effective_type_5.eva/metrics.log
similarity index 100%
rename from cerberus/effective_type_5.eva/metrics.log
rename to cerberus/.frama-c/effective_type_5.eva/metrics.log
diff --git a/cerberus/effective_type_5.eva/nonterm.log b/cerberus/.frama-c/effective_type_5.eva/nonterm.log
similarity index 100%
rename from cerberus/effective_type_5.eva/nonterm.log
rename to cerberus/.frama-c/effective_type_5.eva/nonterm.log
diff --git a/cerberus/effective_type_5.eva/warnings.log b/cerberus/.frama-c/effective_type_5.eva/warnings.log
similarity index 100%
rename from cerberus/effective_type_5.eva/warnings.log
rename to cerberus/.frama-c/effective_type_5.eva/warnings.log
diff --git a/cerberus/effective_type_5.parse/framac.ast b/cerberus/.frama-c/effective_type_5.parse/framac.ast
similarity index 100%
rename from cerberus/effective_type_5.parse/framac.ast
rename to cerberus/.frama-c/effective_type_5.parse/framac.ast
diff --git a/cerberus/effective_type_5.parse/metrics.log b/cerberus/.frama-c/effective_type_5.parse/metrics.log
similarity index 100%
rename from cerberus/effective_type_5.parse/metrics.log
rename to cerberus/.frama-c/effective_type_5.parse/metrics.log
diff --git a/cerberus/effective_type_5.parse/warnings.log b/cerberus/.frama-c/effective_type_5.parse/warnings.log
similarity index 100%
rename from cerberus/effective_type_5.parse/warnings.log
rename to cerberus/.frama-c/effective_type_5.parse/warnings.log
diff --git a/cerberus/effective_type_6.eva/alarms.csv b/cerberus/.frama-c/effective_type_6.eva/alarms.csv
similarity index 100%
rename from cerberus/effective_type_6.eva/alarms.csv
rename to cerberus/.frama-c/effective_type_6.eva/alarms.csv
diff --git a/cerberus/effective_type_6.eva/metrics.log b/cerberus/.frama-c/effective_type_6.eva/metrics.log
similarity index 100%
rename from cerberus/effective_type_6.eva/metrics.log
rename to cerberus/.frama-c/effective_type_6.eva/metrics.log
diff --git a/cerberus/effective_type_6.eva/nonterm.log b/cerberus/.frama-c/effective_type_6.eva/nonterm.log
similarity index 100%
rename from cerberus/effective_type_6.eva/nonterm.log
rename to cerberus/.frama-c/effective_type_6.eva/nonterm.log
diff --git a/cerberus/effective_type_6.eva/warnings.log b/cerberus/.frama-c/effective_type_6.eva/warnings.log
similarity index 100%
rename from cerberus/effective_type_6.eva/warnings.log
rename to cerberus/.frama-c/effective_type_6.eva/warnings.log
diff --git a/cerberus/effective_type_6.parse/framac.ast b/cerberus/.frama-c/effective_type_6.parse/framac.ast
similarity index 100%
rename from cerberus/effective_type_6.parse/framac.ast
rename to cerberus/.frama-c/effective_type_6.parse/framac.ast
diff --git a/cerberus/effective_type_6.parse/metrics.log b/cerberus/.frama-c/effective_type_6.parse/metrics.log
similarity index 100%
rename from cerberus/effective_type_6.parse/metrics.log
rename to cerberus/.frama-c/effective_type_6.parse/metrics.log
diff --git a/cerberus/effective_type_6.parse/warnings.log b/cerberus/.frama-c/effective_type_6.parse/warnings.log
similarity index 100%
rename from cerberus/effective_type_6.parse/warnings.log
rename to cerberus/.frama-c/effective_type_6.parse/warnings.log
diff --git a/cerberus/effective_type_7.eva/alarms.csv b/cerberus/.frama-c/effective_type_7.eva/alarms.csv
similarity index 100%
rename from cerberus/effective_type_7.eva/alarms.csv
rename to cerberus/.frama-c/effective_type_7.eva/alarms.csv
diff --git a/cerberus/effective_type_7.eva/metrics.log b/cerberus/.frama-c/effective_type_7.eva/metrics.log
similarity index 100%
rename from cerberus/effective_type_7.eva/metrics.log
rename to cerberus/.frama-c/effective_type_7.eva/metrics.log
diff --git a/cerberus/effective_type_7.eva/nonterm.log b/cerberus/.frama-c/effective_type_7.eva/nonterm.log
similarity index 100%
rename from cerberus/effective_type_7.eva/nonterm.log
rename to cerberus/.frama-c/effective_type_7.eva/nonterm.log
diff --git a/cerberus/effective_type_7.eva/warnings.log b/cerberus/.frama-c/effective_type_7.eva/warnings.log
similarity index 100%
rename from cerberus/effective_type_7.eva/warnings.log
rename to cerberus/.frama-c/effective_type_7.eva/warnings.log
diff --git a/cerberus/effective_type_7.parse/framac.ast b/cerberus/.frama-c/effective_type_7.parse/framac.ast
similarity index 100%
rename from cerberus/effective_type_7.parse/framac.ast
rename to cerberus/.frama-c/effective_type_7.parse/framac.ast
diff --git a/cerberus/effective_type_7.parse/metrics.log b/cerberus/.frama-c/effective_type_7.parse/metrics.log
similarity index 100%
rename from cerberus/effective_type_7.parse/metrics.log
rename to cerberus/.frama-c/effective_type_7.parse/metrics.log
diff --git a/cerberus/effective_type_7.parse/warnings.log b/cerberus/.frama-c/effective_type_7.parse/warnings.log
similarity index 100%
rename from cerberus/effective_type_7.parse/warnings.log
rename to cerberus/.frama-c/effective_type_7.parse/warnings.log
diff --git a/cerberus/effective_type_8.eva/alarms.csv b/cerberus/.frama-c/effective_type_8.eva/alarms.csv
similarity index 100%
rename from cerberus/effective_type_8.eva/alarms.csv
rename to cerberus/.frama-c/effective_type_8.eva/alarms.csv
diff --git a/cerberus/effective_type_8.eva/metrics.log b/cerberus/.frama-c/effective_type_8.eva/metrics.log
similarity index 100%
rename from cerberus/effective_type_8.eva/metrics.log
rename to cerberus/.frama-c/effective_type_8.eva/metrics.log
diff --git a/cerberus/effective_type_8.eva/nonterm.log b/cerberus/.frama-c/effective_type_8.eva/nonterm.log
similarity index 100%
rename from cerberus/effective_type_8.eva/nonterm.log
rename to cerberus/.frama-c/effective_type_8.eva/nonterm.log
diff --git a/cerberus/effective_type_8.eva/warnings.log b/cerberus/.frama-c/effective_type_8.eva/warnings.log
similarity index 100%
rename from cerberus/effective_type_8.eva/warnings.log
rename to cerberus/.frama-c/effective_type_8.eva/warnings.log
diff --git a/cerberus/effective_type_8.parse/framac.ast b/cerberus/.frama-c/effective_type_8.parse/framac.ast
similarity index 100%
rename from cerberus/effective_type_8.parse/framac.ast
rename to cerberus/.frama-c/effective_type_8.parse/framac.ast
diff --git a/cerberus/effective_type_8.parse/metrics.log b/cerberus/.frama-c/effective_type_8.parse/metrics.log
similarity index 100%
rename from cerberus/effective_type_8.parse/metrics.log
rename to cerberus/.frama-c/effective_type_8.parse/metrics.log
diff --git a/cerberus/effective_type_8.parse/warnings.log b/cerberus/.frama-c/effective_type_8.parse/warnings.log
similarity index 100%
rename from cerberus/effective_type_8.parse/warnings.log
rename to cerberus/.frama-c/effective_type_8.parse/warnings.log
diff --git a/cerberus/effective_type_9.eva/alarms.csv b/cerberus/.frama-c/effective_type_9.eva/alarms.csv
similarity index 100%
rename from cerberus/effective_type_9.eva/alarms.csv
rename to cerberus/.frama-c/effective_type_9.eva/alarms.csv
diff --git a/cerberus/effective_type_9.eva/metrics.log b/cerberus/.frama-c/effective_type_9.eva/metrics.log
similarity index 100%
rename from cerberus/effective_type_9.eva/metrics.log
rename to cerberus/.frama-c/effective_type_9.eva/metrics.log
diff --git a/cerberus/effective_type_9.eva/nonterm.log b/cerberus/.frama-c/effective_type_9.eva/nonterm.log
similarity index 100%
rename from cerberus/effective_type_9.eva/nonterm.log
rename to cerberus/.frama-c/effective_type_9.eva/nonterm.log
diff --git a/cerberus/effective_type_9.eva/warnings.log b/cerberus/.frama-c/effective_type_9.eva/warnings.log
similarity index 100%
rename from cerberus/effective_type_9.eva/warnings.log
rename to cerberus/.frama-c/effective_type_9.eva/warnings.log
diff --git a/cerberus/effective_type_9.parse/framac.ast b/cerberus/.frama-c/effective_type_9.parse/framac.ast
similarity index 100%
rename from cerberus/effective_type_9.parse/framac.ast
rename to cerberus/.frama-c/effective_type_9.parse/framac.ast
diff --git a/cerberus/effective_type_9.parse/metrics.log b/cerberus/.frama-c/effective_type_9.parse/metrics.log
similarity index 100%
rename from cerberus/effective_type_9.parse/metrics.log
rename to cerberus/.frama-c/effective_type_9.parse/metrics.log
diff --git a/cerberus/effective_type_9.parse/warnings.log b/cerberus/.frama-c/effective_type_9.parse/warnings.log
similarity index 100%
rename from cerberus/effective_type_9.parse/warnings.log
rename to cerberus/.frama-c/effective_type_9.parse/warnings.log
diff --git a/cerberus/fc_stubs.h b/cerberus/.frama-c/fc_stubs.h
similarity index 100%
rename from cerberus/fc_stubs.h
rename to cerberus/.frama-c/fc_stubs.h
diff --git a/cerberus/frama-c-2013-03-13-2.eva/alarms.csv b/cerberus/.frama-c/frama-c-2013-03-13-2.eva/alarms.csv
similarity index 100%
rename from cerberus/frama-c-2013-03-13-2.eva/alarms.csv
rename to cerberus/.frama-c/frama-c-2013-03-13-2.eva/alarms.csv
diff --git a/cerberus/frama-c-2013-03-13-2.eva/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-2.eva/metrics.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-2.eva/metrics.log
rename to cerberus/.frama-c/frama-c-2013-03-13-2.eva/metrics.log
diff --git a/cerberus/frama-c-2013-03-13-2.eva/nonterm.log b/cerberus/.frama-c/frama-c-2013-03-13-2.eva/nonterm.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-2.eva/nonterm.log
rename to cerberus/.frama-c/frama-c-2013-03-13-2.eva/nonterm.log
diff --git a/cerberus/frama-c-2013-03-13-2.eva/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-2.eva/warnings.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-2.eva/warnings.log
rename to cerberus/.frama-c/frama-c-2013-03-13-2.eva/warnings.log
diff --git a/cerberus/frama-c-2013-03-13-2.parse/framac.ast b/cerberus/.frama-c/frama-c-2013-03-13-2.parse/framac.ast
similarity index 100%
rename from cerberus/frama-c-2013-03-13-2.parse/framac.ast
rename to cerberus/.frama-c/frama-c-2013-03-13-2.parse/framac.ast
diff --git a/cerberus/frama-c-2013-03-13-2.parse/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-2.parse/metrics.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-2.parse/metrics.log
rename to cerberus/.frama-c/frama-c-2013-03-13-2.parse/metrics.log
diff --git a/cerberus/frama-c-2013-03-13-2.parse/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-2.parse/warnings.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-2.parse/warnings.log
rename to cerberus/.frama-c/frama-c-2013-03-13-2.parse/warnings.log
diff --git a/cerberus/frama-c-2013-03-13-3-uc.eva/alarms.csv b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/alarms.csv
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3-uc.eva/alarms.csv
rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/alarms.csv
diff --git a/cerberus/frama-c-2013-03-13-3-uc.eva/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/metrics.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3-uc.eva/metrics.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/metrics.log
diff --git a/cerberus/frama-c-2013-03-13-3-uc.eva/nonterm.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/nonterm.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3-uc.eva/nonterm.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/nonterm.log
diff --git a/cerberus/frama-c-2013-03-13-3-uc.eva/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/warnings.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3-uc.eva/warnings.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.eva/warnings.log
diff --git a/cerberus/frama-c-2013-03-13-3-uc.parse/framac.ast b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/framac.ast
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3-uc.parse/framac.ast
rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/framac.ast
diff --git a/cerberus/frama-c-2013-03-13-3-uc.parse/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/metrics.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3-uc.parse/metrics.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/metrics.log
diff --git a/cerberus/frama-c-2013-03-13-3-uc.parse/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/warnings.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3-uc.parse/warnings.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3-uc.parse/warnings.log
diff --git a/cerberus/frama-c-2013-03-13-3.eva/alarms.csv b/cerberus/.frama-c/frama-c-2013-03-13-3.eva/alarms.csv
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3.eva/alarms.csv
rename to cerberus/.frama-c/frama-c-2013-03-13-3.eva/alarms.csv
diff --git a/cerberus/frama-c-2013-03-13-3.eva/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-3.eva/metrics.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3.eva/metrics.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3.eva/metrics.log
diff --git a/cerberus/frama-c-2013-03-13-3.eva/nonterm.log b/cerberus/.frama-c/frama-c-2013-03-13-3.eva/nonterm.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3.eva/nonterm.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3.eva/nonterm.log
diff --git a/cerberus/frama-c-2013-03-13-3.eva/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-3.eva/warnings.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3.eva/warnings.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3.eva/warnings.log
diff --git a/cerberus/frama-c-2013-03-13-3.parse/framac.ast b/cerberus/.frama-c/frama-c-2013-03-13-3.parse/framac.ast
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3.parse/framac.ast
rename to cerberus/.frama-c/frama-c-2013-03-13-3.parse/framac.ast
diff --git a/cerberus/frama-c-2013-03-13-3.parse/metrics.log b/cerberus/.frama-c/frama-c-2013-03-13-3.parse/metrics.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3.parse/metrics.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3.parse/metrics.log
diff --git a/cerberus/frama-c-2013-03-13-3.parse/warnings.log b/cerberus/.frama-c/frama-c-2013-03-13-3.parse/warnings.log
similarity index 100%
rename from cerberus/frama-c-2013-03-13-3.parse/warnings.log
rename to cerberus/.frama-c/frama-c-2013-03-13-3.parse/warnings.log
diff --git a/cerberus/khmgzv-1.eva/alarms.csv b/cerberus/.frama-c/khmgzv-1.eva/alarms.csv
similarity index 100%
rename from cerberus/khmgzv-1.eva/alarms.csv
rename to cerberus/.frama-c/khmgzv-1.eva/alarms.csv
diff --git a/cerberus/khmgzv-1.eva/metrics.log b/cerberus/.frama-c/khmgzv-1.eva/metrics.log
similarity index 100%
rename from cerberus/khmgzv-1.eva/metrics.log
rename to cerberus/.frama-c/khmgzv-1.eva/metrics.log
diff --git a/cerberus/khmgzv-1.eva/nonterm.log b/cerberus/.frama-c/khmgzv-1.eva/nonterm.log
similarity index 100%
rename from cerberus/khmgzv-1.eva/nonterm.log
rename to cerberus/.frama-c/khmgzv-1.eva/nonterm.log
diff --git a/cerberus/khmgzv-1.eva/warnings.log b/cerberus/.frama-c/khmgzv-1.eva/warnings.log
similarity index 100%
rename from cerberus/khmgzv-1.eva/warnings.log
rename to cerberus/.frama-c/khmgzv-1.eva/warnings.log
diff --git a/cerberus/khmgzv-1.parse/framac.ast b/cerberus/.frama-c/khmgzv-1.parse/framac.ast
similarity index 100%
rename from cerberus/khmgzv-1.parse/framac.ast
rename to cerberus/.frama-c/khmgzv-1.parse/framac.ast
diff --git a/cerberus/khmgzv-1.parse/metrics.log b/cerberus/.frama-c/khmgzv-1.parse/metrics.log
similarity index 100%
rename from cerberus/khmgzv-1.parse/metrics.log
rename to cerberus/.frama-c/khmgzv-1.parse/metrics.log
diff --git a/cerberus/khmgzv-1.parse/warnings.log b/cerberus/.frama-c/khmgzv-1.parse/warnings.log
similarity index 100%
rename from cerberus/khmgzv-1.parse/warnings.log
rename to cerberus/.frama-c/khmgzv-1.parse/warnings.log
diff --git a/cerberus/khmgzv-2.eva/alarms.csv b/cerberus/.frama-c/khmgzv-2.eva/alarms.csv
similarity index 100%
rename from cerberus/khmgzv-2.eva/alarms.csv
rename to cerberus/.frama-c/khmgzv-2.eva/alarms.csv
diff --git a/cerberus/khmgzv-2.eva/metrics.log b/cerberus/.frama-c/khmgzv-2.eva/metrics.log
similarity index 100%
rename from cerberus/khmgzv-2.eva/metrics.log
rename to cerberus/.frama-c/khmgzv-2.eva/metrics.log
diff --git a/cerberus/khmgzv-2.eva/nonterm.log b/cerberus/.frama-c/khmgzv-2.eva/nonterm.log
similarity index 100%
rename from cerberus/khmgzv-2.eva/nonterm.log
rename to cerberus/.frama-c/khmgzv-2.eva/nonterm.log
diff --git a/cerberus/khmgzv-2.eva/warnings.log b/cerberus/.frama-c/khmgzv-2.eva/warnings.log
similarity index 100%
rename from cerberus/khmgzv-2.eva/warnings.log
rename to cerberus/.frama-c/khmgzv-2.eva/warnings.log
diff --git a/cerberus/khmgzv-2.parse/framac.ast b/cerberus/.frama-c/khmgzv-2.parse/framac.ast
similarity index 100%
rename from cerberus/khmgzv-2.parse/framac.ast
rename to cerberus/.frama-c/khmgzv-2.parse/framac.ast
diff --git a/cerberus/khmgzv-2.parse/metrics.log b/cerberus/.frama-c/khmgzv-2.parse/metrics.log
similarity index 100%
rename from cerberus/khmgzv-2.parse/metrics.log
rename to cerberus/.frama-c/khmgzv-2.parse/metrics.log
diff --git a/cerberus/khmgzv-2.parse/warnings.log b/cerberus/.frama-c/khmgzv-2.parse/warnings.log
similarity index 100%
rename from cerberus/khmgzv-2.parse/warnings.log
rename to cerberus/.frama-c/khmgzv-2.parse/warnings.log
diff --git a/cerberus/klw-itp14-1.eva/alarms.csv b/cerberus/.frama-c/klw-itp14-1.eva/alarms.csv
similarity index 100%
rename from cerberus/klw-itp14-1.eva/alarms.csv
rename to cerberus/.frama-c/klw-itp14-1.eva/alarms.csv
diff --git a/cerberus/klw-itp14-1.eva/metrics.log b/cerberus/.frama-c/klw-itp14-1.eva/metrics.log
similarity index 100%
rename from cerberus/klw-itp14-1.eva/metrics.log
rename to cerberus/.frama-c/klw-itp14-1.eva/metrics.log
diff --git a/cerberus/klw-itp14-1.eva/nonterm.log b/cerberus/.frama-c/klw-itp14-1.eva/nonterm.log
similarity index 100%
rename from cerberus/klw-itp14-1.eva/nonterm.log
rename to cerberus/.frama-c/klw-itp14-1.eva/nonterm.log
diff --git a/cerberus/klw-itp14-1.eva/warnings.log b/cerberus/.frama-c/klw-itp14-1.eva/warnings.log
similarity index 100%
rename from cerberus/klw-itp14-1.eva/warnings.log
rename to cerberus/.frama-c/klw-itp14-1.eva/warnings.log
diff --git a/cerberus/klw-itp14-1.parse/framac.ast b/cerberus/.frama-c/klw-itp14-1.parse/framac.ast
similarity index 100%
rename from cerberus/klw-itp14-1.parse/framac.ast
rename to cerberus/.frama-c/klw-itp14-1.parse/framac.ast
diff --git a/cerberus/klw-itp14-1.parse/metrics.log b/cerberus/.frama-c/klw-itp14-1.parse/metrics.log
similarity index 100%
rename from cerberus/klw-itp14-1.parse/metrics.log
rename to cerberus/.frama-c/klw-itp14-1.parse/metrics.log
diff --git a/cerberus/klw-itp14-1.parse/warnings.log b/cerberus/.frama-c/klw-itp14-1.parse/warnings.log
similarity index 100%
rename from cerberus/klw-itp14-1.parse/warnings.log
rename to cerberus/.frama-c/klw-itp14-1.parse/warnings.log
diff --git a/cerberus/klw-itp14-2.eva/alarms.csv b/cerberus/.frama-c/klw-itp14-2.eva/alarms.csv
similarity index 100%
rename from cerberus/klw-itp14-2.eva/alarms.csv
rename to cerberus/.frama-c/klw-itp14-2.eva/alarms.csv
diff --git a/cerberus/klw-itp14-2.eva/metrics.log b/cerberus/.frama-c/klw-itp14-2.eva/metrics.log
similarity index 100%
rename from cerberus/klw-itp14-2.eva/metrics.log
rename to cerberus/.frama-c/klw-itp14-2.eva/metrics.log
diff --git a/cerberus/klw-itp14-2.eva/nonterm.log b/cerberus/.frama-c/klw-itp14-2.eva/nonterm.log
similarity index 100%
rename from cerberus/klw-itp14-2.eva/nonterm.log
rename to cerberus/.frama-c/klw-itp14-2.eva/nonterm.log
diff --git a/cerberus/klw-itp14-2.eva/warnings.log b/cerberus/.frama-c/klw-itp14-2.eva/warnings.log
similarity index 100%
rename from cerberus/klw-itp14-2.eva/warnings.log
rename to cerberus/.frama-c/klw-itp14-2.eva/warnings.log
diff --git a/cerberus/klw-itp14-2.parse/framac.ast b/cerberus/.frama-c/klw-itp14-2.parse/framac.ast
similarity index 100%
rename from cerberus/klw-itp14-2.parse/framac.ast
rename to cerberus/.frama-c/klw-itp14-2.parse/framac.ast
diff --git a/cerberus/klw-itp14-2.parse/metrics.log b/cerberus/.frama-c/klw-itp14-2.parse/metrics.log
similarity index 100%
rename from cerberus/klw-itp14-2.parse/metrics.log
rename to cerberus/.frama-c/klw-itp14-2.parse/metrics.log
diff --git a/cerberus/klw-itp14-2.parse/warnings.log b/cerberus/.frama-c/klw-itp14-2.parse/warnings.log
similarity index 100%
rename from cerberus/klw-itp14-2.parse/warnings.log
rename to cerberus/.frama-c/klw-itp14-2.parse/warnings.log
diff --git a/cerberus/krebbers_biener_1.eva/alarms.csv b/cerberus/.frama-c/krebbers_biener_1.eva/alarms.csv
similarity index 100%
rename from cerberus/krebbers_biener_1.eva/alarms.csv
rename to cerberus/.frama-c/krebbers_biener_1.eva/alarms.csv
diff --git a/cerberus/krebbers_biener_1.eva/metrics.log b/cerberus/.frama-c/krebbers_biener_1.eva/metrics.log
similarity index 100%
rename from cerberus/krebbers_biener_1.eva/metrics.log
rename to cerberus/.frama-c/krebbers_biener_1.eva/metrics.log
diff --git a/cerberus/krebbers_biener_1.eva/nonterm.log b/cerberus/.frama-c/krebbers_biener_1.eva/nonterm.log
similarity index 100%
rename from cerberus/krebbers_biener_1.eva/nonterm.log
rename to cerberus/.frama-c/krebbers_biener_1.eva/nonterm.log
diff --git a/cerberus/krebbers_biener_1.eva/warnings.log b/cerberus/.frama-c/krebbers_biener_1.eva/warnings.log
similarity index 100%
rename from cerberus/krebbers_biener_1.eva/warnings.log
rename to cerberus/.frama-c/krebbers_biener_1.eva/warnings.log
diff --git a/cerberus/krebbers_biener_1.parse/framac.ast b/cerberus/.frama-c/krebbers_biener_1.parse/framac.ast
similarity index 100%
rename from cerberus/krebbers_biener_1.parse/framac.ast
rename to cerberus/.frama-c/krebbers_biener_1.parse/framac.ast
diff --git a/cerberus/krebbers_biener_1.parse/metrics.log b/cerberus/.frama-c/krebbers_biener_1.parse/metrics.log
similarity index 100%
rename from cerberus/krebbers_biener_1.parse/metrics.log
rename to cerberus/.frama-c/krebbers_biener_1.parse/metrics.log
diff --git a/cerberus/krebbers_biener_1.parse/warnings.log b/cerberus/.frama-c/krebbers_biener_1.parse/warnings.log
similarity index 100%
rename from cerberus/krebbers_biener_1.parse/warnings.log
rename to cerberus/.frama-c/krebbers_biener_1.parse/warnings.log
diff --git a/cerberus/null_pointer_1.eva/alarms.csv b/cerberus/.frama-c/null_pointer_1.eva/alarms.csv
similarity index 100%
rename from cerberus/null_pointer_1.eva/alarms.csv
rename to cerberus/.frama-c/null_pointer_1.eva/alarms.csv
diff --git a/cerberus/null_pointer_1.eva/metrics.log b/cerberus/.frama-c/null_pointer_1.eva/metrics.log
similarity index 100%
rename from cerberus/null_pointer_1.eva/metrics.log
rename to cerberus/.frama-c/null_pointer_1.eva/metrics.log
diff --git a/cerberus/null_pointer_1.eva/nonterm.log b/cerberus/.frama-c/null_pointer_1.eva/nonterm.log
similarity index 100%
rename from cerberus/null_pointer_1.eva/nonterm.log
rename to cerberus/.frama-c/null_pointer_1.eva/nonterm.log
diff --git a/cerberus/null_pointer_1.eva/warnings.log b/cerberus/.frama-c/null_pointer_1.eva/warnings.log
similarity index 100%
rename from cerberus/null_pointer_1.eva/warnings.log
rename to cerberus/.frama-c/null_pointer_1.eva/warnings.log
diff --git a/cerberus/null_pointer_1.parse/framac.ast b/cerberus/.frama-c/null_pointer_1.parse/framac.ast
similarity index 100%
rename from cerberus/null_pointer_1.parse/framac.ast
rename to cerberus/.frama-c/null_pointer_1.parse/framac.ast
diff --git a/cerberus/null_pointer_1.parse/metrics.log b/cerberus/.frama-c/null_pointer_1.parse/metrics.log
similarity index 100%
rename from cerberus/null_pointer_1.parse/metrics.log
rename to cerberus/.frama-c/null_pointer_1.parse/metrics.log
diff --git a/cerberus/null_pointer_1.parse/warnings.log b/cerberus/.frama-c/null_pointer_1.parse/warnings.log
similarity index 100%
rename from cerberus/null_pointer_1.parse/warnings.log
rename to cerberus/.frama-c/null_pointer_1.parse/warnings.log
diff --git a/cerberus/null_pointer_2.eva/alarms.csv b/cerberus/.frama-c/null_pointer_2.eva/alarms.csv
similarity index 100%
rename from cerberus/null_pointer_2.eva/alarms.csv
rename to cerberus/.frama-c/null_pointer_2.eva/alarms.csv
diff --git a/cerberus/null_pointer_2.eva/metrics.log b/cerberus/.frama-c/null_pointer_2.eva/metrics.log
similarity index 100%
rename from cerberus/null_pointer_2.eva/metrics.log
rename to cerberus/.frama-c/null_pointer_2.eva/metrics.log
diff --git a/cerberus/null_pointer_2.eva/nonterm.log b/cerberus/.frama-c/null_pointer_2.eva/nonterm.log
similarity index 100%
rename from cerberus/null_pointer_2.eva/nonterm.log
rename to cerberus/.frama-c/null_pointer_2.eva/nonterm.log
diff --git a/cerberus/null_pointer_2.eva/warnings.log b/cerberus/.frama-c/null_pointer_2.eva/warnings.log
similarity index 100%
rename from cerberus/null_pointer_2.eva/warnings.log
rename to cerberus/.frama-c/null_pointer_2.eva/warnings.log
diff --git a/cerberus/null_pointer_2.parse/framac.ast b/cerberus/.frama-c/null_pointer_2.parse/framac.ast
similarity index 100%
rename from cerberus/null_pointer_2.parse/framac.ast
rename to cerberus/.frama-c/null_pointer_2.parse/framac.ast
diff --git a/cerberus/null_pointer_2.parse/metrics.log b/cerberus/.frama-c/null_pointer_2.parse/metrics.log
similarity index 100%
rename from cerberus/null_pointer_2.parse/metrics.log
rename to cerberus/.frama-c/null_pointer_2.parse/metrics.log
diff --git a/cerberus/null_pointer_2.parse/warnings.log b/cerberus/.frama-c/null_pointer_2.parse/warnings.log
similarity index 100%
rename from cerberus/null_pointer_2.parse/warnings.log
rename to cerberus/.frama-c/null_pointer_2.parse/warnings.log
diff --git a/cerberus/null_pointer_3.eva/alarms.csv b/cerberus/.frama-c/null_pointer_3.eva/alarms.csv
similarity index 100%
rename from cerberus/null_pointer_3.eva/alarms.csv
rename to cerberus/.frama-c/null_pointer_3.eva/alarms.csv
diff --git a/cerberus/null_pointer_3.eva/metrics.log b/cerberus/.frama-c/null_pointer_3.eva/metrics.log
similarity index 100%
rename from cerberus/null_pointer_3.eva/metrics.log
rename to cerberus/.frama-c/null_pointer_3.eva/metrics.log
diff --git a/cerberus/null_pointer_3.eva/nonterm.log b/cerberus/.frama-c/null_pointer_3.eva/nonterm.log
similarity index 100%
rename from cerberus/null_pointer_3.eva/nonterm.log
rename to cerberus/.frama-c/null_pointer_3.eva/nonterm.log
diff --git a/cerberus/null_pointer_3.eva/warnings.log b/cerberus/.frama-c/null_pointer_3.eva/warnings.log
similarity index 100%
rename from cerberus/null_pointer_3.eva/warnings.log
rename to cerberus/.frama-c/null_pointer_3.eva/warnings.log
diff --git a/cerberus/null_pointer_3.parse/framac.ast b/cerberus/.frama-c/null_pointer_3.parse/framac.ast
similarity index 100%
rename from cerberus/null_pointer_3.parse/framac.ast
rename to cerberus/.frama-c/null_pointer_3.parse/framac.ast
diff --git a/cerberus/null_pointer_3.parse/metrics.log b/cerberus/.frama-c/null_pointer_3.parse/metrics.log
similarity index 100%
rename from cerberus/null_pointer_3.parse/metrics.log
rename to cerberus/.frama-c/null_pointer_3.parse/metrics.log
diff --git a/cerberus/null_pointer_3.parse/warnings.log b/cerberus/.frama-c/null_pointer_3.parse/warnings.log
similarity index 100%
rename from cerberus/null_pointer_3.parse/warnings.log
rename to cerberus/.frama-c/null_pointer_3.parse/warnings.log
diff --git a/cerberus/null_pointer_4.eva/alarms.csv b/cerberus/.frama-c/null_pointer_4.eva/alarms.csv
similarity index 100%
rename from cerberus/null_pointer_4.eva/alarms.csv
rename to cerberus/.frama-c/null_pointer_4.eva/alarms.csv
diff --git a/cerberus/null_pointer_4.eva/metrics.log b/cerberus/.frama-c/null_pointer_4.eva/metrics.log
similarity index 100%
rename from cerberus/null_pointer_4.eva/metrics.log
rename to cerberus/.frama-c/null_pointer_4.eva/metrics.log
diff --git a/cerberus/null_pointer_4.eva/nonterm.log b/cerberus/.frama-c/null_pointer_4.eva/nonterm.log
similarity index 100%
rename from cerberus/null_pointer_4.eva/nonterm.log
rename to cerberus/.frama-c/null_pointer_4.eva/nonterm.log
diff --git a/cerberus/.frama-c/null_pointer_4.eva/warnings.log b/cerberus/.frama-c/null_pointer_4.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15
--- /dev/null
+++ b/cerberus/.frama-c/null_pointer_4.eva/warnings.log
@@ -0,0 +1 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
diff --git a/cerberus/null_pointer_4.parse/framac.ast b/cerberus/.frama-c/null_pointer_4.parse/framac.ast
similarity index 100%
rename from cerberus/null_pointer_4.parse/framac.ast
rename to cerberus/.frama-c/null_pointer_4.parse/framac.ast
diff --git a/cerberus/null_pointer_4.parse/metrics.log b/cerberus/.frama-c/null_pointer_4.parse/metrics.log
similarity index 100%
rename from cerberus/null_pointer_4.parse/metrics.log
rename to cerberus/.frama-c/null_pointer_4.parse/metrics.log
diff --git a/cerberus/null_pointer_4.eva/warnings.log b/cerberus/.frama-c/null_pointer_4.parse/warnings.log
similarity index 100%
rename from cerberus/null_pointer_4.eva/warnings.log
rename to cerberus/.frama-c/null_pointer_4.parse/warnings.log
diff --git a/cerberus/padding_10.eva/alarms.csv b/cerberus/.frama-c/padding_10.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_10.eva/alarms.csv
rename to cerberus/.frama-c/padding_10.eva/alarms.csv
diff --git a/cerberus/padding_10.eva/metrics.log b/cerberus/.frama-c/padding_10.eva/metrics.log
similarity index 100%
rename from cerberus/padding_10.eva/metrics.log
rename to cerberus/.frama-c/padding_10.eva/metrics.log
diff --git a/cerberus/padding_10.eva/nonterm.log b/cerberus/.frama-c/padding_10.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_10.eva/nonterm.log
rename to cerberus/.frama-c/padding_10.eva/nonterm.log
diff --git a/cerberus/null_pointer_4.parse/warnings.log b/cerberus/.frama-c/padding_10.eva/warnings.log
similarity index 100%
rename from cerberus/null_pointer_4.parse/warnings.log
rename to cerberus/.frama-c/padding_10.eva/warnings.log
diff --git a/cerberus/padding_10.parse/framac.ast b/cerberus/.frama-c/padding_10.parse/framac.ast
similarity index 100%
rename from cerberus/padding_10.parse/framac.ast
rename to cerberus/.frama-c/padding_10.parse/framac.ast
diff --git a/cerberus/padding_10.parse/metrics.log b/cerberus/.frama-c/padding_10.parse/metrics.log
similarity index 100%
rename from cerberus/padding_10.parse/metrics.log
rename to cerberus/.frama-c/padding_10.parse/metrics.log
diff --git a/cerberus/padding_10.eva/warnings.log b/cerberus/.frama-c/padding_10.parse/warnings.log
similarity index 100%
rename from cerberus/padding_10.eva/warnings.log
rename to cerberus/.frama-c/padding_10.parse/warnings.log
diff --git a/cerberus/padding_struct_copy_1.eva/alarms.csv b/cerberus/.frama-c/padding_struct_copy_1.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_struct_copy_1.eva/alarms.csv
rename to cerberus/.frama-c/padding_struct_copy_1.eva/alarms.csv
diff --git a/cerberus/padding_struct_copy_1.eva/metrics.log b/cerberus/.frama-c/padding_struct_copy_1.eva/metrics.log
similarity index 100%
rename from cerberus/padding_struct_copy_1.eva/metrics.log
rename to cerberus/.frama-c/padding_struct_copy_1.eva/metrics.log
diff --git a/cerberus/padding_struct_copy_1.eva/nonterm.log b/cerberus/.frama-c/padding_struct_copy_1.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_struct_copy_1.eva/nonterm.log
rename to cerberus/.frama-c/padding_struct_copy_1.eva/nonterm.log
diff --git a/cerberus/padding_10.parse/warnings.log b/cerberus/.frama-c/padding_struct_copy_1.eva/warnings.log
similarity index 100%
rename from cerberus/padding_10.parse/warnings.log
rename to cerberus/.frama-c/padding_struct_copy_1.eva/warnings.log
diff --git a/cerberus/padding_struct_copy_1.parse/framac.ast b/cerberus/.frama-c/padding_struct_copy_1.parse/framac.ast
similarity index 100%
rename from cerberus/padding_struct_copy_1.parse/framac.ast
rename to cerberus/.frama-c/padding_struct_copy_1.parse/framac.ast
diff --git a/cerberus/padding_struct_copy_1.parse/metrics.log b/cerberus/.frama-c/padding_struct_copy_1.parse/metrics.log
similarity index 100%
rename from cerberus/padding_struct_copy_1.parse/metrics.log
rename to cerberus/.frama-c/padding_struct_copy_1.parse/metrics.log
diff --git a/cerberus/padding_struct_copy_1.parse/warnings.log b/cerberus/.frama-c/padding_struct_copy_1.parse/warnings.log
similarity index 100%
rename from cerberus/padding_struct_copy_1.parse/warnings.log
rename to cerberus/.frama-c/padding_struct_copy_1.parse/warnings.log
diff --git a/cerberus/padding_struct_copy_2.eva/alarms.csv b/cerberus/.frama-c/padding_struct_copy_2.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_struct_copy_2.eva/alarms.csv
rename to cerberus/.frama-c/padding_struct_copy_2.eva/alarms.csv
diff --git a/cerberus/padding_struct_copy_2.eva/metrics.log b/cerberus/.frama-c/padding_struct_copy_2.eva/metrics.log
similarity index 100%
rename from cerberus/padding_struct_copy_2.eva/metrics.log
rename to cerberus/.frama-c/padding_struct_copy_2.eva/metrics.log
diff --git a/cerberus/padding_struct_copy_2.eva/nonterm.log b/cerberus/.frama-c/padding_struct_copy_2.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_struct_copy_2.eva/nonterm.log
rename to cerberus/.frama-c/padding_struct_copy_2.eva/nonterm.log
diff --git a/cerberus/padding_struct_copy_1.eva/warnings.log b/cerberus/.frama-c/padding_struct_copy_2.eva/warnings.log
similarity index 100%
rename from cerberus/padding_struct_copy_1.eva/warnings.log
rename to cerberus/.frama-c/padding_struct_copy_2.eva/warnings.log
diff --git a/cerberus/padding_struct_copy_2.parse/framac.ast b/cerberus/.frama-c/padding_struct_copy_2.parse/framac.ast
similarity index 100%
rename from cerberus/padding_struct_copy_2.parse/framac.ast
rename to cerberus/.frama-c/padding_struct_copy_2.parse/framac.ast
diff --git a/cerberus/padding_struct_copy_2.parse/metrics.log b/cerberus/.frama-c/padding_struct_copy_2.parse/metrics.log
similarity index 100%
rename from cerberus/padding_struct_copy_2.parse/metrics.log
rename to cerberus/.frama-c/padding_struct_copy_2.parse/metrics.log
diff --git a/cerberus/padding_struct_copy_2.parse/warnings.log b/cerberus/.frama-c/padding_struct_copy_2.parse/warnings.log
similarity index 100%
rename from cerberus/padding_struct_copy_2.parse/warnings.log
rename to cerberus/.frama-c/padding_struct_copy_2.parse/warnings.log
diff --git a/cerberus/padding_struct_copy_3.eva/alarms.csv b/cerberus/.frama-c/padding_struct_copy_3.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_struct_copy_3.eva/alarms.csv
rename to cerberus/.frama-c/padding_struct_copy_3.eva/alarms.csv
diff --git a/cerberus/padding_struct_copy_3.eva/metrics.log b/cerberus/.frama-c/padding_struct_copy_3.eva/metrics.log
similarity index 100%
rename from cerberus/padding_struct_copy_3.eva/metrics.log
rename to cerberus/.frama-c/padding_struct_copy_3.eva/metrics.log
diff --git a/cerberus/padding_struct_copy_3.eva/nonterm.log b/cerberus/.frama-c/padding_struct_copy_3.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_struct_copy_3.eva/nonterm.log
rename to cerberus/.frama-c/padding_struct_copy_3.eva/nonterm.log
diff --git a/cerberus/padding_struct_copy_2.eva/warnings.log b/cerberus/.frama-c/padding_struct_copy_3.eva/warnings.log
similarity index 100%
rename from cerberus/padding_struct_copy_2.eva/warnings.log
rename to cerberus/.frama-c/padding_struct_copy_3.eva/warnings.log
diff --git a/cerberus/padding_struct_copy_3.parse/framac.ast b/cerberus/.frama-c/padding_struct_copy_3.parse/framac.ast
similarity index 100%
rename from cerberus/padding_struct_copy_3.parse/framac.ast
rename to cerberus/.frama-c/padding_struct_copy_3.parse/framac.ast
diff --git a/cerberus/padding_struct_copy_3.parse/metrics.log b/cerberus/.frama-c/padding_struct_copy_3.parse/metrics.log
similarity index 100%
rename from cerberus/padding_struct_copy_3.parse/metrics.log
rename to cerberus/.frama-c/padding_struct_copy_3.parse/metrics.log
diff --git a/cerberus/padding_struct_copy_3.parse/warnings.log b/cerberus/.frama-c/padding_struct_copy_3.parse/warnings.log
similarity index 100%
rename from cerberus/padding_struct_copy_3.parse/warnings.log
rename to cerberus/.frama-c/padding_struct_copy_3.parse/warnings.log
diff --git a/cerberus/padding_struct_copy_of_representation_bytes.eva/alarms.csv b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_struct_copy_of_representation_bytes.eva/alarms.csv
rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/alarms.csv
diff --git a/cerberus/padding_struct_copy_of_representation_bytes.eva/metrics.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/metrics.log
similarity index 100%
rename from cerberus/padding_struct_copy_of_representation_bytes.eva/metrics.log
rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/metrics.log
diff --git a/cerberus/padding_struct_copy_of_representation_bytes.eva/nonterm.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_struct_copy_of_representation_bytes.eva/nonterm.log
rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/nonterm.log
diff --git a/cerberus/padding_struct_copy_3.eva/warnings.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/warnings.log
similarity index 100%
rename from cerberus/padding_struct_copy_3.eva/warnings.log
rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.eva/warnings.log
diff --git a/cerberus/padding_struct_copy_of_representation_bytes.parse/framac.ast b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/framac.ast
similarity index 100%
rename from cerberus/padding_struct_copy_of_representation_bytes.parse/framac.ast
rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/framac.ast
diff --git a/cerberus/padding_struct_copy_of_representation_bytes.parse/metrics.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/metrics.log
similarity index 100%
rename from cerberus/padding_struct_copy_of_representation_bytes.parse/metrics.log
rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/metrics.log
diff --git a/cerberus/padding_struct_copy_of_representation_bytes.eva/warnings.log b/cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/warnings.log
similarity index 100%
rename from cerberus/padding_struct_copy_of_representation_bytes.eva/warnings.log
rename to cerberus/.frama-c/padding_struct_copy_of_representation_bytes.parse/warnings.log
diff --git a/cerberus/padding_struct_members_copy.eva/alarms.csv b/cerberus/.frama-c/padding_struct_members_copy.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_struct_members_copy.eva/alarms.csv
rename to cerberus/.frama-c/padding_struct_members_copy.eva/alarms.csv
diff --git a/cerberus/padding_struct_members_copy.eva/metrics.log b/cerberus/.frama-c/padding_struct_members_copy.eva/metrics.log
similarity index 100%
rename from cerberus/padding_struct_members_copy.eva/metrics.log
rename to cerberus/.frama-c/padding_struct_members_copy.eva/metrics.log
diff --git a/cerberus/padding_struct_members_copy.eva/nonterm.log b/cerberus/.frama-c/padding_struct_members_copy.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_struct_members_copy.eva/nonterm.log
rename to cerberus/.frama-c/padding_struct_members_copy.eva/nonterm.log
diff --git a/cerberus/padding_struct_copy_of_representation_bytes.parse/warnings.log b/cerberus/.frama-c/padding_struct_members_copy.eva/warnings.log
similarity index 100%
rename from cerberus/padding_struct_copy_of_representation_bytes.parse/warnings.log
rename to cerberus/.frama-c/padding_struct_members_copy.eva/warnings.log
diff --git a/cerberus/padding_struct_members_copy.parse/framac.ast b/cerberus/.frama-c/padding_struct_members_copy.parse/framac.ast
similarity index 100%
rename from cerberus/padding_struct_members_copy.parse/framac.ast
rename to cerberus/.frama-c/padding_struct_members_copy.parse/framac.ast
diff --git a/cerberus/padding_struct_members_copy.parse/metrics.log b/cerberus/.frama-c/padding_struct_members_copy.parse/metrics.log
similarity index 100%
rename from cerberus/padding_struct_members_copy.parse/metrics.log
rename to cerberus/.frama-c/padding_struct_members_copy.parse/metrics.log
diff --git a/cerberus/padding_struct_members_copy.parse/warnings.log b/cerberus/.frama-c/padding_struct_members_copy.parse/warnings.log
similarity index 100%
rename from cerberus/padding_struct_members_copy.parse/warnings.log
rename to cerberus/.frama-c/padding_struct_members_copy.parse/warnings.log
diff --git a/cerberus/padding_subunion_1.eva/alarms.csv b/cerberus/.frama-c/padding_subunion_1.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_subunion_1.eva/alarms.csv
rename to cerberus/.frama-c/padding_subunion_1.eva/alarms.csv
diff --git a/cerberus/padding_subunion_1.eva/metrics.log b/cerberus/.frama-c/padding_subunion_1.eva/metrics.log
similarity index 100%
rename from cerberus/padding_subunion_1.eva/metrics.log
rename to cerberus/.frama-c/padding_subunion_1.eva/metrics.log
diff --git a/cerberus/padding_subunion_1.eva/nonterm.log b/cerberus/.frama-c/padding_subunion_1.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_subunion_1.eva/nonterm.log
rename to cerberus/.frama-c/padding_subunion_1.eva/nonterm.log
diff --git a/cerberus/padding_subunion_1.eva/warnings.log b/cerberus/.frama-c/padding_subunion_1.eva/warnings.log
similarity index 55%
rename from cerberus/padding_subunion_1.eva/warnings.log
rename to cerberus/.frama-c/padding_subunion_1.eva/warnings.log
index 77839f1a9108487f674a9d242623eb32de248314..6dd22532c71a7986c9d79f214e93808b3f2584a0 100644
--- a/cerberus/padding_subunion_1.eva/warnings.log
+++ b/cerberus/.frama-c/padding_subunion_1.eva/warnings.log
@@ -1,2 +1,3 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
 padding_subunion_1.c:7:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: main
diff --git a/cerberus/padding_subunion_1.parse/framac.ast b/cerberus/.frama-c/padding_subunion_1.parse/framac.ast
similarity index 100%
rename from cerberus/padding_subunion_1.parse/framac.ast
rename to cerberus/.frama-c/padding_subunion_1.parse/framac.ast
diff --git a/cerberus/padding_subunion_1.parse/metrics.log b/cerberus/.frama-c/padding_subunion_1.parse/metrics.log
similarity index 100%
rename from cerberus/padding_subunion_1.parse/metrics.log
rename to cerberus/.frama-c/padding_subunion_1.parse/metrics.log
diff --git a/cerberus/padding_subunion_1.parse/warnings.log b/cerberus/.frama-c/padding_subunion_1.parse/warnings.log
similarity index 100%
rename from cerberus/padding_subunion_1.parse/warnings.log
rename to cerberus/.frama-c/padding_subunion_1.parse/warnings.log
diff --git a/cerberus/padding_subunion_2.eva/alarms.csv b/cerberus/.frama-c/padding_subunion_2.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_subunion_2.eva/alarms.csv
rename to cerberus/.frama-c/padding_subunion_2.eva/alarms.csv
diff --git a/cerberus/padding_subunion_2.eva/metrics.log b/cerberus/.frama-c/padding_subunion_2.eva/metrics.log
similarity index 100%
rename from cerberus/padding_subunion_2.eva/metrics.log
rename to cerberus/.frama-c/padding_subunion_2.eva/metrics.log
diff --git a/cerberus/padding_subunion_2.eva/nonterm.log b/cerberus/.frama-c/padding_subunion_2.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_subunion_2.eva/nonterm.log
rename to cerberus/.frama-c/padding_subunion_2.eva/nonterm.log
diff --git a/cerberus/padding_subunion_2.eva/warnings.log b/cerberus/.frama-c/padding_subunion_2.eva/warnings.log
similarity index 100%
rename from cerberus/padding_subunion_2.eva/warnings.log
rename to cerberus/.frama-c/padding_subunion_2.eva/warnings.log
diff --git a/cerberus/padding_subunion_2.parse/framac.ast b/cerberus/.frama-c/padding_subunion_2.parse/framac.ast
similarity index 100%
rename from cerberus/padding_subunion_2.parse/framac.ast
rename to cerberus/.frama-c/padding_subunion_2.parse/framac.ast
diff --git a/cerberus/padding_subunion_2.parse/metrics.log b/cerberus/.frama-c/padding_subunion_2.parse/metrics.log
similarity index 100%
rename from cerberus/padding_subunion_2.parse/metrics.log
rename to cerberus/.frama-c/padding_subunion_2.parse/metrics.log
diff --git a/cerberus/padding_subunion_2.parse/warnings.log b/cerberus/.frama-c/padding_subunion_2.parse/warnings.log
similarity index 100%
rename from cerberus/padding_subunion_2.parse/warnings.log
rename to cerberus/.frama-c/padding_subunion_2.parse/warnings.log
diff --git a/cerberus/padding_unspecified_value_1.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_1.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_unspecified_value_1.eva/alarms.csv
rename to cerberus/.frama-c/padding_unspecified_value_1.eva/alarms.csv
diff --git a/cerberus/padding_unspecified_value_1.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_1.eva/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_1.eva/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_1.eva/metrics.log
diff --git a/cerberus/padding_unspecified_value_1.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_1.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_unspecified_value_1.eva/nonterm.log
rename to cerberus/.frama-c/padding_unspecified_value_1.eva/nonterm.log
diff --git a/cerberus/padding_struct_members_copy.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_1.eva/warnings.log
similarity index 100%
rename from cerberus/padding_struct_members_copy.eva/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_1.eva/warnings.log
diff --git a/cerberus/padding_unspecified_value_1.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_1.parse/framac.ast
similarity index 100%
rename from cerberus/padding_unspecified_value_1.parse/framac.ast
rename to cerberus/.frama-c/padding_unspecified_value_1.parse/framac.ast
diff --git a/cerberus/padding_unspecified_value_1.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_1.parse/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_1.parse/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_1.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_1.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_1.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_1.eva/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_1.parse/warnings.log
diff --git a/cerberus/padding_unspecified_value_2.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_2.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_unspecified_value_2.eva/alarms.csv
rename to cerberus/.frama-c/padding_unspecified_value_2.eva/alarms.csv
diff --git a/cerberus/padding_unspecified_value_2.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_2.eva/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_2.eva/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_2.eva/metrics.log
diff --git a/cerberus/padding_unspecified_value_2.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_2.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_unspecified_value_2.eva/nonterm.log
rename to cerberus/.frama-c/padding_unspecified_value_2.eva/nonterm.log
diff --git a/cerberus/padding_unspecified_value_1.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_2.eva/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_1.parse/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_2.eva/warnings.log
diff --git a/cerberus/padding_unspecified_value_2.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_2.parse/framac.ast
similarity index 100%
rename from cerberus/padding_unspecified_value_2.parse/framac.ast
rename to cerberus/.frama-c/padding_unspecified_value_2.parse/framac.ast
diff --git a/cerberus/padding_unspecified_value_2.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_2.parse/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_2.parse/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_2.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_2.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_2.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_2.parse/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_2.parse/warnings.log
diff --git a/cerberus/padding_unspecified_value_3.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_3.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_unspecified_value_3.eva/alarms.csv
rename to cerberus/.frama-c/padding_unspecified_value_3.eva/alarms.csv
diff --git a/cerberus/padding_unspecified_value_3.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_3.eva/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_3.eva/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_3.eva/metrics.log
diff --git a/cerberus/padding_unspecified_value_3.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_3.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_unspecified_value_3.eva/nonterm.log
rename to cerberus/.frama-c/padding_unspecified_value_3.eva/nonterm.log
diff --git a/cerberus/padding_unspecified_value_2.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_3.eva/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_2.eva/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_3.eva/warnings.log
diff --git a/cerberus/padding_unspecified_value_3.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_3.parse/framac.ast
similarity index 100%
rename from cerberus/padding_unspecified_value_3.parse/framac.ast
rename to cerberus/.frama-c/padding_unspecified_value_3.parse/framac.ast
diff --git a/cerberus/padding_unspecified_value_3.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_3.parse/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_3.parse/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_3.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_3.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_3.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_3.parse/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_3.parse/warnings.log
diff --git a/cerberus/padding_unspecified_value_4.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_4.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_unspecified_value_4.eva/alarms.csv
rename to cerberus/.frama-c/padding_unspecified_value_4.eva/alarms.csv
diff --git a/cerberus/padding_unspecified_value_4.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_4.eva/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_4.eva/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_4.eva/metrics.log
diff --git a/cerberus/padding_unspecified_value_4.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_4.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_unspecified_value_4.eva/nonterm.log
rename to cerberus/.frama-c/padding_unspecified_value_4.eva/nonterm.log
diff --git a/cerberus/padding_unspecified_value_3.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_4.eva/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_3.eva/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_4.eva/warnings.log
diff --git a/cerberus/padding_unspecified_value_4.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_4.parse/framac.ast
similarity index 100%
rename from cerberus/padding_unspecified_value_4.parse/framac.ast
rename to cerberus/.frama-c/padding_unspecified_value_4.parse/framac.ast
diff --git a/cerberus/padding_unspecified_value_4.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_4.parse/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_4.parse/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_4.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_4.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_4.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_4.parse/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_4.parse/warnings.log
diff --git a/cerberus/padding_unspecified_value_5.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_5.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_unspecified_value_5.eva/alarms.csv
rename to cerberus/.frama-c/padding_unspecified_value_5.eva/alarms.csv
diff --git a/cerberus/padding_unspecified_value_5.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_5.eva/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_5.eva/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_5.eva/metrics.log
diff --git a/cerberus/padding_unspecified_value_5.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_5.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_unspecified_value_5.eva/nonterm.log
rename to cerberus/.frama-c/padding_unspecified_value_5.eva/nonterm.log
diff --git a/cerberus/.frama-c/padding_unspecified_value_5.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_5.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15
--- /dev/null
+++ b/cerberus/.frama-c/padding_unspecified_value_5.eva/warnings.log
@@ -0,0 +1 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
diff --git a/cerberus/padding_unspecified_value_5.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_5.parse/framac.ast
similarity index 100%
rename from cerberus/padding_unspecified_value_5.parse/framac.ast
rename to cerberus/.frama-c/padding_unspecified_value_5.parse/framac.ast
diff --git a/cerberus/padding_unspecified_value_5.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_5.parse/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_5.parse/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_5.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_4.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_5.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_4.eva/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_5.parse/warnings.log
diff --git a/cerberus/padding_unspecified_value_6.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_6.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_unspecified_value_6.eva/alarms.csv
rename to cerberus/.frama-c/padding_unspecified_value_6.eva/alarms.csv
diff --git a/cerberus/padding_unspecified_value_6.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_6.eva/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_6.eva/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_6.eva/metrics.log
diff --git a/cerberus/padding_unspecified_value_6.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_6.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_unspecified_value_6.eva/nonterm.log
rename to cerberus/.frama-c/padding_unspecified_value_6.eva/nonterm.log
diff --git a/cerberus/padding_unspecified_value_5.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_6.eva/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_5.eva/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_6.eva/warnings.log
diff --git a/cerberus/padding_unspecified_value_6.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_6.parse/framac.ast
similarity index 100%
rename from cerberus/padding_unspecified_value_6.parse/framac.ast
rename to cerberus/.frama-c/padding_unspecified_value_6.parse/framac.ast
diff --git a/cerberus/padding_unspecified_value_6.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_6.parse/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_6.parse/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_6.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_5.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_6.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_5.parse/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_6.parse/warnings.log
diff --git a/cerberus/padding_unspecified_value_7.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_7.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_unspecified_value_7.eva/alarms.csv
rename to cerberus/.frama-c/padding_unspecified_value_7.eva/alarms.csv
diff --git a/cerberus/padding_unspecified_value_7.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_7.eva/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_7.eva/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_7.eva/metrics.log
diff --git a/cerberus/padding_unspecified_value_7.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_7.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_unspecified_value_7.eva/nonterm.log
rename to cerberus/.frama-c/padding_unspecified_value_7.eva/nonterm.log
diff --git a/cerberus/padding_unspecified_value_6.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_7.eva/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_6.eva/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_7.eva/warnings.log
diff --git a/cerberus/padding_unspecified_value_7.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_7.parse/framac.ast
similarity index 100%
rename from cerberus/padding_unspecified_value_7.parse/framac.ast
rename to cerberus/.frama-c/padding_unspecified_value_7.parse/framac.ast
diff --git a/cerberus/padding_unspecified_value_7.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_7.parse/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_7.parse/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_7.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_6.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_7.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_6.parse/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_7.parse/warnings.log
diff --git a/cerberus/padding_unspecified_value_8.eva/alarms.csv b/cerberus/.frama-c/padding_unspecified_value_8.eva/alarms.csv
similarity index 100%
rename from cerberus/padding_unspecified_value_8.eva/alarms.csv
rename to cerberus/.frama-c/padding_unspecified_value_8.eva/alarms.csv
diff --git a/cerberus/padding_unspecified_value_8.eva/metrics.log b/cerberus/.frama-c/padding_unspecified_value_8.eva/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_8.eva/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_8.eva/metrics.log
diff --git a/cerberus/padding_unspecified_value_8.eva/nonterm.log b/cerberus/.frama-c/padding_unspecified_value_8.eva/nonterm.log
similarity index 100%
rename from cerberus/padding_unspecified_value_8.eva/nonterm.log
rename to cerberus/.frama-c/padding_unspecified_value_8.eva/nonterm.log
diff --git a/cerberus/padding_unspecified_value_7.eva/warnings.log b/cerberus/.frama-c/padding_unspecified_value_8.eva/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_7.eva/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_8.eva/warnings.log
diff --git a/cerberus/padding_unspecified_value_8.parse/framac.ast b/cerberus/.frama-c/padding_unspecified_value_8.parse/framac.ast
similarity index 100%
rename from cerberus/padding_unspecified_value_8.parse/framac.ast
rename to cerberus/.frama-c/padding_unspecified_value_8.parse/framac.ast
diff --git a/cerberus/padding_unspecified_value_8.parse/metrics.log b/cerberus/.frama-c/padding_unspecified_value_8.parse/metrics.log
similarity index 100%
rename from cerberus/padding_unspecified_value_8.parse/metrics.log
rename to cerberus/.frama-c/padding_unspecified_value_8.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_8.parse/warnings.log b/cerberus/.frama-c/padding_unspecified_value_8.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_8.parse/warnings.log
rename to cerberus/.frama-c/padding_unspecified_value_8.parse/warnings.log
diff --git a/cerberus/.frama-c/path.mk b/cerberus/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/cerberus/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/cerberus/pointer_add_wrap_1.eva/alarms.csv b/cerberus/.frama-c/pointer_add_wrap_1.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_add_wrap_1.eva/alarms.csv
rename to cerberus/.frama-c/pointer_add_wrap_1.eva/alarms.csv
diff --git a/cerberus/pointer_add_wrap_1.eva/metrics.log b/cerberus/.frama-c/pointer_add_wrap_1.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_add_wrap_1.eva/metrics.log
rename to cerberus/.frama-c/pointer_add_wrap_1.eva/metrics.log
diff --git a/cerberus/pointer_add_wrap_1.eva/nonterm.log b/cerberus/.frama-c/pointer_add_wrap_1.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_add_wrap_1.eva/nonterm.log
rename to cerberus/.frama-c/pointer_add_wrap_1.eva/nonterm.log
diff --git a/cerberus/pointer_add_wrap_1.eva/warnings.log b/cerberus/.frama-c/pointer_add_wrap_1.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_add_wrap_1.eva/warnings.log
rename to cerberus/.frama-c/pointer_add_wrap_1.eva/warnings.log
diff --git a/cerberus/pointer_add_wrap_1.parse/framac.ast b/cerberus/.frama-c/pointer_add_wrap_1.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_add_wrap_1.parse/framac.ast
rename to cerberus/.frama-c/pointer_add_wrap_1.parse/framac.ast
diff --git a/cerberus/pointer_add_wrap_1.parse/metrics.log b/cerberus/.frama-c/pointer_add_wrap_1.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_add_wrap_1.parse/metrics.log
rename to cerberus/.frama-c/pointer_add_wrap_1.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_7.parse/warnings.log b/cerberus/.frama-c/pointer_add_wrap_1.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_7.parse/warnings.log
rename to cerberus/.frama-c/pointer_add_wrap_1.parse/warnings.log
diff --git a/cerberus/pointer_add_wrap_2.eva/alarms.csv b/cerberus/.frama-c/pointer_add_wrap_2.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_add_wrap_2.eva/alarms.csv
rename to cerberus/.frama-c/pointer_add_wrap_2.eva/alarms.csv
diff --git a/cerberus/pointer_add_wrap_2.eva/metrics.log b/cerberus/.frama-c/pointer_add_wrap_2.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_add_wrap_2.eva/metrics.log
rename to cerberus/.frama-c/pointer_add_wrap_2.eva/metrics.log
diff --git a/cerberus/pointer_add_wrap_2.eva/nonterm.log b/cerberus/.frama-c/pointer_add_wrap_2.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_add_wrap_2.eva/nonterm.log
rename to cerberus/.frama-c/pointer_add_wrap_2.eva/nonterm.log
diff --git a/cerberus/pointer_add_wrap_2.eva/warnings.log b/cerberus/.frama-c/pointer_add_wrap_2.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_add_wrap_2.eva/warnings.log
rename to cerberus/.frama-c/pointer_add_wrap_2.eva/warnings.log
diff --git a/cerberus/pointer_add_wrap_2.parse/framac.ast b/cerberus/.frama-c/pointer_add_wrap_2.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_add_wrap_2.parse/framac.ast
rename to cerberus/.frama-c/pointer_add_wrap_2.parse/framac.ast
diff --git a/cerberus/pointer_add_wrap_2.parse/metrics.log b/cerberus/.frama-c/pointer_add_wrap_2.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_add_wrap_2.parse/metrics.log
rename to cerberus/.frama-c/pointer_add_wrap_2.parse/metrics.log
diff --git a/cerberus/pointer_add_wrap_2.parse/warnings.log b/cerberus/.frama-c/pointer_add_wrap_2.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_add_wrap_2.parse/warnings.log
rename to cerberus/.frama-c/pointer_add_wrap_2.parse/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_1_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/alarms.csv
diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_1_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_1_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/nonterm.log
diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_1_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.eva/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_1_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/framac.ast
diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_1_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/metrics.log
diff --git a/cerberus/padding_unspecified_value_8.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/warnings.log
similarity index 100%
rename from cerberus/padding_unspecified_value_8.eva/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_1_global.parse/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_auto.eva/alarms.csv
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/alarms.csv
diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_auto.eva/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_auto.eva/nonterm.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/nonterm.log
diff --git a/cerberus/pointer_add_wrap_1.parse/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_add_wrap_1.parse/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.eva/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_auto.parse/framac.ast
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/framac.ast
diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_auto.parse/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_1_global.parse/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_1_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_auto.parse/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/alarms.csv
diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/nonterm.log
diff --git a/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15
--- /dev/null
+++ b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.eva/warnings.log
@@ -0,0 +1 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/framac.ast
diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_auto.eva/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_2_global.parse/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_auto.eva/alarms.csv
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/alarms.csv
diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_auto.eva/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_auto.eva/nonterm.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/nonterm.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_auto.eva/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.eva/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_auto.parse/framac.ast
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/framac.ast
diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_auto.parse/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_auto.parse/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_auto.parse/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_auto.parse/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.eva/alarms.csv b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/alarms.csv
diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.eva/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.eva/nonterm.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/nonterm.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.eva/warnings.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.parse/framac.ast b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/framac.ast
diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.parse/metrics.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.eva/warnings.log b/cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_arith_algebraic_properties_3_global.parse/warnings.log
diff --git a/cerberus/pointer_comparison_7b.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_7b.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_7b.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_7b.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_7b.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_7b.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_7b.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_7b.eva/metrics.log
diff --git a/cerberus/pointer_comparison_7b.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_7b.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_7b.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_7b.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_7b.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_7b.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_7b.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_7b.eva/warnings.log
diff --git a/cerberus/pointer_comparison_7b.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_7b.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_7b.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_7b.parse/framac.ast
diff --git a/cerberus/pointer_comparison_7b.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_7b.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_7b.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_7b.parse/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_2_global.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_7b.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_2_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_7b.parse/warnings.log
diff --git a/cerberus/pointer_comparison_7c.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_7c.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_7c.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_7c.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_7c.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_7c.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_7c.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_7c.eva/metrics.log
diff --git a/cerberus/pointer_comparison_7c.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_7c.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_7c.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_7c.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_7c.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_7c.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_7c.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_7c.eva/warnings.log
diff --git a/cerberus/pointer_comparison_7c.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_7c.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_7c.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_7c.parse/framac.ast
diff --git a/cerberus/pointer_comparison_7c.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_7c.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_7c.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_7c.parse/metrics.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_auto.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_7c.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_auto.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_7c.parse/warnings.log
diff --git a/cerberus/pointer_comparison_eq_1_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_auto.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_eq_1_auto.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_auto.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/metrics.log
diff --git a/cerberus/pointer_comparison_eq_1_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_auto.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/nonterm.log
diff --git a/cerberus/pointer_arith_algebraic_properties_3_global.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_arith_algebraic_properties_3_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.eva/warnings.log
diff --git a/cerberus/pointer_comparison_eq_1_auto.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_auto.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/framac.ast
diff --git a/cerberus/pointer_comparison_eq_1_auto.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_auto.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/metrics.log
diff --git a/cerberus/pointer_comparison_7b.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_7b.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_auto.parse/warnings.log
diff --git a/cerberus/pointer_comparison_eq_1_global.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_1_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_eq_1_global.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_eq_1_global.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_global.eva/metrics.log
diff --git a/cerberus/pointer_comparison_eq_1_global.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_global.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_7c.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_7c.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_global.eva/warnings.log
diff --git a/cerberus/pointer_comparison_eq_1_global.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_1_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_eq_1_global.parse/framac.ast
diff --git a/cerberus/pointer_comparison_eq_1_global.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_global.parse/metrics.log
diff --git a/cerberus/pointer_comparison_eq_1_auto.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_1_global.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_auto.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_1_global.parse/warnings.log
diff --git a/cerberus/pointer_comparison_eq_2_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_auto.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_eq_2_auto.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_auto.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/metrics.log
diff --git a/cerberus/pointer_comparison_eq_2_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_auto.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_eq_1_auto.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_auto.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.eva/warnings.log
diff --git a/cerberus/pointer_comparison_eq_2_auto.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_auto.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/framac.ast
diff --git a/cerberus/pointer_comparison_eq_2_auto.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_auto.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/metrics.log
diff --git a/cerberus/pointer_comparison_eq_1_global.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_auto.parse/warnings.log
diff --git a/cerberus/pointer_comparison_eq_2_global.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_2_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_eq_2_global.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_eq_2_global.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_global.eva/metrics.log
diff --git a/cerberus/pointer_comparison_eq_2_global.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_global.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_eq_1_global.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_1_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_global.eva/warnings.log
diff --git a/cerberus/pointer_comparison_eq_2_global.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_2_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_eq_2_global.parse/framac.ast
diff --git a/cerberus/pointer_comparison_eq_2_global.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_global.parse/metrics.log
diff --git a/cerberus/pointer_comparison_eq_2_auto.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_2_global.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_auto.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_2_global.parse/warnings.log
diff --git a/cerberus/pointer_comparison_eq_zombie_1.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_1.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_eq_zombie_1.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_1.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/metrics.log
diff --git a/cerberus/pointer_comparison_eq_zombie_1.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_1.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_eq_zombie_1.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_1.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.eva/warnings.log
diff --git a/cerberus/pointer_comparison_eq_zombie_1.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_1.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/framac.ast
diff --git a/cerberus/pointer_comparison_eq_zombie_1.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_1.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/metrics.log
diff --git a/cerberus/pointer_comparison_eq_2_auto.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_auto.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_1.parse/warnings.log
diff --git a/cerberus/pointer_comparison_eq_zombie_2.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_2.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_eq_zombie_2.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_2.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/metrics.log
diff --git a/cerberus/pointer_comparison_eq_zombie_2.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_2.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_eq_zombie_2.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_2.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.eva/warnings.log
diff --git a/cerberus/pointer_comparison_eq_zombie_2.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_2.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/framac.ast
diff --git a/cerberus/pointer_comparison_eq_zombie_2.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_2.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/metrics.log
diff --git a/cerberus/pointer_comparison_eq_2_global.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_eq_zombie_2.parse/warnings.log
diff --git a/cerberus/pointer_comparison_rel_1_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_auto.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_rel_1_auto.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_auto.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/metrics.log
diff --git a/cerberus/pointer_comparison_rel_1_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_auto.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_rel_1_auto.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_auto.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.eva/warnings.log
diff --git a/cerberus/pointer_comparison_rel_1_auto.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_auto.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/framac.ast
diff --git a/cerberus/pointer_comparison_rel_1_auto.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_auto.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/metrics.log
diff --git a/cerberus/pointer_comparison_eq_2_global.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_2_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_auto.parse/warnings.log
diff --git a/cerberus/pointer_comparison_rel_1_global.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_rel_1_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_rel_1_global.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_rel_1_global.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_global.eva/metrics.log
diff --git a/cerberus/pointer_comparison_rel_1_global.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_global.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_rel_1_global.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_global.eva/warnings.log
diff --git a/cerberus/pointer_comparison_rel_1_global.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_rel_1_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_rel_1_global.parse/framac.ast
diff --git a/cerberus/pointer_comparison_rel_1_global.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_global.parse/metrics.log
diff --git a/cerberus/pointer_comparison_eq_zombie_1.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_1_global.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_1.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_rel_1_global.parse/warnings.log
diff --git a/cerberus/pointer_comparison_rel_different_type_members.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_rel_different_type_members.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_rel_different_type_members.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_different_type_members.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/metrics.log
diff --git a/cerberus/pointer_comparison_rel_different_type_members.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_different_type_members.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_rel_different_type_members.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_different_type_members.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.eva/warnings.log
diff --git a/cerberus/pointer_comparison_rel_different_type_members.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_rel_different_type_members.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/framac.ast
diff --git a/cerberus/pointer_comparison_rel_different_type_members.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_different_type_members.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/metrics.log
diff --git a/cerberus/pointer_comparison_eq_zombie_2.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_eq_zombie_2.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_rel_different_type_members.parse/warnings.log
diff --git a/cerberus/pointer_comparison_rel_substruct.eva/alarms.csv b/cerberus/.frama-c/pointer_comparison_rel_substruct.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_comparison_rel_substruct.eva/alarms.csv
rename to cerberus/.frama-c/pointer_comparison_rel_substruct.eva/alarms.csv
diff --git a/cerberus/pointer_comparison_rel_substruct.eva/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_substruct.eva/metrics.log
rename to cerberus/.frama-c/pointer_comparison_rel_substruct.eva/metrics.log
diff --git a/cerberus/pointer_comparison_rel_substruct.eva/nonterm.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_substruct.eva/nonterm.log
rename to cerberus/.frama-c/pointer_comparison_rel_substruct.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_rel_substruct.eva/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_substruct.eva/warnings.log
rename to cerberus/.frama-c/pointer_comparison_rel_substruct.eva/warnings.log
diff --git a/cerberus/pointer_comparison_rel_substruct.parse/framac.ast b/cerberus/.frama-c/pointer_comparison_rel_substruct.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_comparison_rel_substruct.parse/framac.ast
rename to cerberus/.frama-c/pointer_comparison_rel_substruct.parse/framac.ast
diff --git a/cerberus/pointer_comparison_rel_substruct.parse/metrics.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_substruct.parse/metrics.log
rename to cerberus/.frama-c/pointer_comparison_rel_substruct.parse/metrics.log
diff --git a/cerberus/pointer_comparison_rel_1_auto.parse/warnings.log b/cerberus/.frama-c/pointer_comparison_rel_substruct.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_auto.parse/warnings.log
rename to cerberus/.frama-c/pointer_comparison_rel_substruct.parse/warnings.log
diff --git a/cerberus/pointer_copy_memcpy.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_memcpy.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_copy_memcpy.eva/alarms.csv
rename to cerberus/.frama-c/pointer_copy_memcpy.eva/alarms.csv
diff --git a/cerberus/pointer_copy_memcpy.eva/metrics.log b/cerberus/.frama-c/pointer_copy_memcpy.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_memcpy.eva/metrics.log
rename to cerberus/.frama-c/pointer_copy_memcpy.eva/metrics.log
diff --git a/cerberus/pointer_copy_memcpy.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_memcpy.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_copy_memcpy.eva/nonterm.log
rename to cerberus/.frama-c/pointer_copy_memcpy.eva/nonterm.log
diff --git a/cerberus/pointer_comparison_rel_1_global.parse/warnings.log b/cerberus/.frama-c/pointer_copy_memcpy.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_1_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_copy_memcpy.eva/warnings.log
diff --git a/cerberus/pointer_copy_memcpy.parse/framac.ast b/cerberus/.frama-c/pointer_copy_memcpy.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_copy_memcpy.parse/framac.ast
rename to cerberus/.frama-c/pointer_copy_memcpy.parse/framac.ast
diff --git a/cerberus/pointer_copy_memcpy.parse/metrics.log b/cerberus/.frama-c/pointer_copy_memcpy.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_memcpy.parse/metrics.log
rename to cerberus/.frama-c/pointer_copy_memcpy.parse/metrics.log
diff --git a/cerberus/pointer_comparison_rel_different_type_members.parse/warnings.log b/cerberus/.frama-c/pointer_copy_memcpy.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_different_type_members.parse/warnings.log
rename to cerberus/.frama-c/pointer_copy_memcpy.parse/warnings.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bitwise.eva/alarms.csv
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/alarms.csv
diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bitwise.eva/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/metrics.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bitwise.eva/nonterm.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/nonterm.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bitwise.eva/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.eva/warnings.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bitwise.parse/framac.ast
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/framac.ast
diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bitwise.parse/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/metrics.log
diff --git a/cerberus/pointer_comparison_rel_substruct.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_comparison_rel_substruct.parse/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bitwise.parse/warnings.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise.eva/alarms.csv
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/alarms.csv
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise.eva/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/metrics.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise.eva/nonterm.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/nonterm.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise.eva/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.eva/warnings.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise.parse/framac.ast
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/framac.ast
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise.parse/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/metrics.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise.parse/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise.parse/warnings.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/alarms.csv
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/alarms.csv
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/metrics.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/nonterm.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/nonterm.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.eva/warnings.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/framac.ast
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/framac.ast
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/metrics.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_ctrlflow_bytewise_abbrev.parse/warnings.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/alarms.csv
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/alarms.csv
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/metrics.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/nonterm.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/nonterm.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.eva/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.eva/warnings.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/framac.ast
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/framac.ast
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/metrics.log
diff --git a/cerberus/pointer_copy_memcpy.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_memcpy.eva/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bitwise.parse/warnings.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/alarms.csv
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/alarms.csv
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/metrics.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/nonterm.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/nonterm.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.eva/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.eva/warnings.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/framac.ast
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/framac.ast
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/metrics.log
diff --git a/cerberus/pointer_copy_memcpy.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_memcpy.parse/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_direct_bytewise.parse/warnings.log
diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/alarms.csv b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/alarms.csv
rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/alarms.csv
diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/metrics.log
diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/nonterm.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/nonterm.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/nonterm.log
diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.eva/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.eva/warnings.log
diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/framac.ast b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/framac.ast
rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/framac.ast
diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/metrics.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/metrics.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/metrics.log
diff --git a/cerberus/pointer_copy_user_ctrlflow_bitwise.parse/warnings.log b/cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_ctrlflow_bitwise.parse/warnings.log
rename to cerberus/.frama-c/pointer_copy_user_dataflow_indirect_bytewise.parse/warnings.log
diff --git a/cerberus/pointer_from_concrete_address_1.eva/alarms.csv b/cerberus/.frama-c/pointer_from_concrete_address_1.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_from_concrete_address_1.eva/alarms.csv
rename to cerberus/.frama-c/pointer_from_concrete_address_1.eva/alarms.csv
diff --git a/cerberus/pointer_from_concrete_address_1.eva/metrics.log b/cerberus/.frama-c/pointer_from_concrete_address_1.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_1.eva/metrics.log
rename to cerberus/.frama-c/pointer_from_concrete_address_1.eva/metrics.log
diff --git a/cerberus/pointer_from_concrete_address_1.eva/nonterm.log b/cerberus/.frama-c/pointer_from_concrete_address_1.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_1.eva/nonterm.log
rename to cerberus/.frama-c/pointer_from_concrete_address_1.eva/nonterm.log
diff --git a/cerberus/pointer_from_concrete_address_1.eva/warnings.log b/cerberus/.frama-c/pointer_from_concrete_address_1.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_1.eva/warnings.log
rename to cerberus/.frama-c/pointer_from_concrete_address_1.eva/warnings.log
diff --git a/cerberus/pointer_from_concrete_address_1.parse/framac.ast b/cerberus/.frama-c/pointer_from_concrete_address_1.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_from_concrete_address_1.parse/framac.ast
rename to cerberus/.frama-c/pointer_from_concrete_address_1.parse/framac.ast
diff --git a/cerberus/pointer_from_concrete_address_1.parse/metrics.log b/cerberus/.frama-c/pointer_from_concrete_address_1.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_1.parse/metrics.log
rename to cerberus/.frama-c/pointer_from_concrete_address_1.parse/metrics.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/warnings.log b/cerberus/.frama-c/pointer_from_concrete_address_1.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bitwise.parse/warnings.log
rename to cerberus/.frama-c/pointer_from_concrete_address_1.parse/warnings.log
diff --git a/cerberus/pointer_from_concrete_address_2.eva/alarms.csv b/cerberus/.frama-c/pointer_from_concrete_address_2.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_from_concrete_address_2.eva/alarms.csv
rename to cerberus/.frama-c/pointer_from_concrete_address_2.eva/alarms.csv
diff --git a/cerberus/pointer_from_concrete_address_2.eva/metrics.log b/cerberus/.frama-c/pointer_from_concrete_address_2.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_2.eva/metrics.log
rename to cerberus/.frama-c/pointer_from_concrete_address_2.eva/metrics.log
diff --git a/cerberus/pointer_from_concrete_address_2.eva/nonterm.log b/cerberus/.frama-c/pointer_from_concrete_address_2.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_2.eva/nonterm.log
rename to cerberus/.frama-c/pointer_from_concrete_address_2.eva/nonterm.log
diff --git a/cerberus/pointer_from_concrete_address_2.eva/warnings.log b/cerberus/.frama-c/pointer_from_concrete_address_2.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_2.eva/warnings.log
rename to cerberus/.frama-c/pointer_from_concrete_address_2.eva/warnings.log
diff --git a/cerberus/pointer_from_concrete_address_2.parse/framac.ast b/cerberus/.frama-c/pointer_from_concrete_address_2.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_from_concrete_address_2.parse/framac.ast
rename to cerberus/.frama-c/pointer_from_concrete_address_2.parse/framac.ast
diff --git a/cerberus/pointer_from_concrete_address_2.parse/metrics.log b/cerberus/.frama-c/pointer_from_concrete_address_2.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_2.parse/metrics.log
rename to cerberus/.frama-c/pointer_from_concrete_address_2.parse/metrics.log
diff --git a/cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/warnings.log b/cerberus/.frama-c/pointer_from_concrete_address_2.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_direct_bytewise.parse/warnings.log
rename to cerberus/.frama-c/pointer_from_concrete_address_2.parse/warnings.log
diff --git a/cerberus/pointer_offset_constant_8_malloc.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_offset_constant_8_malloc.eva/alarms.csv
rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/alarms.csv
diff --git a/cerberus/pointer_offset_constant_8_malloc.eva/metrics.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_constant_8_malloc.eva/metrics.log
rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/metrics.log
diff --git a/cerberus/pointer_offset_constant_8_malloc.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_offset_constant_8_malloc.eva/nonterm.log
rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/nonterm.log
diff --git a/cerberus/pointer_offset_constant_8_malloc.eva/warnings.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_constant_8_malloc.eva/warnings.log
rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.eva/warnings.log
diff --git a/cerberus/pointer_offset_constant_8_malloc.parse/framac.ast b/cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_offset_constant_8_malloc.parse/framac.ast
rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/framac.ast
diff --git a/cerberus/pointer_offset_constant_8_malloc.parse/metrics.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_constant_8_malloc.parse/metrics.log
rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/metrics.log
diff --git a/cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/warnings.log b/cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_copy_user_dataflow_indirect_bytewise.parse/warnings.log
rename to cerberus/.frama-c/pointer_offset_constant_8_malloc.parse/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_auto.eva/alarms.csv
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/alarms.csv
diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_auto.eva/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_auto.eva/nonterm.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/nonterm.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_auto.eva/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.eva/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_auto.parse/framac.ast
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/framac.ast
diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_auto.parse/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/metrics.log
diff --git a/cerberus/pointer_from_concrete_address_1.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_1.parse/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_auto.parse/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_global.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/alarms.csv
diff --git a/cerberus/pointer_offset_from_subtraction_1_global.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_global.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/nonterm.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_global.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.eva/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_global.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/framac.ast
diff --git a/cerberus/pointer_offset_from_subtraction_1_global.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/metrics.log
diff --git a/cerberus/pointer_from_concrete_address_2.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_from_concrete_address_2.parse/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_global.parse/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_malloc.eva/alarms.csv
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/alarms.csv
diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_malloc.eva/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_malloc.eva/nonterm.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/nonterm.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_malloc.eva/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.eva/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_malloc.parse/framac.ast
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/framac.ast
diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_malloc.parse/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/metrics.log
diff --git a/cerberus/pointer_offset_constant_8_malloc.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_constant_8_malloc.parse/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_1_malloc.parse/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_auto.eva/alarms.csv
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/alarms.csv
diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_auto.eva/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_auto.eva/nonterm.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/nonterm.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_auto.eva/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.eva/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_auto.parse/framac.ast
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/framac.ast
diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_auto.parse/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_auto.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_auto.parse/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_auto.parse/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_global.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/alarms.csv
diff --git a/cerberus/pointer_offset_from_subtraction_2_global.eva/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_global.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/nonterm.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_global.eva/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.eva/warnings.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_global.parse/framac.ast b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/framac.ast
diff --git a/cerberus/pointer_offset_from_subtraction_2_global.parse/metrics.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_global.parse/warnings.log b/cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_offset_from_subtraction_2_global.parse/warnings.log
diff --git a/cerberus/pointer_offset_xor_auto.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_xor_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_offset_xor_auto.eva/alarms.csv
rename to cerberus/.frama-c/pointer_offset_xor_auto.eva/alarms.csv
diff --git a/cerberus/pointer_offset_xor_auto.eva/metrics.log b/cerberus/.frama-c/pointer_offset_xor_auto.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_xor_auto.eva/metrics.log
rename to cerberus/.frama-c/pointer_offset_xor_auto.eva/metrics.log
diff --git a/cerberus/pointer_offset_xor_auto.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_xor_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_offset_xor_auto.eva/nonterm.log
rename to cerberus/.frama-c/pointer_offset_xor_auto.eva/nonterm.log
diff --git a/cerberus/pointer_offset_xor_auto.eva/warnings.log b/cerberus/.frama-c/pointer_offset_xor_auto.eva/warnings.log
similarity index 75%
rename from cerberus/pointer_offset_xor_auto.eva/warnings.log
rename to cerberus/.frama-c/pointer_offset_xor_auto.eva/warnings.log
index 5f466f9859c64c4e452025c954f69296a791c3f5..dd8bf5f199da158402c7d2d47e09dfa79688753e 100644
--- a/cerberus/pointer_offset_xor_auto.eva/warnings.log
+++ b/cerberus/.frama-c/pointer_offset_xor_auto.eva/warnings.log
@@ -1,3 +1,4 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
 [eva:garbled-mix] warning: Garbled mix generated during analysis:
 {{ garbled mix of &{y} (origin: Arithmetic {pointer_offset_xor_auto.c:7}) }}
 {{ garbled mix of &{x} (origin: Arithmetic {pointer_offset_xor_auto.c:7}) }}
diff --git a/cerberus/pointer_offset_xor_auto.parse/framac.ast b/cerberus/.frama-c/pointer_offset_xor_auto.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_offset_xor_auto.parse/framac.ast
rename to cerberus/.frama-c/pointer_offset_xor_auto.parse/framac.ast
diff --git a/cerberus/pointer_offset_xor_auto.parse/metrics.log b/cerberus/.frama-c/pointer_offset_xor_auto.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_xor_auto.parse/metrics.log
rename to cerberus/.frama-c/pointer_offset_xor_auto.parse/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_1_malloc.parse/warnings.log b/cerberus/.frama-c/pointer_offset_xor_auto.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_1_malloc.parse/warnings.log
rename to cerberus/.frama-c/pointer_offset_xor_auto.parse/warnings.log
diff --git a/cerberus/pointer_offset_xor_global.eva/alarms.csv b/cerberus/.frama-c/pointer_offset_xor_global.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_offset_xor_global.eva/alarms.csv
rename to cerberus/.frama-c/pointer_offset_xor_global.eva/alarms.csv
diff --git a/cerberus/pointer_offset_xor_global.eva/metrics.log b/cerberus/.frama-c/pointer_offset_xor_global.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_xor_global.eva/metrics.log
rename to cerberus/.frama-c/pointer_offset_xor_global.eva/metrics.log
diff --git a/cerberus/pointer_offset_xor_global.eva/nonterm.log b/cerberus/.frama-c/pointer_offset_xor_global.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_offset_xor_global.eva/nonterm.log
rename to cerberus/.frama-c/pointer_offset_xor_global.eva/nonterm.log
diff --git a/cerberus/pointer_offset_xor_global.eva/warnings.log b/cerberus/.frama-c/pointer_offset_xor_global.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_xor_global.eva/warnings.log
rename to cerberus/.frama-c/pointer_offset_xor_global.eva/warnings.log
diff --git a/cerberus/pointer_offset_xor_global.parse/framac.ast b/cerberus/.frama-c/pointer_offset_xor_global.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_offset_xor_global.parse/framac.ast
rename to cerberus/.frama-c/pointer_offset_xor_global.parse/framac.ast
diff --git a/cerberus/pointer_offset_xor_global.parse/metrics.log b/cerberus/.frama-c/pointer_offset_xor_global.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_offset_xor_global.parse/metrics.log
rename to cerberus/.frama-c/pointer_offset_xor_global.parse/metrics.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_auto.parse/warnings.log b/cerberus/.frama-c/pointer_offset_xor_global.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_auto.parse/warnings.log
rename to cerberus/.frama-c/pointer_offset_xor_global.parse/warnings.log
diff --git a/cerberus/pointer_stability_1.eva/alarms.csv b/cerberus/.frama-c/pointer_stability_1.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_stability_1.eva/alarms.csv
rename to cerberus/.frama-c/pointer_stability_1.eva/alarms.csv
diff --git a/cerberus/pointer_stability_1.eva/metrics.log b/cerberus/.frama-c/pointer_stability_1.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_stability_1.eva/metrics.log
rename to cerberus/.frama-c/pointer_stability_1.eva/metrics.log
diff --git a/cerberus/pointer_stability_1.eva/nonterm.log b/cerberus/.frama-c/pointer_stability_1.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_stability_1.eva/nonterm.log
rename to cerberus/.frama-c/pointer_stability_1.eva/nonterm.log
diff --git a/cerberus/pointer_offset_from_subtraction_2_global.parse/warnings.log b/cerberus/.frama-c/pointer_stability_1.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_from_subtraction_2_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_stability_1.eva/warnings.log
diff --git a/cerberus/pointer_stability_1.parse/framac.ast b/cerberus/.frama-c/pointer_stability_1.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_stability_1.parse/framac.ast
rename to cerberus/.frama-c/pointer_stability_1.parse/framac.ast
diff --git a/cerberus/pointer_stability_1.parse/metrics.log b/cerberus/.frama-c/pointer_stability_1.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_stability_1.parse/metrics.log
rename to cerberus/.frama-c/pointer_stability_1.parse/metrics.log
diff --git a/cerberus/pointer_offset_xor_auto.parse/warnings.log b/cerberus/.frama-c/pointer_stability_1.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_xor_auto.parse/warnings.log
rename to cerberus/.frama-c/pointer_stability_1.parse/warnings.log
diff --git a/cerberus/pointer_stability_2.eva/alarms.csv b/cerberus/.frama-c/pointer_stability_2.eva/alarms.csv
similarity index 100%
rename from cerberus/pointer_stability_2.eva/alarms.csv
rename to cerberus/.frama-c/pointer_stability_2.eva/alarms.csv
diff --git a/cerberus/pointer_stability_2.eva/metrics.log b/cerberus/.frama-c/pointer_stability_2.eva/metrics.log
similarity index 100%
rename from cerberus/pointer_stability_2.eva/metrics.log
rename to cerberus/.frama-c/pointer_stability_2.eva/metrics.log
diff --git a/cerberus/pointer_stability_2.eva/nonterm.log b/cerberus/.frama-c/pointer_stability_2.eva/nonterm.log
similarity index 100%
rename from cerberus/pointer_stability_2.eva/nonterm.log
rename to cerberus/.frama-c/pointer_stability_2.eva/nonterm.log
diff --git a/cerberus/pointer_offset_xor_global.parse/warnings.log b/cerberus/.frama-c/pointer_stability_2.eva/warnings.log
similarity index 100%
rename from cerberus/pointer_offset_xor_global.parse/warnings.log
rename to cerberus/.frama-c/pointer_stability_2.eva/warnings.log
diff --git a/cerberus/pointer_stability_2.parse/framac.ast b/cerberus/.frama-c/pointer_stability_2.parse/framac.ast
similarity index 100%
rename from cerberus/pointer_stability_2.parse/framac.ast
rename to cerberus/.frama-c/pointer_stability_2.parse/framac.ast
diff --git a/cerberus/pointer_stability_2.parse/metrics.log b/cerberus/.frama-c/pointer_stability_2.parse/metrics.log
similarity index 100%
rename from cerberus/pointer_stability_2.parse/metrics.log
rename to cerberus/.frama-c/pointer_stability_2.parse/metrics.log
diff --git a/cerberus/pointer_stability_1.eva/warnings.log b/cerberus/.frama-c/pointer_stability_2.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_stability_1.eva/warnings.log
rename to cerberus/.frama-c/pointer_stability_2.parse/warnings.log
diff --git a/cerberus/provenance_basic_auto_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_auto_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_auto_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_auto_xy.eva/alarms.csv
diff --git a/cerberus/provenance_basic_auto_xy.eva/metrics.log b/cerberus/.frama-c/provenance_basic_auto_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_auto_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_auto_xy.eva/metrics.log
diff --git a/cerberus/provenance_basic_auto_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_auto_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_auto_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_auto_xy.eva/nonterm.log
diff --git a/cerberus/provenance_basic_auto_xy.eva/warnings.log b/cerberus/.frama-c/provenance_basic_auto_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_auto_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_auto_xy.eva/warnings.log
diff --git a/cerberus/provenance_basic_auto_xy.parse/framac.ast b/cerberus/.frama-c/provenance_basic_auto_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_auto_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_auto_xy.parse/framac.ast
diff --git a/cerberus/provenance_basic_auto_xy.parse/metrics.log b/cerberus/.frama-c/provenance_basic_auto_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_auto_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_auto_xy.parse/metrics.log
diff --git a/cerberus/pointer_stability_1.parse/warnings.log b/cerberus/.frama-c/provenance_basic_auto_xy.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_stability_1.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_auto_xy.parse/warnings.log
diff --git a/cerberus/provenance_basic_auto_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_auto_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_auto_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_auto_yx.eva/alarms.csv
diff --git a/cerberus/provenance_basic_auto_yx.eva/metrics.log b/cerberus/.frama-c/provenance_basic_auto_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_auto_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_auto_yx.eva/metrics.log
diff --git a/cerberus/provenance_basic_auto_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_auto_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_auto_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_auto_yx.eva/nonterm.log
diff --git a/cerberus/provenance_basic_auto_yx.eva/warnings.log b/cerberus/.frama-c/provenance_basic_auto_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_auto_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_auto_yx.eva/warnings.log
diff --git a/cerberus/provenance_basic_auto_yx.parse/framac.ast b/cerberus/.frama-c/provenance_basic_auto_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_auto_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_auto_yx.parse/framac.ast
diff --git a/cerberus/provenance_basic_auto_yx.parse/metrics.log b/cerberus/.frama-c/provenance_basic_auto_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_auto_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_auto_yx.parse/metrics.log
diff --git a/cerberus/pointer_stability_2.eva/warnings.log b/cerberus/.frama-c/provenance_basic_auto_yx.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_stability_2.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_auto_yx.parse/warnings.log
diff --git a/cerberus/provenance_basic_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_global_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_global_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_global_xy.eva/alarms.csv
diff --git a/cerberus/provenance_basic_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_basic_global_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_global_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_global_xy.eva/metrics.log
diff --git a/cerberus/provenance_basic_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_global_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_global_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_global_xy.eva/nonterm.log
diff --git a/cerberus/provenance_basic_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_basic_global_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_global_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_global_xy.eva/warnings.log
diff --git a/cerberus/provenance_basic_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_basic_global_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_global_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_global_xy.parse/framac.ast
diff --git a/cerberus/provenance_basic_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_basic_global_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_global_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_global_xy.parse/metrics.log
diff --git a/cerberus/pointer_stability_2.parse/warnings.log b/cerberus/.frama-c/provenance_basic_global_xy.parse/warnings.log
similarity index 100%
rename from cerberus/pointer_stability_2.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_global_xy.parse/warnings.log
diff --git a/cerberus/provenance_basic_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_global_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_global_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_global_yx.eva/alarms.csv
diff --git a/cerberus/provenance_basic_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_basic_global_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_global_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_global_yx.eva/metrics.log
diff --git a/cerberus/provenance_basic_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_global_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_global_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_global_yx.eva/nonterm.log
diff --git a/cerberus/provenance_basic_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_basic_global_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_global_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_global_yx.eva/warnings.log
diff --git a/cerberus/provenance_basic_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_basic_global_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_global_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_global_yx.parse/framac.ast
diff --git a/cerberus/provenance_basic_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_basic_global_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_global_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_global_yx.parse/metrics.log
diff --git a/cerberus/provenance_basic_auto_xy.parse/warnings.log b/cerberus/.frama-c/provenance_basic_global_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_auto_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_global_yx.parse/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset+12.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+12.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/alarms.csv
diff --git a/cerberus/provenance_basic_malloc_offset+12.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+12.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset+12.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+12.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/nonterm.log
diff --git a/cerberus/provenance_basic_malloc_offset+12.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/warnings.log
similarity index 90%
rename from cerberus/provenance_basic_malloc_offset+12.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/warnings.log
index 83184169fbaa485d5621bd1ba4963a46121d14b4..0b296c6fb0e0e04e7bff346d38c9eee71efe6859 100644
--- a/cerberus/provenance_basic_malloc_offset+12.eva/warnings.log
+++ b/cerberus/.frama-c/provenance_basic_malloc_offset+12.eva/warnings.log
@@ -1,3 +1,4 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
 provenance_basic_malloc_offset+12.c:4:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: main
 provenance_basic_malloc_offset+12.c:5:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
diff --git a/cerberus/provenance_basic_malloc_offset+12.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+12.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/framac.ast
diff --git a/cerberus/provenance_basic_malloc_offset+12.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+12.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/metrics.log
diff --git a/cerberus/provenance_basic_auto_yx.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_auto_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+12.parse/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset+2.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+2.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/alarms.csv
diff --git a/cerberus/provenance_basic_malloc_offset+2.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+2.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset+2.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+2.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/nonterm.log
diff --git a/cerberus/provenance_basic_malloc_offset+2.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+2.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.eva/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset+2.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+2.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/framac.ast
diff --git a/cerberus/provenance_basic_malloc_offset+2.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+2.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/metrics.log
diff --git a/cerberus/provenance_basic_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_global_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+2.parse/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset+4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+4.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/alarms.csv
diff --git a/cerberus/provenance_basic_malloc_offset+4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+4.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset+4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+4.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/nonterm.log
diff --git a/cerberus/provenance_basic_malloc_offset+4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+4.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.eva/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset+4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+4.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/framac.ast
diff --git a/cerberus/provenance_basic_malloc_offset+4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+4.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/metrics.log
diff --git a/cerberus/provenance_basic_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_global_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+4.parse/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset+8.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+8.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/alarms.csv
diff --git a/cerberus/provenance_basic_malloc_offset+8.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+8.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset+8.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+8.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/nonterm.log
diff --git a/cerberus/provenance_basic_malloc_offset+8.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+8.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.eva/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset+8.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+8.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/framac.ast
diff --git a/cerberus/provenance_basic_malloc_offset+8.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+8.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset+12.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+12.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset+8.parse/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset-4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset-4.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/alarms.csv
diff --git a/cerberus/provenance_basic_malloc_offset-4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset-4.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset-4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset-4.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/nonterm.log
diff --git a/cerberus/provenance_basic_malloc_offset-4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset-4.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.eva/warnings.log
diff --git a/cerberus/provenance_basic_malloc_offset-4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset-4.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/framac.ast
diff --git a/cerberus/provenance_basic_malloc_offset-4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset-4.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset+2.parse/warnings.log b/cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+2.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_malloc_offset-4.parse/warnings.log
diff --git a/cerberus/provenance_basic_mixed_auto.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_mixed_auto.eva/alarms.csv
diff --git a/cerberus/provenance_basic_mixed_auto.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto.eva/metrics.log
diff --git a/cerberus/provenance_basic_mixed_auto.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto.eva/nonterm.log
diff --git a/cerberus/provenance_basic_mixed_auto.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto.eva/warnings.log
diff --git a/cerberus/provenance_basic_mixed_auto.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_auto.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_mixed_auto.parse/framac.ast
diff --git a/cerberus/provenance_basic_mixed_auto.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto.parse/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset+4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+4.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto.parse/warnings.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset+4.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/alarms.csv
diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset+4.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/metrics.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset+4.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/nonterm.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset+4.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.eva/warnings.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset+4.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/framac.ast
diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset+4.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset+8.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset+8.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset+4.parse/warnings.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-4.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/alarms.csv
diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-4.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/metrics.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-4.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/nonterm.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-4.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.eva/warnings.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-4.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/framac.ast
diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-4.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/metrics.log
diff --git a/cerberus/provenance_basic_malloc_offset-4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_malloc_offset-4.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-4.parse/warnings.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-64.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/alarms.csv
diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-64.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/metrics.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-64.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/nonterm.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-64.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.eva/warnings.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-64.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/framac.ast
diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-64.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/metrics.log
diff --git a/cerberus/provenance_basic_mixed_auto.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_auto_offset-64.parse/warnings.log
diff --git a/cerberus/provenance_basic_mixed_global_offset+4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset+4.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/alarms.csv
diff --git a/cerberus/provenance_basic_mixed_global_offset+4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset+4.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/metrics.log
diff --git a/cerberus/provenance_basic_mixed_global_offset+4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset+4.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/nonterm.log
diff --git a/cerberus/provenance_basic_mixed_global_offset+4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset+4.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.eva/warnings.log
diff --git a/cerberus/provenance_basic_mixed_global_offset+4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset+4.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/framac.ast
diff --git a/cerberus/provenance_basic_mixed_global_offset+4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset+4.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/metrics.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset+4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset+4.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset+4.parse/warnings.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-4.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-4.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/alarms.csv
diff --git a/cerberus/provenance_basic_mixed_global_offset-4.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-4.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/metrics.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-4.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-4.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/nonterm.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-4.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-4.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.eva/warnings.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-4.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-4.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/framac.ast
diff --git a/cerberus/provenance_basic_mixed_global_offset-4.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-4.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/metrics.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-4.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-4.parse/warnings.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-64.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-64.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/alarms.csv
diff --git a/cerberus/provenance_basic_mixed_global_offset-64.eva/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-64.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/metrics.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-64.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-64.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/nonterm.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-64.eva/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-64.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.eva/warnings.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-64.parse/framac.ast b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-64.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/framac.ast
diff --git a/cerberus/provenance_basic_mixed_global_offset-64.parse/metrics.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-64.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/metrics.log
diff --git a/cerberus/provenance_basic_mixed_auto_offset-64.parse/warnings.log b/cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_auto_offset-64.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_mixed_global_offset-64.parse/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/alarms.csv
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/nonterm.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.eva/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/framac.ast
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/metrics.log
diff --git a/cerberus/provenance_basic_mixed_global_offset+4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset+4.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_xy.parse/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/alarms.csv
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/nonterm.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log
similarity index 86%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log
index af084233f67f41e72e0c57c358e385a80109a070..c4a4f6aeecd0457bf7ec442002e4179878247803 100644
--- a/cerberus/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log
+++ b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.eva/warnings.log
@@ -1,3 +1,4 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
 provenance_basic_using_intptr_t_auto_yx.c:8:[eva:garbled-mix] warning: The specification of function printf_va_1 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data.
 provenance_basic_using_intptr_t_auto_yx.c:11:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: main
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/framac.ast
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/metrics.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-4.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-4.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx.parse/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/alarms.csv
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/nonterm.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.eva/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/framac.ast
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/metrics.log
diff --git a/cerberus/provenance_basic_mixed_global_offset-64.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_mixed_global_offset-64.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/alarms.csv
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/nonterm.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.eva/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/framac.ast
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_xy.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy.parse/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/alarms.csv
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/nonterm.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.eva/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/framac.ast
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_xy_offset64.parse/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/alarms.csv
diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/nonterm.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.eva/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/framac.ast
diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_auto_yx_offset-16.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_global_yx.parse/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/alarms.csv
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/nonterm.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.eva/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/framac.ast
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_-16.parse/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/alarms.csv b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/alarms.csv
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/alarms.csv
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/nonterm.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/nonterm.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/nonterm.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.eva/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.eva/warnings.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/framac.ast b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/framac.ast
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/framac.ast
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/metrics.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/metrics.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/warnings.log b/cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_xy_offset64.parse/warnings.log
rename to cerberus/.frama-c/provenance_basic_using_intptr_t_malloc_offset_8.parse/warnings.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_a.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_a.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/alarms.csv
diff --git a/cerberus/provenance_equality_auto_cu_yx_a.eva/metrics.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_a.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/metrics.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_a.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_a.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/nonterm.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_a.eva/warnings.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_a.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.eva/warnings.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_a.parse/framac.ast b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_a.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/framac.ast
diff --git a/cerberus/provenance_equality_auto_cu_yx_a.parse/metrics.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_a.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_global_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_a.parse/warnings.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_b.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_b.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/alarms.csv
diff --git a/cerberus/provenance_equality_auto_cu_yx_b.eva/metrics.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_b.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/metrics.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_b.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_b.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/nonterm.log
diff --git a/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/warnings.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15
--- /dev/null
+++ b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.eva/warnings.log
@@ -0,0 +1 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
diff --git a/cerberus/provenance_equality_auto_cu_yx_b.parse/framac.ast b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_b.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/framac.ast
diff --git a/cerberus/provenance_equality_auto_cu_yx_b.parse/metrics.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_b.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/warnings.log b/cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_-16.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_auto_cu_yx_b.parse/warnings.log
diff --git a/cerberus/provenance_equality_auto_fn_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_auto_fn_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/alarms.csv
diff --git a/cerberus/provenance_equality_auto_fn_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_auto_fn_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/metrics.log
diff --git a/cerberus/provenance_equality_auto_fn_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_auto_fn_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/nonterm.log
diff --git a/cerberus/provenance_equality_auto_fn_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_auto_fn_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.eva/warnings.log
diff --git a/cerberus/provenance_equality_auto_fn_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_auto_fn_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/framac.ast
diff --git a/cerberus/provenance_equality_auto_fn_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_auto_fn_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/metrics.log
diff --git a/cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/warnings.log b/cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_basic_using_intptr_t_malloc_offset_8.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_auto_fn_yx.parse/warnings.log
diff --git a/cerberus/provenance_equality_auto_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_auto_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_auto_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_auto_yx.eva/alarms.csv
diff --git a/cerberus/provenance_equality_auto_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_auto_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_auto_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_auto_yx.eva/metrics.log
diff --git a/cerberus/provenance_equality_auto_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_auto_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_auto_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_auto_yx.eva/nonterm.log
diff --git a/cerberus/provenance_equality_auto_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_auto_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_auto_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_auto_yx.eva/warnings.log
diff --git a/cerberus/provenance_equality_auto_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_auto_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_auto_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_auto_yx.parse/framac.ast
diff --git a/cerberus/provenance_equality_auto_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_auto_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_auto_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_auto_yx.parse/metrics.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_a.parse/warnings.log b/cerberus/.frama-c/provenance_equality_auto_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_a.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_auto_yx.parse/warnings.log
diff --git a/cerberus/provenance_equality_global_cu_xy_a.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_a.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/alarms.csv
diff --git a/cerberus/provenance_equality_global_cu_xy_a.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_a.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_xy_a.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_a.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/nonterm.log
diff --git a/cerberus/provenance_equality_global_cu_xy_a.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_a.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.eva/warnings.log
diff --git a/cerberus/provenance_equality_global_cu_xy_a.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_a.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/framac.ast
diff --git a/cerberus/provenance_equality_global_cu_xy_a.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_a.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/metrics.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_b.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_b.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_a.parse/warnings.log
diff --git a/cerberus/provenance_equality_global_cu_xy_b.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_b.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/alarms.csv
diff --git a/cerberus/provenance_equality_global_cu_xy_b.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_b.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_xy_b.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_b.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/nonterm.log
diff --git a/cerberus/provenance_equality_auto_cu_yx_b.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_auto_cu_yx_b.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.eva/warnings.log
diff --git a/cerberus/provenance_equality_global_cu_xy_b.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_b.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/framac.ast
diff --git a/cerberus/provenance_equality_global_cu_xy_b.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_b.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/metrics.log
diff --git a/cerberus/provenance_equality_auto_fn_yx.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_auto_fn_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_cu_xy_b.parse/warnings.log
diff --git a/cerberus/provenance_equality_global_cu_yx_a.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_a.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/alarms.csv
diff --git a/cerberus/provenance_equality_global_cu_yx_a.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_a.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_yx_a.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_a.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/nonterm.log
diff --git a/cerberus/provenance_equality_global_cu_yx_a.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_a.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.eva/warnings.log
diff --git a/cerberus/provenance_equality_global_cu_yx_a.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_a.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/framac.ast
diff --git a/cerberus/provenance_equality_global_cu_yx_a.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_a.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/metrics.log
diff --git a/cerberus/provenance_equality_auto_yx.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_auto_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_a.parse/warnings.log
diff --git a/cerberus/provenance_equality_global_cu_yx_b.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_b.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/alarms.csv
diff --git a/cerberus/provenance_equality_global_cu_yx_b.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_b.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_yx_b.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_b.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/nonterm.log
diff --git a/cerberus/provenance_equality_global_cu_xy_a.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_a.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.eva/warnings.log
diff --git a/cerberus/provenance_equality_global_cu_yx_b.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_b.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/framac.ast
diff --git a/cerberus/provenance_equality_global_cu_yx_b.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_b.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_xy_b.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_b.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_cu_yx_b.parse/warnings.log
diff --git a/cerberus/provenance_equality_global_fn_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_fn_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_global_fn_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_global_fn_xy.eva/alarms.csv
diff --git a/cerberus/provenance_equality_global_fn_xy.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_fn_xy.eva/metrics.log
diff --git a/cerberus/provenance_equality_global_fn_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_global_fn_xy.eva/nonterm.log
diff --git a/cerberus/provenance_equality_global_fn_xy.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_fn_xy.eva/warnings.log
diff --git a/cerberus/provenance_equality_global_fn_xy.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_fn_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_global_fn_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_global_fn_xy.parse/framac.ast
diff --git a/cerberus/provenance_equality_global_fn_xy.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_fn_xy.parse/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_xy_b.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_fn_xy.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_xy_b.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_fn_xy.parse/warnings.log
diff --git a/cerberus/provenance_equality_global_fn_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_fn_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_global_fn_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_global_fn_yx.eva/alarms.csv
diff --git a/cerberus/provenance_equality_global_fn_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_fn_yx.eva/metrics.log
diff --git a/cerberus/provenance_equality_global_fn_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_global_fn_yx.eva/nonterm.log
diff --git a/cerberus/provenance_equality_global_fn_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_fn_yx.eva/warnings.log
diff --git a/cerberus/provenance_equality_global_fn_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_fn_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_global_fn_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_global_fn_yx.parse/framac.ast
diff --git a/cerberus/provenance_equality_global_fn_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_fn_yx.parse/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_yx_a.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_fn_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_a.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_fn_yx.parse/warnings.log
diff --git a/cerberus/provenance_equality_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_global_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_global_xy.eva/alarms.csv
diff --git a/cerberus/provenance_equality_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_xy.eva/metrics.log
diff --git a/cerberus/provenance_equality_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_global_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_global_xy.eva/nonterm.log
diff --git a/cerberus/provenance_equality_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_xy.eva/warnings.log
diff --git a/cerberus/provenance_equality_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_global_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_global_xy.parse/framac.ast
diff --git a/cerberus/provenance_equality_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_xy.parse/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_yx_b.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_xy.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_b.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_xy.parse/warnings.log
diff --git a/cerberus/provenance_equality_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_global_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_global_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_global_yx.eva/alarms.csv
diff --git a/cerberus/provenance_equality_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_global_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_yx.eva/metrics.log
diff --git a/cerberus/provenance_equality_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_global_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_global_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_global_yx.eva/nonterm.log
diff --git a/cerberus/provenance_equality_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_global_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_yx.eva/warnings.log
diff --git a/cerberus/provenance_equality_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_global_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_global_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_global_yx.parse/framac.ast
diff --git a/cerberus/provenance_equality_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_global_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_global_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_global_yx.parse/metrics.log
diff --git a/cerberus/provenance_equality_global_cu_yx_b.parse/warnings.log b/cerberus/.frama-c/provenance_equality_global_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_cu_yx_b.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_global_yx.parse/warnings.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/alarms.csv
diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/metrics.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/nonterm.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.eva/warnings.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/framac.ast
diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/metrics.log
diff --git a/cerberus/provenance_equality_global_fn_xy.parse/warnings.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_xy.parse/warnings.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/alarms.csv
diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/metrics.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/nonterm.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.eva/warnings.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/framac.ast
diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/metrics.log
diff --git a/cerberus/provenance_equality_global_fn_yx.parse/warnings.log b/cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_fn_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_equality_uintptr_t_global_yx.parse/warnings.log
diff --git a/cerberus/provenance_multiple_1_global.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_1_global.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_multiple_1_global.eva/alarms.csv
rename to cerberus/.frama-c/provenance_multiple_1_global.eva/alarms.csv
diff --git a/cerberus/provenance_multiple_1_global.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_1_global.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_1_global.eva/metrics.log
rename to cerberus/.frama-c/provenance_multiple_1_global.eva/metrics.log
diff --git a/cerberus/provenance_multiple_1_global.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_1_global.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_multiple_1_global.eva/nonterm.log
rename to cerberus/.frama-c/provenance_multiple_1_global.eva/nonterm.log
diff --git a/cerberus/provenance_equality_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_1_global.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_multiple_1_global.eva/warnings.log
diff --git a/cerberus/provenance_multiple_1_global.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_1_global.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_multiple_1_global.parse/framac.ast
rename to cerberus/.frama-c/provenance_multiple_1_global.parse/framac.ast
diff --git a/cerberus/provenance_multiple_1_global.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_1_global.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_1_global.parse/metrics.log
rename to cerberus/.frama-c/provenance_multiple_1_global.parse/metrics.log
diff --git a/cerberus/provenance_equality_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_1_global.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_global_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_multiple_1_global.parse/warnings.log
diff --git a/cerberus/provenance_multiple_2_global.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_2_global.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_multiple_2_global.eva/alarms.csv
rename to cerberus/.frama-c/provenance_multiple_2_global.eva/alarms.csv
diff --git a/cerberus/provenance_multiple_2_global.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_2_global.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_2_global.eva/metrics.log
rename to cerberus/.frama-c/provenance_multiple_2_global.eva/metrics.log
diff --git a/cerberus/provenance_multiple_2_global.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_2_global.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_multiple_2_global.eva/nonterm.log
rename to cerberus/.frama-c/provenance_multiple_2_global.eva/nonterm.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_2_global.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_multiple_2_global.eva/warnings.log
diff --git a/cerberus/provenance_multiple_2_global.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_2_global.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_multiple_2_global.parse/framac.ast
rename to cerberus/.frama-c/provenance_multiple_2_global.parse/framac.ast
diff --git a/cerberus/provenance_multiple_2_global.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_2_global.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_2_global.parse/metrics.log
rename to cerberus/.frama-c/provenance_multiple_2_global.parse/metrics.log
diff --git a/cerberus/provenance_equality_uintptr_t_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_2_global.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_equality_uintptr_t_global_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_multiple_2_global.parse/warnings.log
diff --git a/cerberus/provenance_multiple_3_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_3_global_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_multiple_3_global_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_multiple_3_global_yx.eva/alarms.csv
diff --git a/cerberus/provenance_multiple_3_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_3_global_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_multiple_3_global_yx.eva/metrics.log
diff --git a/cerberus/provenance_multiple_3_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_multiple_3_global_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_multiple_3_global_yx.eva/nonterm.log
diff --git a/cerberus/provenance_multiple_3_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_3_global_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_multiple_3_global_yx.eva/warnings.log
diff --git a/cerberus/provenance_multiple_3_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_3_global_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_multiple_3_global_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_multiple_3_global_yx.parse/framac.ast
diff --git a/cerberus/provenance_multiple_3_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_3_global_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_multiple_3_global_yx.parse/metrics.log
diff --git a/cerberus/provenance_multiple_1_global.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_3_global_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_1_global.eva/warnings.log
rename to cerberus/.frama-c/provenance_multiple_3_global_yx.parse/warnings.log
diff --git a/cerberus/provenance_multiple_4_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_4_global_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_multiple_4_global_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_multiple_4_global_yx.eva/alarms.csv
diff --git a/cerberus/provenance_multiple_4_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_4_global_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_multiple_4_global_yx.eva/metrics.log
diff --git a/cerberus/provenance_multiple_4_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_multiple_4_global_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_multiple_4_global_yx.eva/nonterm.log
diff --git a/cerberus/provenance_multiple_4_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_4_global_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_multiple_4_global_yx.eva/warnings.log
diff --git a/cerberus/provenance_multiple_4_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_4_global_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_multiple_4_global_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_multiple_4_global_yx.parse/framac.ast
diff --git a/cerberus/provenance_multiple_4_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_4_global_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_multiple_4_global_yx.parse/metrics.log
diff --git a/cerberus/provenance_multiple_1_global.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_4_global_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_1_global.parse/warnings.log
rename to cerberus/.frama-c/provenance_multiple_4_global_yx.parse/warnings.log
diff --git a/cerberus/provenance_multiple_5_auto.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_5_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_multiple_5_auto.eva/alarms.csv
rename to cerberus/.frama-c/provenance_multiple_5_auto.eva/alarms.csv
diff --git a/cerberus/provenance_multiple_5_auto.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_5_auto.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_5_auto.eva/metrics.log
rename to cerberus/.frama-c/provenance_multiple_5_auto.eva/metrics.log
diff --git a/cerberus/provenance_multiple_5_auto.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_5_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_multiple_5_auto.eva/nonterm.log
rename to cerberus/.frama-c/provenance_multiple_5_auto.eva/nonterm.log
diff --git a/cerberus/provenance_multiple_5_auto.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_5_auto.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_5_auto.eva/warnings.log
rename to cerberus/.frama-c/provenance_multiple_5_auto.eva/warnings.log
diff --git a/cerberus/provenance_multiple_5_auto.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_5_auto.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_multiple_5_auto.parse/framac.ast
rename to cerberus/.frama-c/provenance_multiple_5_auto.parse/framac.ast
diff --git a/cerberus/provenance_multiple_5_auto.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_5_auto.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_5_auto.parse/metrics.log
rename to cerberus/.frama-c/provenance_multiple_5_auto.parse/metrics.log
diff --git a/cerberus/provenance_multiple_2_global.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_5_auto.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_2_global.eva/warnings.log
rename to cerberus/.frama-c/provenance_multiple_5_auto.parse/warnings.log
diff --git a/cerberus/provenance_multiple_5_global.eva/alarms.csv b/cerberus/.frama-c/provenance_multiple_5_global.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_multiple_5_global.eva/alarms.csv
rename to cerberus/.frama-c/provenance_multiple_5_global.eva/alarms.csv
diff --git a/cerberus/provenance_multiple_5_global.eva/metrics.log b/cerberus/.frama-c/provenance_multiple_5_global.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_5_global.eva/metrics.log
rename to cerberus/.frama-c/provenance_multiple_5_global.eva/metrics.log
diff --git a/cerberus/provenance_multiple_5_global.eva/nonterm.log b/cerberus/.frama-c/provenance_multiple_5_global.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_multiple_5_global.eva/nonterm.log
rename to cerberus/.frama-c/provenance_multiple_5_global.eva/nonterm.log
diff --git a/cerberus/provenance_multiple_5_global.eva/warnings.log b/cerberus/.frama-c/provenance_multiple_5_global.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_5_global.eva/warnings.log
rename to cerberus/.frama-c/provenance_multiple_5_global.eva/warnings.log
diff --git a/cerberus/provenance_multiple_5_global.parse/framac.ast b/cerberus/.frama-c/provenance_multiple_5_global.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_multiple_5_global.parse/framac.ast
rename to cerberus/.frama-c/provenance_multiple_5_global.parse/framac.ast
diff --git a/cerberus/provenance_multiple_5_global.parse/metrics.log b/cerberus/.frama-c/provenance_multiple_5_global.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_multiple_5_global.parse/metrics.log
rename to cerberus/.frama-c/provenance_multiple_5_global.parse/metrics.log
diff --git a/cerberus/provenance_multiple_2_global.parse/warnings.log b/cerberus/.frama-c/provenance_multiple_5_global.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_2_global.parse/warnings.log
rename to cerberus/.frama-c/provenance_multiple_5_global.parse/warnings.log
diff --git a/cerberus/provenance_roundtrip_via_intptr_t.eva/alarms.csv b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_roundtrip_via_intptr_t.eva/alarms.csv
rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/alarms.csv
diff --git a/cerberus/provenance_roundtrip_via_intptr_t.eva/metrics.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_intptr_t.eva/metrics.log
rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/metrics.log
diff --git a/cerberus/provenance_roundtrip_via_intptr_t.eva/nonterm.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_intptr_t.eva/nonterm.log
rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/nonterm.log
diff --git a/cerberus/provenance_multiple_3_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_3_global_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.eva/warnings.log
diff --git a/cerberus/provenance_roundtrip_via_intptr_t.parse/framac.ast b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_roundtrip_via_intptr_t.parse/framac.ast
rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/framac.ast
diff --git a/cerberus/provenance_roundtrip_via_intptr_t.parse/metrics.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_intptr_t.parse/metrics.log
rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/metrics.log
diff --git a/cerberus/provenance_multiple_4_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_4_global_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_roundtrip_via_intptr_t.parse/warnings.log
diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.eva/alarms.csv b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_roundtrip_via_unsigned_long.eva/alarms.csv
rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/alarms.csv
diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.eva/metrics.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_unsigned_long.eva/metrics.log
rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/metrics.log
diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.eva/nonterm.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_unsigned_long.eva/nonterm.log
rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/nonterm.log
diff --git a/cerberus/provenance_multiple_5_auto.parse/warnings.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_5_auto.parse/warnings.log
rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.eva/warnings.log
diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.parse/framac.ast b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_roundtrip_via_unsigned_long.parse/framac.ast
rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/framac.ast
diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.parse/metrics.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_unsigned_long.parse/metrics.log
rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/metrics.log
diff --git a/cerberus/provenance_multiple_5_global.parse/warnings.log b/cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_multiple_5_global.parse/warnings.log
rename to cerberus/.frama-c/provenance_roundtrip_via_unsigned_long.parse/warnings.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.eva/alarms.csv b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1.eva/alarms.csv
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/alarms.csv
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.eva/metrics.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1.eva/metrics.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/metrics.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.eva/nonterm.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1.eva/nonterm.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/nonterm.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.eva/warnings.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1.eva/warnings.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.eva/warnings.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.parse/framac.ast b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1.parse/framac.ast
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/framac.ast
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.parse/metrics.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1.parse/metrics.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/metrics.log
diff --git a/cerberus/provenance_roundtrip_via_intptr_t.eva/warnings.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_intptr_t.eva/warnings.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1.parse/warnings.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/alarms.csv b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/alarms.csv
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/alarms.csv
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/metrics.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/metrics.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/metrics.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/nonterm.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/nonterm.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/nonterm.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/warnings.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/warnings.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.eva/warnings.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/framac.ast b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/framac.ast
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/framac.ast
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/metrics.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/metrics.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/metrics.log
diff --git a/cerberus/provenance_roundtrip_via_intptr_t.parse/warnings.log b/cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_intptr_t.parse/warnings.log
rename to cerberus/.frama-c/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/warnings.log
diff --git a/cerberus/provenance_union_punning_1_global.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_1_global.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_union_punning_1_global.eva/alarms.csv
rename to cerberus/.frama-c/provenance_union_punning_1_global.eva/alarms.csv
diff --git a/cerberus/provenance_union_punning_1_global.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_1_global.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_1_global.eva/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_1_global.eva/metrics.log
diff --git a/cerberus/provenance_union_punning_1_global.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_1_global.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_union_punning_1_global.eva/nonterm.log
rename to cerberus/.frama-c/provenance_union_punning_1_global.eva/nonterm.log
diff --git a/cerberus/provenance_union_punning_1_global.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_1_global.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_1_global.eva/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_1_global.eva/warnings.log
diff --git a/cerberus/provenance_union_punning_1_global.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_1_global.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_union_punning_1_global.parse/framac.ast
rename to cerberus/.frama-c/provenance_union_punning_1_global.parse/framac.ast
diff --git a/cerberus/provenance_union_punning_1_global.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_1_global.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_1_global.parse/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_1_global.parse/metrics.log
diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_1_global.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_unsigned_long.eva/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_1_global.parse/warnings.log
diff --git a/cerberus/provenance_union_punning_2_auto_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/alarms.csv
diff --git a/cerberus/provenance_union_punning_2_auto_xy.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/metrics.log
diff --git a/cerberus/provenance_union_punning_2_auto_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/nonterm.log
diff --git a/cerberus/provenance_union_punning_2_auto_xy.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.eva/warnings.log
diff --git a/cerberus/provenance_union_punning_2_auto_xy.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/framac.ast
diff --git a/cerberus/provenance_union_punning_2_auto_xy.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/metrics.log
diff --git a/cerberus/provenance_roundtrip_via_unsigned_long.parse/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_roundtrip_via_unsigned_long.parse/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_xy.parse/warnings.log
diff --git a/cerberus/provenance_union_punning_2_auto_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/alarms.csv
diff --git a/cerberus/provenance_union_punning_2_auto_yx.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/metrics.log
diff --git a/cerberus/provenance_union_punning_2_auto_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/nonterm.log
diff --git a/cerberus/provenance_union_punning_2_auto_yx.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.eva/warnings.log
diff --git a/cerberus/provenance_union_punning_2_auto_yx.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/framac.ast
diff --git a/cerberus/provenance_union_punning_2_auto_yx.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/metrics.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1.parse/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1.parse/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_2_auto_yx.parse/warnings.log
diff --git a/cerberus/provenance_union_punning_2_global_xy.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_xy.eva/alarms.csv
rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/alarms.csv
diff --git a/cerberus/provenance_union_punning_2_global_xy.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_xy.eva/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/metrics.log
diff --git a/cerberus/provenance_union_punning_2_global_xy.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_xy.eva/nonterm.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/nonterm.log
diff --git a/cerberus/provenance_union_punning_2_global_xy.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_xy.eva/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.eva/warnings.log
diff --git a/cerberus/provenance_union_punning_2_global_xy.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_xy.parse/framac.ast
rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/framac.ast
diff --git a/cerberus/provenance_union_punning_2_global_xy.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_xy.parse/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/metrics.log
diff --git a/cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_tag_bits_via_uintptr_t_1_no_assert.parse/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_xy.parse/warnings.log
diff --git a/cerberus/provenance_union_punning_2_global_yx.eva/alarms.csv b/cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_yx.eva/alarms.csv
rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/alarms.csv
diff --git a/cerberus/provenance_union_punning_2_global_yx.eva/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_yx.eva/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/metrics.log
diff --git a/cerberus/provenance_union_punning_2_global_yx.eva/nonterm.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_yx.eva/nonterm.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/nonterm.log
diff --git a/cerberus/provenance_union_punning_2_global_yx.eva/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_yx.eva/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.eva/warnings.log
diff --git a/cerberus/provenance_union_punning_2_global_yx.parse/framac.ast b/cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_yx.parse/framac.ast
rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/framac.ast
diff --git a/cerberus/provenance_union_punning_2_global_yx.parse/metrics.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_yx.parse/metrics.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/metrics.log
diff --git a/cerberus/provenance_union_punning_1_global.parse/warnings.log b/cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_1_global.parse/warnings.log
rename to cerberus/.frama-c/provenance_union_punning_2_global_yx.parse/warnings.log
diff --git a/cerberus/provenance_via_io_auto.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_auto.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_via_io_auto.eva/alarms.csv
rename to cerberus/.frama-c/provenance_via_io_auto.eva/alarms.csv
diff --git a/cerberus/provenance_via_io_auto.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_auto.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_auto.eva/metrics.log
rename to cerberus/.frama-c/provenance_via_io_auto.eva/metrics.log
diff --git a/cerberus/provenance_via_io_auto.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_auto.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_via_io_auto.eva/nonterm.log
rename to cerberus/.frama-c/provenance_via_io_auto.eva/nonterm.log
diff --git a/cerberus/provenance_via_io_auto.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_auto.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_auto.eva/warnings.log
rename to cerberus/.frama-c/provenance_via_io_auto.eva/warnings.log
diff --git a/cerberus/provenance_via_io_auto.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_auto.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_via_io_auto.parse/framac.ast
rename to cerberus/.frama-c/provenance_via_io_auto.parse/framac.ast
diff --git a/cerberus/provenance_via_io_auto.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_auto.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_auto.parse/metrics.log
rename to cerberus/.frama-c/provenance_via_io_auto.parse/metrics.log
diff --git a/cerberus/provenance_union_punning_2_auto_xy.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_auto.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_via_io_auto.parse/warnings.log
diff --git a/cerberus/provenance_via_io_bytewise_global.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_via_io_bytewise_global.eva/alarms.csv
rename to cerberus/.frama-c/provenance_via_io_bytewise_global.eva/alarms.csv
diff --git a/cerberus/provenance_via_io_bytewise_global.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_bytewise_global.eva/metrics.log
rename to cerberus/.frama-c/provenance_via_io_bytewise_global.eva/metrics.log
diff --git a/cerberus/provenance_via_io_bytewise_global.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_via_io_bytewise_global.eva/nonterm.log
rename to cerberus/.frama-c/provenance_via_io_bytewise_global.eva/nonterm.log
diff --git a/cerberus/provenance_via_io_bytewise_global.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/warnings.log
similarity index 88%
rename from cerberus/provenance_via_io_bytewise_global.eva/warnings.log
rename to cerberus/.frama-c/provenance_via_io_bytewise_global.eva/warnings.log
index 1fcfffd06835e4ae359c066c72768b64c047eb52..293d8de2d57dc93ca08d5f58a64385357d6935f8 100644
--- a/cerberus/provenance_via_io_bytewise_global.eva/warnings.log
+++ b/cerberus/.frama-c/provenance_via_io_bytewise_global.eva/warnings.log
@@ -1,3 +1,4 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
 provenance_via_io_bytewise_global.c:6:[eva:garbled-mix] warning: The specification of function printf_va_1 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data.
 provenance_via_io_bytewise_global.c:6:[eva:garbled-mix] warning: The specification of function printf_va_1 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data.
 provenance_via_io_bytewise_global.c:14:[eva:garbled-mix] warning: The specification of function printf_va_2 has generated a garbled mix for assigns clause assigns clause __fc_stdout->__fc_FILE_data.
diff --git a/cerberus/provenance_via_io_bytewise_global.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_bytewise_global.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_via_io_bytewise_global.parse/framac.ast
rename to cerberus/.frama-c/provenance_via_io_bytewise_global.parse/framac.ast
diff --git a/cerberus/provenance_via_io_bytewise_global.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_bytewise_global.parse/metrics.log
rename to cerberus/.frama-c/provenance_via_io_bytewise_global.parse/metrics.log
diff --git a/cerberus/provenance_union_punning_2_auto_yx.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_bytewise_global.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_auto_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_via_io_bytewise_global.parse/warnings.log
diff --git a/cerberus/provenance_via_io_global.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_global.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_via_io_global.eva/alarms.csv
rename to cerberus/.frama-c/provenance_via_io_global.eva/alarms.csv
diff --git a/cerberus/provenance_via_io_global.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_global.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_global.eva/metrics.log
rename to cerberus/.frama-c/provenance_via_io_global.eva/metrics.log
diff --git a/cerberus/provenance_via_io_global.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_global.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_via_io_global.eva/nonterm.log
rename to cerberus/.frama-c/provenance_via_io_global.eva/nonterm.log
diff --git a/cerberus/provenance_via_io_global.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_global.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_global.eva/warnings.log
rename to cerberus/.frama-c/provenance_via_io_global.eva/warnings.log
diff --git a/cerberus/provenance_via_io_global.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_global.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_via_io_global.parse/framac.ast
rename to cerberus/.frama-c/provenance_via_io_global.parse/framac.ast
diff --git a/cerberus/provenance_via_io_global.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_global.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_global.parse/metrics.log
rename to cerberus/.frama-c/provenance_via_io_global.parse/metrics.log
diff --git a/cerberus/provenance_union_punning_2_global_xy.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_global.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_xy.parse/warnings.log
rename to cerberus/.frama-c/provenance_via_io_global.parse/warnings.log
diff --git a/cerberus/provenance_via_io_percentp_global.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_percentp_global.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_via_io_percentp_global.eva/alarms.csv
rename to cerberus/.frama-c/provenance_via_io_percentp_global.eva/alarms.csv
diff --git a/cerberus/provenance_via_io_percentp_global.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_percentp_global.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_percentp_global.eva/metrics.log
rename to cerberus/.frama-c/provenance_via_io_percentp_global.eva/metrics.log
diff --git a/cerberus/provenance_via_io_percentp_global.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_percentp_global.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_via_io_percentp_global.eva/nonterm.log
rename to cerberus/.frama-c/provenance_via_io_percentp_global.eva/nonterm.log
diff --git a/cerberus/provenance_via_io_percentp_global.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_percentp_global.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_percentp_global.eva/warnings.log
rename to cerberus/.frama-c/provenance_via_io_percentp_global.eva/warnings.log
diff --git a/cerberus/provenance_via_io_percentp_global.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_percentp_global.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_via_io_percentp_global.parse/framac.ast
rename to cerberus/.frama-c/provenance_via_io_percentp_global.parse/framac.ast
diff --git a/cerberus/provenance_via_io_percentp_global.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_percentp_global.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_percentp_global.parse/metrics.log
rename to cerberus/.frama-c/provenance_via_io_percentp_global.parse/metrics.log
diff --git a/cerberus/provenance_union_punning_2_global_yx.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_percentp_global.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_union_punning_2_global_yx.parse/warnings.log
rename to cerberus/.frama-c/provenance_via_io_percentp_global.parse/warnings.log
diff --git a/cerberus/provenance_via_io_uintptr_t_global.eva/alarms.csv b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/alarms.csv
similarity index 100%
rename from cerberus/provenance_via_io_uintptr_t_global.eva/alarms.csv
rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/alarms.csv
diff --git a/cerberus/provenance_via_io_uintptr_t_global.eva/metrics.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_uintptr_t_global.eva/metrics.log
rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/metrics.log
diff --git a/cerberus/provenance_via_io_uintptr_t_global.eva/nonterm.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/nonterm.log
similarity index 100%
rename from cerberus/provenance_via_io_uintptr_t_global.eva/nonterm.log
rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/nonterm.log
diff --git a/cerberus/provenance_via_io_uintptr_t_global.eva/warnings.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_uintptr_t_global.eva/warnings.log
rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.eva/warnings.log
diff --git a/cerberus/provenance_via_io_uintptr_t_global.parse/framac.ast b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/framac.ast
similarity index 100%
rename from cerberus/provenance_via_io_uintptr_t_global.parse/framac.ast
rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/framac.ast
diff --git a/cerberus/provenance_via_io_uintptr_t_global.parse/metrics.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/metrics.log
similarity index 100%
rename from cerberus/provenance_via_io_uintptr_t_global.parse/metrics.log
rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/metrics.log
diff --git a/cerberus/provenance_via_io_auto.parse/warnings.log b/cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_auto.parse/warnings.log
rename to cerberus/.frama-c/provenance_via_io_uintptr_t_global.parse/warnings.log
diff --git a/cerberus/read_union_same_prefix_visible.eva/alarms.csv b/cerberus/.frama-c/read_union_same_prefix_visible.eva/alarms.csv
similarity index 100%
rename from cerberus/read_union_same_prefix_visible.eva/alarms.csv
rename to cerberus/.frama-c/read_union_same_prefix_visible.eva/alarms.csv
diff --git a/cerberus/read_union_same_prefix_visible.eva/metrics.log b/cerberus/.frama-c/read_union_same_prefix_visible.eva/metrics.log
similarity index 100%
rename from cerberus/read_union_same_prefix_visible.eva/metrics.log
rename to cerberus/.frama-c/read_union_same_prefix_visible.eva/metrics.log
diff --git a/cerberus/read_union_same_prefix_visible.eva/nonterm.log b/cerberus/.frama-c/read_union_same_prefix_visible.eva/nonterm.log
similarity index 100%
rename from cerberus/read_union_same_prefix_visible.eva/nonterm.log
rename to cerberus/.frama-c/read_union_same_prefix_visible.eva/nonterm.log
diff --git a/cerberus/provenance_via_io_bytewise_global.parse/warnings.log b/cerberus/.frama-c/read_union_same_prefix_visible.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_bytewise_global.parse/warnings.log
rename to cerberus/.frama-c/read_union_same_prefix_visible.eva/warnings.log
diff --git a/cerberus/read_union_same_prefix_visible.parse/framac.ast b/cerberus/.frama-c/read_union_same_prefix_visible.parse/framac.ast
similarity index 100%
rename from cerberus/read_union_same_prefix_visible.parse/framac.ast
rename to cerberus/.frama-c/read_union_same_prefix_visible.parse/framac.ast
diff --git a/cerberus/read_union_same_prefix_visible.parse/metrics.log b/cerberus/.frama-c/read_union_same_prefix_visible.parse/metrics.log
similarity index 100%
rename from cerberus/read_union_same_prefix_visible.parse/metrics.log
rename to cerberus/.frama-c/read_union_same_prefix_visible.parse/metrics.log
diff --git a/cerberus/provenance_via_io_global.parse/warnings.log b/cerberus/.frama-c/read_union_same_prefix_visible.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_global.parse/warnings.log
rename to cerberus/.frama-c/read_union_same_prefix_visible.parse/warnings.log
diff --git a/cerberus/read_via_invalid_1.eva/alarms.csv b/cerberus/.frama-c/read_via_invalid_1.eva/alarms.csv
similarity index 100%
rename from cerberus/read_via_invalid_1.eva/alarms.csv
rename to cerberus/.frama-c/read_via_invalid_1.eva/alarms.csv
diff --git a/cerberus/read_via_invalid_1.eva/metrics.log b/cerberus/.frama-c/read_via_invalid_1.eva/metrics.log
similarity index 100%
rename from cerberus/read_via_invalid_1.eva/metrics.log
rename to cerberus/.frama-c/read_via_invalid_1.eva/metrics.log
diff --git a/cerberus/read_via_invalid_1.eva/nonterm.log b/cerberus/.frama-c/read_via_invalid_1.eva/nonterm.log
similarity index 100%
rename from cerberus/read_via_invalid_1.eva/nonterm.log
rename to cerberus/.frama-c/read_via_invalid_1.eva/nonterm.log
diff --git a/cerberus/provenance_via_io_percentp_global.parse/warnings.log b/cerberus/.frama-c/read_via_invalid_1.eva/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_percentp_global.parse/warnings.log
rename to cerberus/.frama-c/read_via_invalid_1.eva/warnings.log
diff --git a/cerberus/read_via_invalid_1.parse/framac.ast b/cerberus/.frama-c/read_via_invalid_1.parse/framac.ast
similarity index 100%
rename from cerberus/read_via_invalid_1.parse/framac.ast
rename to cerberus/.frama-c/read_via_invalid_1.parse/framac.ast
diff --git a/cerberus/read_via_invalid_1.parse/metrics.log b/cerberus/.frama-c/read_via_invalid_1.parse/metrics.log
similarity index 100%
rename from cerberus/read_via_invalid_1.parse/metrics.log
rename to cerberus/.frama-c/read_via_invalid_1.parse/metrics.log
diff --git a/cerberus/provenance_via_io_uintptr_t_global.parse/warnings.log b/cerberus/.frama-c/read_via_invalid_1.parse/warnings.log
similarity index 100%
rename from cerberus/provenance_via_io_uintptr_t_global.parse/warnings.log
rename to cerberus/.frama-c/read_via_invalid_1.parse/warnings.log
diff --git a/cerberus/signalling_nan_1.eva/alarms.csv b/cerberus/.frama-c/signalling_nan_1.eva/alarms.csv
similarity index 100%
rename from cerberus/signalling_nan_1.eva/alarms.csv
rename to cerberus/.frama-c/signalling_nan_1.eva/alarms.csv
diff --git a/cerberus/signalling_nan_1.eva/metrics.log b/cerberus/.frama-c/signalling_nan_1.eva/metrics.log
similarity index 100%
rename from cerberus/signalling_nan_1.eva/metrics.log
rename to cerberus/.frama-c/signalling_nan_1.eva/metrics.log
diff --git a/cerberus/signalling_nan_1.eva/nonterm.log b/cerberus/.frama-c/signalling_nan_1.eva/nonterm.log
similarity index 100%
rename from cerberus/signalling_nan_1.eva/nonterm.log
rename to cerberus/.frama-c/signalling_nan_1.eva/nonterm.log
diff --git a/cerberus/read_union_same_prefix_visible.eva/warnings.log b/cerberus/.frama-c/signalling_nan_1.eva/warnings.log
similarity index 100%
rename from cerberus/read_union_same_prefix_visible.eva/warnings.log
rename to cerberus/.frama-c/signalling_nan_1.eva/warnings.log
diff --git a/cerberus/signalling_nan_1.parse/framac.ast b/cerberus/.frama-c/signalling_nan_1.parse/framac.ast
similarity index 100%
rename from cerberus/signalling_nan_1.parse/framac.ast
rename to cerberus/.frama-c/signalling_nan_1.parse/framac.ast
diff --git a/cerberus/signalling_nan_1.parse/metrics.log b/cerberus/.frama-c/signalling_nan_1.parse/metrics.log
similarity index 100%
rename from cerberus/signalling_nan_1.parse/metrics.log
rename to cerberus/.frama-c/signalling_nan_1.parse/metrics.log
diff --git a/cerberus/signalling_nan_1.parse/warnings.log b/cerberus/.frama-c/signalling_nan_1.parse/warnings.log
similarity index 100%
rename from cerberus/signalling_nan_1.parse/warnings.log
rename to cerberus/.frama-c/signalling_nan_1.parse/warnings.log
diff --git a/cerberus/struct_initialise_members.eva/alarms.csv b/cerberus/.frama-c/struct_initialise_members.eva/alarms.csv
similarity index 100%
rename from cerberus/struct_initialise_members.eva/alarms.csv
rename to cerberus/.frama-c/struct_initialise_members.eva/alarms.csv
diff --git a/cerberus/struct_initialise_members.eva/metrics.log b/cerberus/.frama-c/struct_initialise_members.eva/metrics.log
similarity index 100%
rename from cerberus/struct_initialise_members.eva/metrics.log
rename to cerberus/.frama-c/struct_initialise_members.eva/metrics.log
diff --git a/cerberus/struct_initialise_members.eva/nonterm.log b/cerberus/.frama-c/struct_initialise_members.eva/nonterm.log
similarity index 100%
rename from cerberus/struct_initialise_members.eva/nonterm.log
rename to cerberus/.frama-c/struct_initialise_members.eva/nonterm.log
diff --git a/cerberus/read_union_same_prefix_visible.parse/warnings.log b/cerberus/.frama-c/struct_initialise_members.eva/warnings.log
similarity index 100%
rename from cerberus/read_union_same_prefix_visible.parse/warnings.log
rename to cerberus/.frama-c/struct_initialise_members.eva/warnings.log
diff --git a/cerberus/struct_initialise_members.parse/framac.ast b/cerberus/.frama-c/struct_initialise_members.parse/framac.ast
similarity index 100%
rename from cerberus/struct_initialise_members.parse/framac.ast
rename to cerberus/.frama-c/struct_initialise_members.parse/framac.ast
diff --git a/cerberus/struct_initialise_members.parse/metrics.log b/cerberus/.frama-c/struct_initialise_members.parse/metrics.log
similarity index 100%
rename from cerberus/struct_initialise_members.parse/metrics.log
rename to cerberus/.frama-c/struct_initialise_members.parse/metrics.log
diff --git a/cerberus/struct_initialise_members.parse/warnings.log b/cerberus/.frama-c/struct_initialise_members.parse/warnings.log
similarity index 100%
rename from cerberus/struct_initialise_members.parse/warnings.log
rename to cerberus/.frama-c/struct_initialise_members.parse/warnings.log
diff --git a/cerberus/struct_inter_submember_1.eva/alarms.csv b/cerberus/.frama-c/struct_inter_submember_1.eva/alarms.csv
similarity index 100%
rename from cerberus/struct_inter_submember_1.eva/alarms.csv
rename to cerberus/.frama-c/struct_inter_submember_1.eva/alarms.csv
diff --git a/cerberus/struct_inter_submember_1.eva/metrics.log b/cerberus/.frama-c/struct_inter_submember_1.eva/metrics.log
similarity index 100%
rename from cerberus/struct_inter_submember_1.eva/metrics.log
rename to cerberus/.frama-c/struct_inter_submember_1.eva/metrics.log
diff --git a/cerberus/struct_inter_submember_1.eva/nonterm.log b/cerberus/.frama-c/struct_inter_submember_1.eva/nonterm.log
similarity index 100%
rename from cerberus/struct_inter_submember_1.eva/nonterm.log
rename to cerberus/.frama-c/struct_inter_submember_1.eva/nonterm.log
diff --git a/cerberus/read_via_invalid_1.eva/warnings.log b/cerberus/.frama-c/struct_inter_submember_1.eva/warnings.log
similarity index 100%
rename from cerberus/read_via_invalid_1.eva/warnings.log
rename to cerberus/.frama-c/struct_inter_submember_1.eva/warnings.log
diff --git a/cerberus/struct_inter_submember_1.parse/framac.ast b/cerberus/.frama-c/struct_inter_submember_1.parse/framac.ast
similarity index 100%
rename from cerberus/struct_inter_submember_1.parse/framac.ast
rename to cerberus/.frama-c/struct_inter_submember_1.parse/framac.ast
diff --git a/cerberus/struct_inter_submember_1.parse/metrics.log b/cerberus/.frama-c/struct_inter_submember_1.parse/metrics.log
similarity index 100%
rename from cerberus/struct_inter_submember_1.parse/metrics.log
rename to cerberus/.frama-c/struct_inter_submember_1.parse/metrics.log
diff --git a/cerberus/read_via_invalid_1.parse/warnings.log b/cerberus/.frama-c/struct_inter_submember_1.parse/warnings.log
similarity index 100%
rename from cerberus/read_via_invalid_1.parse/warnings.log
rename to cerberus/.frama-c/struct_inter_submember_1.parse/warnings.log
diff --git a/cerberus/tkn-1.eva/alarms.csv b/cerberus/.frama-c/tkn-1.eva/alarms.csv
similarity index 100%
rename from cerberus/tkn-1.eva/alarms.csv
rename to cerberus/.frama-c/tkn-1.eva/alarms.csv
diff --git a/cerberus/tkn-1.eva/metrics.log b/cerberus/.frama-c/tkn-1.eva/metrics.log
similarity index 100%
rename from cerberus/tkn-1.eva/metrics.log
rename to cerberus/.frama-c/tkn-1.eva/metrics.log
diff --git a/cerberus/tkn-1.eva/nonterm.log b/cerberus/.frama-c/tkn-1.eva/nonterm.log
similarity index 100%
rename from cerberus/tkn-1.eva/nonterm.log
rename to cerberus/.frama-c/tkn-1.eva/nonterm.log
diff --git a/cerberus/signalling_nan_1.eva/warnings.log b/cerberus/.frama-c/tkn-1.eva/warnings.log
similarity index 100%
rename from cerberus/signalling_nan_1.eva/warnings.log
rename to cerberus/.frama-c/tkn-1.eva/warnings.log
diff --git a/cerberus/tkn-1.parse/framac.ast b/cerberus/.frama-c/tkn-1.parse/framac.ast
similarity index 100%
rename from cerberus/tkn-1.parse/framac.ast
rename to cerberus/.frama-c/tkn-1.parse/framac.ast
diff --git a/cerberus/tkn-1.parse/metrics.log b/cerberus/.frama-c/tkn-1.parse/metrics.log
similarity index 100%
rename from cerberus/tkn-1.parse/metrics.log
rename to cerberus/.frama-c/tkn-1.parse/metrics.log
diff --git a/cerberus/struct_initialise_members.eva/warnings.log b/cerberus/.frama-c/tkn-1.parse/warnings.log
similarity index 100%
rename from cerberus/struct_initialise_members.eva/warnings.log
rename to cerberus/.frama-c/tkn-1.parse/warnings.log
diff --git a/cerberus/tkn-2.eva/alarms.csv b/cerberus/.frama-c/tkn-2.eva/alarms.csv
similarity index 100%
rename from cerberus/tkn-2.eva/alarms.csv
rename to cerberus/.frama-c/tkn-2.eva/alarms.csv
diff --git a/cerberus/tkn-2.eva/metrics.log b/cerberus/.frama-c/tkn-2.eva/metrics.log
similarity index 100%
rename from cerberus/tkn-2.eva/metrics.log
rename to cerberus/.frama-c/tkn-2.eva/metrics.log
diff --git a/cerberus/tkn-2.eva/nonterm.log b/cerberus/.frama-c/tkn-2.eva/nonterm.log
similarity index 100%
rename from cerberus/tkn-2.eva/nonterm.log
rename to cerberus/.frama-c/tkn-2.eva/nonterm.log
diff --git a/cerberus/tkn-2.eva/warnings.log b/cerberus/.frama-c/tkn-2.eva/warnings.log
similarity index 100%
rename from cerberus/tkn-2.eva/warnings.log
rename to cerberus/.frama-c/tkn-2.eva/warnings.log
diff --git a/cerberus/tkn-2.parse/framac.ast b/cerberus/.frama-c/tkn-2.parse/framac.ast
similarity index 100%
rename from cerberus/tkn-2.parse/framac.ast
rename to cerberus/.frama-c/tkn-2.parse/framac.ast
diff --git a/cerberus/tkn-2.parse/metrics.log b/cerberus/.frama-c/tkn-2.parse/metrics.log
similarity index 100%
rename from cerberus/tkn-2.parse/metrics.log
rename to cerberus/.frama-c/tkn-2.parse/metrics.log
diff --git a/cerberus/struct_inter_submember_1.eva/warnings.log b/cerberus/.frama-c/tkn-2.parse/warnings.log
similarity index 100%
rename from cerberus/struct_inter_submember_1.eva/warnings.log
rename to cerberus/.frama-c/tkn-2.parse/warnings.log
diff --git a/cerberus/tkn-3-commented.eva/alarms.csv b/cerberus/.frama-c/tkn-3-commented.eva/alarms.csv
similarity index 100%
rename from cerberus/tkn-3-commented.eva/alarms.csv
rename to cerberus/.frama-c/tkn-3-commented.eva/alarms.csv
diff --git a/cerberus/tkn-3-commented.eva/metrics.log b/cerberus/.frama-c/tkn-3-commented.eva/metrics.log
similarity index 100%
rename from cerberus/tkn-3-commented.eva/metrics.log
rename to cerberus/.frama-c/tkn-3-commented.eva/metrics.log
diff --git a/cerberus/tkn-3-commented.eva/nonterm.log b/cerberus/.frama-c/tkn-3-commented.eva/nonterm.log
similarity index 100%
rename from cerberus/tkn-3-commented.eva/nonterm.log
rename to cerberus/.frama-c/tkn-3-commented.eva/nonterm.log
diff --git a/cerberus/tkn-3-commented.eva/warnings.log b/cerberus/.frama-c/tkn-3-commented.eva/warnings.log
similarity index 100%
rename from cerberus/tkn-3-commented.eva/warnings.log
rename to cerberus/.frama-c/tkn-3-commented.eva/warnings.log
diff --git a/cerberus/tkn-3-commented.parse/framac.ast b/cerberus/.frama-c/tkn-3-commented.parse/framac.ast
similarity index 100%
rename from cerberus/tkn-3-commented.parse/framac.ast
rename to cerberus/.frama-c/tkn-3-commented.parse/framac.ast
diff --git a/cerberus/tkn-3-commented.parse/metrics.log b/cerberus/.frama-c/tkn-3-commented.parse/metrics.log
similarity index 100%
rename from cerberus/tkn-3-commented.parse/metrics.log
rename to cerberus/.frama-c/tkn-3-commented.parse/metrics.log
diff --git a/cerberus/struct_inter_submember_1.parse/warnings.log b/cerberus/.frama-c/tkn-3-commented.parse/warnings.log
similarity index 100%
rename from cerberus/struct_inter_submember_1.parse/warnings.log
rename to cerberus/.frama-c/tkn-3-commented.parse/warnings.log
diff --git a/cerberus/tkn-3.eva/alarms.csv b/cerberus/.frama-c/tkn-3.eva/alarms.csv
similarity index 100%
rename from cerberus/tkn-3.eva/alarms.csv
rename to cerberus/.frama-c/tkn-3.eva/alarms.csv
diff --git a/cerberus/tkn-3.eva/metrics.log b/cerberus/.frama-c/tkn-3.eva/metrics.log
similarity index 100%
rename from cerberus/tkn-3.eva/metrics.log
rename to cerberus/.frama-c/tkn-3.eva/metrics.log
diff --git a/cerberus/tkn-3.eva/nonterm.log b/cerberus/.frama-c/tkn-3.eva/nonterm.log
similarity index 100%
rename from cerberus/tkn-3.eva/nonterm.log
rename to cerberus/.frama-c/tkn-3.eva/nonterm.log
diff --git a/cerberus/tkn-3.eva/warnings.log b/cerberus/.frama-c/tkn-3.eva/warnings.log
similarity index 100%
rename from cerberus/tkn-3.eva/warnings.log
rename to cerberus/.frama-c/tkn-3.eva/warnings.log
diff --git a/cerberus/tkn-3.parse/framac.ast b/cerberus/.frama-c/tkn-3.parse/framac.ast
similarity index 100%
rename from cerberus/tkn-3.parse/framac.ast
rename to cerberus/.frama-c/tkn-3.parse/framac.ast
diff --git a/cerberus/tkn-3.parse/metrics.log b/cerberus/.frama-c/tkn-3.parse/metrics.log
similarity index 100%
rename from cerberus/tkn-3.parse/metrics.log
rename to cerberus/.frama-c/tkn-3.parse/metrics.log
diff --git a/cerberus/tkn-1.eva/warnings.log b/cerberus/.frama-c/tkn-3.parse/warnings.log
similarity index 100%
rename from cerberus/tkn-1.eva/warnings.log
rename to cerberus/.frama-c/tkn-3.parse/warnings.log
diff --git a/cerberus/trap_representation_1.eva/alarms.csv b/cerberus/.frama-c/trap_representation_1.eva/alarms.csv
similarity index 100%
rename from cerberus/trap_representation_1.eva/alarms.csv
rename to cerberus/.frama-c/trap_representation_1.eva/alarms.csv
diff --git a/cerberus/trap_representation_1.eva/metrics.log b/cerberus/.frama-c/trap_representation_1.eva/metrics.log
similarity index 100%
rename from cerberus/trap_representation_1.eva/metrics.log
rename to cerberus/.frama-c/trap_representation_1.eva/metrics.log
diff --git a/cerberus/trap_representation_1.eva/nonterm.log b/cerberus/.frama-c/trap_representation_1.eva/nonterm.log
similarity index 100%
rename from cerberus/trap_representation_1.eva/nonterm.log
rename to cerberus/.frama-c/trap_representation_1.eva/nonterm.log
diff --git a/cerberus/tkn-1.parse/warnings.log b/cerberus/.frama-c/trap_representation_1.eva/warnings.log
similarity index 100%
rename from cerberus/tkn-1.parse/warnings.log
rename to cerberus/.frama-c/trap_representation_1.eva/warnings.log
diff --git a/cerberus/trap_representation_1.parse/framac.ast b/cerberus/.frama-c/trap_representation_1.parse/framac.ast
similarity index 100%
rename from cerberus/trap_representation_1.parse/framac.ast
rename to cerberus/.frama-c/trap_representation_1.parse/framac.ast
diff --git a/cerberus/trap_representation_1.parse/metrics.log b/cerberus/.frama-c/trap_representation_1.parse/metrics.log
similarity index 100%
rename from cerberus/trap_representation_1.parse/metrics.log
rename to cerberus/.frama-c/trap_representation_1.parse/metrics.log
diff --git a/cerberus/tkn-2.parse/warnings.log b/cerberus/.frama-c/trap_representation_1.parse/warnings.log
similarity index 100%
rename from cerberus/tkn-2.parse/warnings.log
rename to cerberus/.frama-c/trap_representation_1.parse/warnings.log
diff --git a/cerberus/trap_representation_2.eva/alarms.csv b/cerberus/.frama-c/trap_representation_2.eva/alarms.csv
similarity index 100%
rename from cerberus/trap_representation_2.eva/alarms.csv
rename to cerberus/.frama-c/trap_representation_2.eva/alarms.csv
diff --git a/cerberus/trap_representation_2.eva/metrics.log b/cerberus/.frama-c/trap_representation_2.eva/metrics.log
similarity index 100%
rename from cerberus/trap_representation_2.eva/metrics.log
rename to cerberus/.frama-c/trap_representation_2.eva/metrics.log
diff --git a/cerberus/trap_representation_2.eva/nonterm.log b/cerberus/.frama-c/trap_representation_2.eva/nonterm.log
similarity index 100%
rename from cerberus/trap_representation_2.eva/nonterm.log
rename to cerberus/.frama-c/trap_representation_2.eva/nonterm.log
diff --git a/cerberus/tkn-3-commented.parse/warnings.log b/cerberus/.frama-c/trap_representation_2.eva/warnings.log
similarity index 100%
rename from cerberus/tkn-3-commented.parse/warnings.log
rename to cerberus/.frama-c/trap_representation_2.eva/warnings.log
diff --git a/cerberus/trap_representation_2.parse/framac.ast b/cerberus/.frama-c/trap_representation_2.parse/framac.ast
similarity index 100%
rename from cerberus/trap_representation_2.parse/framac.ast
rename to cerberus/.frama-c/trap_representation_2.parse/framac.ast
diff --git a/cerberus/trap_representation_2.parse/metrics.log b/cerberus/.frama-c/trap_representation_2.parse/metrics.log
similarity index 100%
rename from cerberus/trap_representation_2.parse/metrics.log
rename to cerberus/.frama-c/trap_representation_2.parse/metrics.log
diff --git a/cerberus/tkn-3.parse/warnings.log b/cerberus/.frama-c/trap_representation_2.parse/warnings.log
similarity index 100%
rename from cerberus/tkn-3.parse/warnings.log
rename to cerberus/.frama-c/trap_representation_2.parse/warnings.log
diff --git a/cerberus/trap_representation_3.eva/alarms.csv b/cerberus/.frama-c/trap_representation_3.eva/alarms.csv
similarity index 100%
rename from cerberus/trap_representation_3.eva/alarms.csv
rename to cerberus/.frama-c/trap_representation_3.eva/alarms.csv
diff --git a/cerberus/trap_representation_3.eva/metrics.log b/cerberus/.frama-c/trap_representation_3.eva/metrics.log
similarity index 100%
rename from cerberus/trap_representation_3.eva/metrics.log
rename to cerberus/.frama-c/trap_representation_3.eva/metrics.log
diff --git a/cerberus/trap_representation_3.eva/nonterm.log b/cerberus/.frama-c/trap_representation_3.eva/nonterm.log
similarity index 100%
rename from cerberus/trap_representation_3.eva/nonterm.log
rename to cerberus/.frama-c/trap_representation_3.eva/nonterm.log
diff --git a/cerberus/.frama-c/trap_representation_3.eva/warnings.log b/cerberus/.frama-c/trap_representation_3.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15
--- /dev/null
+++ b/cerberus/.frama-c/trap_representation_3.eva/warnings.log
@@ -0,0 +1 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
diff --git a/cerberus/trap_representation_3.parse/framac.ast b/cerberus/.frama-c/trap_representation_3.parse/framac.ast
similarity index 100%
rename from cerberus/trap_representation_3.parse/framac.ast
rename to cerberus/.frama-c/trap_representation_3.parse/framac.ast
diff --git a/cerberus/trap_representation_3.parse/metrics.log b/cerberus/.frama-c/trap_representation_3.parse/metrics.log
similarity index 100%
rename from cerberus/trap_representation_3.parse/metrics.log
rename to cerberus/.frama-c/trap_representation_3.parse/metrics.log
diff --git a/cerberus/trap_representation_1.eva/warnings.log b/cerberus/.frama-c/trap_representation_3.parse/warnings.log
similarity index 100%
rename from cerberus/trap_representation_1.eva/warnings.log
rename to cerberus/.frama-c/trap_representation_3.parse/warnings.log
diff --git a/cerberus/ubc_addr_null_1.eva/alarms.csv b/cerberus/.frama-c/ubc_addr_null_1.eva/alarms.csv
similarity index 100%
rename from cerberus/ubc_addr_null_1.eva/alarms.csv
rename to cerberus/.frama-c/ubc_addr_null_1.eva/alarms.csv
diff --git a/cerberus/ubc_addr_null_1.eva/metrics.log b/cerberus/.frama-c/ubc_addr_null_1.eva/metrics.log
similarity index 100%
rename from cerberus/ubc_addr_null_1.eva/metrics.log
rename to cerberus/.frama-c/ubc_addr_null_1.eva/metrics.log
diff --git a/cerberus/ubc_addr_null_1.eva/nonterm.log b/cerberus/.frama-c/ubc_addr_null_1.eva/nonterm.log
similarity index 100%
rename from cerberus/ubc_addr_null_1.eva/nonterm.log
rename to cerberus/.frama-c/ubc_addr_null_1.eva/nonterm.log
diff --git a/cerberus/trap_representation_1.parse/warnings.log b/cerberus/.frama-c/ubc_addr_null_1.eva/warnings.log
similarity index 100%
rename from cerberus/trap_representation_1.parse/warnings.log
rename to cerberus/.frama-c/ubc_addr_null_1.eva/warnings.log
diff --git a/cerberus/ubc_addr_null_1.parse/framac.ast b/cerberus/.frama-c/ubc_addr_null_1.parse/framac.ast
similarity index 100%
rename from cerberus/ubc_addr_null_1.parse/framac.ast
rename to cerberus/.frama-c/ubc_addr_null_1.parse/framac.ast
diff --git a/cerberus/ubc_addr_null_1.parse/metrics.log b/cerberus/.frama-c/ubc_addr_null_1.parse/metrics.log
similarity index 100%
rename from cerberus/ubc_addr_null_1.parse/metrics.log
rename to cerberus/.frama-c/ubc_addr_null_1.parse/metrics.log
diff --git a/cerberus/trap_representation_2.eva/warnings.log b/cerberus/.frama-c/ubc_addr_null_1.parse/warnings.log
similarity index 100%
rename from cerberus/trap_representation_2.eva/warnings.log
rename to cerberus/.frama-c/ubc_addr_null_1.parse/warnings.log
diff --git a/cerberus/union_punning_gcc_1.eva/alarms.csv b/cerberus/.frama-c/union_punning_gcc_1.eva/alarms.csv
similarity index 100%
rename from cerberus/union_punning_gcc_1.eva/alarms.csv
rename to cerberus/.frama-c/union_punning_gcc_1.eva/alarms.csv
diff --git a/cerberus/union_punning_gcc_1.eva/metrics.log b/cerberus/.frama-c/union_punning_gcc_1.eva/metrics.log
similarity index 100%
rename from cerberus/union_punning_gcc_1.eva/metrics.log
rename to cerberus/.frama-c/union_punning_gcc_1.eva/metrics.log
diff --git a/cerberus/union_punning_gcc_1.eva/nonterm.log b/cerberus/.frama-c/union_punning_gcc_1.eva/nonterm.log
similarity index 100%
rename from cerberus/union_punning_gcc_1.eva/nonterm.log
rename to cerberus/.frama-c/union_punning_gcc_1.eva/nonterm.log
diff --git a/cerberus/trap_representation_2.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_1.eva/warnings.log
similarity index 100%
rename from cerberus/trap_representation_2.parse/warnings.log
rename to cerberus/.frama-c/union_punning_gcc_1.eva/warnings.log
diff --git a/cerberus/union_punning_gcc_1.parse/framac.ast b/cerberus/.frama-c/union_punning_gcc_1.parse/framac.ast
similarity index 100%
rename from cerberus/union_punning_gcc_1.parse/framac.ast
rename to cerberus/.frama-c/union_punning_gcc_1.parse/framac.ast
diff --git a/cerberus/union_punning_gcc_1.parse/metrics.log b/cerberus/.frama-c/union_punning_gcc_1.parse/metrics.log
similarity index 100%
rename from cerberus/union_punning_gcc_1.parse/metrics.log
rename to cerberus/.frama-c/union_punning_gcc_1.parse/metrics.log
diff --git a/cerberus/union_punning_gcc_1.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_1.parse/warnings.log
similarity index 100%
rename from cerberus/union_punning_gcc_1.parse/warnings.log
rename to cerberus/.frama-c/union_punning_gcc_1.parse/warnings.log
diff --git a/cerberus/union_punning_gcc_2.eva/alarms.csv b/cerberus/.frama-c/union_punning_gcc_2.eva/alarms.csv
similarity index 100%
rename from cerberus/union_punning_gcc_2.eva/alarms.csv
rename to cerberus/.frama-c/union_punning_gcc_2.eva/alarms.csv
diff --git a/cerberus/union_punning_gcc_2.eva/metrics.log b/cerberus/.frama-c/union_punning_gcc_2.eva/metrics.log
similarity index 100%
rename from cerberus/union_punning_gcc_2.eva/metrics.log
rename to cerberus/.frama-c/union_punning_gcc_2.eva/metrics.log
diff --git a/cerberus/union_punning_gcc_2.eva/nonterm.log b/cerberus/.frama-c/union_punning_gcc_2.eva/nonterm.log
similarity index 100%
rename from cerberus/union_punning_gcc_2.eva/nonterm.log
rename to cerberus/.frama-c/union_punning_gcc_2.eva/nonterm.log
diff --git a/cerberus/trap_representation_3.eva/warnings.log b/cerberus/.frama-c/union_punning_gcc_2.eva/warnings.log
similarity index 100%
rename from cerberus/trap_representation_3.eva/warnings.log
rename to cerberus/.frama-c/union_punning_gcc_2.eva/warnings.log
diff --git a/cerberus/union_punning_gcc_2.parse/framac.ast b/cerberus/.frama-c/union_punning_gcc_2.parse/framac.ast
similarity index 100%
rename from cerberus/union_punning_gcc_2.parse/framac.ast
rename to cerberus/.frama-c/union_punning_gcc_2.parse/framac.ast
diff --git a/cerberus/union_punning_gcc_2.parse/metrics.log b/cerberus/.frama-c/union_punning_gcc_2.parse/metrics.log
similarity index 100%
rename from cerberus/union_punning_gcc_2.parse/metrics.log
rename to cerberus/.frama-c/union_punning_gcc_2.parse/metrics.log
diff --git a/cerberus/union_punning_gcc_2.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_2.parse/warnings.log
similarity index 100%
rename from cerberus/union_punning_gcc_2.parse/warnings.log
rename to cerberus/.frama-c/union_punning_gcc_2.parse/warnings.log
diff --git a/cerberus/union_punning_gcc_3.eva/alarms.csv b/cerberus/.frama-c/union_punning_gcc_3.eva/alarms.csv
similarity index 100%
rename from cerberus/union_punning_gcc_3.eva/alarms.csv
rename to cerberus/.frama-c/union_punning_gcc_3.eva/alarms.csv
diff --git a/cerberus/union_punning_gcc_3.eva/metrics.log b/cerberus/.frama-c/union_punning_gcc_3.eva/metrics.log
similarity index 100%
rename from cerberus/union_punning_gcc_3.eva/metrics.log
rename to cerberus/.frama-c/union_punning_gcc_3.eva/metrics.log
diff --git a/cerberus/union_punning_gcc_3.eva/nonterm.log b/cerberus/.frama-c/union_punning_gcc_3.eva/nonterm.log
similarity index 100%
rename from cerberus/union_punning_gcc_3.eva/nonterm.log
rename to cerberus/.frama-c/union_punning_gcc_3.eva/nonterm.log
diff --git a/cerberus/trap_representation_3.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_3.eva/warnings.log
similarity index 100%
rename from cerberus/trap_representation_3.parse/warnings.log
rename to cerberus/.frama-c/union_punning_gcc_3.eva/warnings.log
diff --git a/cerberus/union_punning_gcc_3.parse/framac.ast b/cerberus/.frama-c/union_punning_gcc_3.parse/framac.ast
similarity index 100%
rename from cerberus/union_punning_gcc_3.parse/framac.ast
rename to cerberus/.frama-c/union_punning_gcc_3.parse/framac.ast
diff --git a/cerberus/union_punning_gcc_3.parse/metrics.log b/cerberus/.frama-c/union_punning_gcc_3.parse/metrics.log
similarity index 100%
rename from cerberus/union_punning_gcc_3.parse/metrics.log
rename to cerberus/.frama-c/union_punning_gcc_3.parse/metrics.log
diff --git a/cerberus/union_punning_gcc_3.parse/warnings.log b/cerberus/.frama-c/union_punning_gcc_3.parse/warnings.log
similarity index 100%
rename from cerberus/union_punning_gcc_3.parse/warnings.log
rename to cerberus/.frama-c/union_punning_gcc_3.parse/warnings.log
diff --git a/cerberus/unspecified_value_control_flow_choice.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_control_flow_choice.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_control_flow_choice.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_control_flow_choice.eva/alarms.csv
diff --git a/cerberus/unspecified_value_control_flow_choice.eva/metrics.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_control_flow_choice.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_control_flow_choice.eva/metrics.log
diff --git a/cerberus/unspecified_value_control_flow_choice.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_control_flow_choice.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_control_flow_choice.eva/nonterm.log
diff --git a/cerberus/ubc_addr_null_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.eva/warnings.log
similarity index 100%
rename from cerberus/ubc_addr_null_1.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_control_flow_choice.eva/warnings.log
diff --git a/cerberus/unspecified_value_control_flow_choice.parse/framac.ast b/cerberus/.frama-c/unspecified_value_control_flow_choice.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_control_flow_choice.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_control_flow_choice.parse/framac.ast
diff --git a/cerberus/unspecified_value_control_flow_choice.parse/metrics.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_control_flow_choice.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_control_flow_choice.parse/metrics.log
diff --git a/cerberus/ubc_addr_null_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_control_flow_choice.parse/warnings.log
similarity index 100%
rename from cerberus/ubc_addr_null_1.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_control_flow_choice.parse/warnings.log
diff --git a/cerberus/unspecified_value_daemonic_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_daemonic_1.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_daemonic_1.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_daemonic_1.eva/alarms.csv
diff --git a/cerberus/unspecified_value_daemonic_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_daemonic_1.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_daemonic_1.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_daemonic_1.eva/metrics.log
diff --git a/cerberus/unspecified_value_daemonic_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_daemonic_1.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_daemonic_1.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_daemonic_1.eva/nonterm.log
diff --git a/cerberus/union_punning_gcc_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_daemonic_1.eva/warnings.log
similarity index 100%
rename from cerberus/union_punning_gcc_1.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_daemonic_1.eva/warnings.log
diff --git a/cerberus/unspecified_value_daemonic_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_daemonic_1.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_daemonic_1.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_daemonic_1.parse/framac.ast
diff --git a/cerberus/unspecified_value_daemonic_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_daemonic_1.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_daemonic_1.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_daemonic_1.parse/metrics.log
diff --git a/cerberus/union_punning_gcc_2.eva/warnings.log b/cerberus/.frama-c/unspecified_value_daemonic_1.parse/warnings.log
similarity index 100%
rename from cerberus/union_punning_gcc_2.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_daemonic_1.parse/warnings.log
diff --git a/cerberus/unspecified_value_library_call_argument.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_library_call_argument.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_library_call_argument.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_library_call_argument.eva/alarms.csv
diff --git a/cerberus/unspecified_value_library_call_argument.eva/metrics.log b/cerberus/.frama-c/unspecified_value_library_call_argument.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_library_call_argument.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_library_call_argument.eva/metrics.log
diff --git a/cerberus/unspecified_value_library_call_argument.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_library_call_argument.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_library_call_argument.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_library_call_argument.eva/nonterm.log
diff --git a/cerberus/union_punning_gcc_3.eva/warnings.log b/cerberus/.frama-c/unspecified_value_library_call_argument.eva/warnings.log
similarity index 100%
rename from cerberus/union_punning_gcc_3.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_library_call_argument.eva/warnings.log
diff --git a/cerberus/unspecified_value_library_call_argument.parse/framac.ast b/cerberus/.frama-c/unspecified_value_library_call_argument.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_library_call_argument.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_library_call_argument.parse/framac.ast
diff --git a/cerberus/unspecified_value_library_call_argument.parse/metrics.log b/cerberus/.frama-c/unspecified_value_library_call_argument.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_library_call_argument.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_library_call_argument.parse/metrics.log
diff --git a/cerberus/unspecified_value_control_flow_choice.eva/warnings.log b/cerberus/.frama-c/unspecified_value_library_call_argument.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_control_flow_choice.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_library_call_argument.parse/warnings.log
diff --git a/cerberus/unspecified_value_representation_bytes_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_1.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/alarms.csv
diff --git a/cerberus/unspecified_value_representation_bytes_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_1.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_1.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/nonterm.log
diff --git a/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..14647f2485bd840524d36da174531e6de0237c15
--- /dev/null
+++ b/cerberus/.frama-c/unspecified_value_representation_bytes_1.eva/warnings.log
@@ -0,0 +1 @@
+[kernel] warning: 2 states in saved file ignored. They are invalid in this Frama-C configuration.
diff --git a/cerberus/unspecified_value_representation_bytes_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_1.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/framac.ast
diff --git a/cerberus/unspecified_value_representation_bytes_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_1.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_1.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_1.parse/warnings.log
diff --git a/cerberus/unspecified_value_representation_bytes_2.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_2.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/alarms.csv
diff --git a/cerberus/unspecified_value_representation_bytes_2.eva/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_2.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_2.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_2.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/nonterm.log
diff --git a/cerberus/unspecified_value_control_flow_choice.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_control_flow_choice.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.eva/warnings.log
diff --git a/cerberus/unspecified_value_representation_bytes_2.parse/framac.ast b/cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_2.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/framac.ast
diff --git a/cerberus/unspecified_value_representation_bytes_2.parse/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_2.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_2.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_2.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_2.parse/warnings.log
diff --git a/cerberus/unspecified_value_representation_bytes_3.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_3.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/alarms.csv
diff --git a/cerberus/unspecified_value_representation_bytes_3.eva/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_3.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_3.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_3.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/nonterm.log
diff --git a/cerberus/unspecified_value_daemonic_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_daemonic_1.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.eva/warnings.log
diff --git a/cerberus/unspecified_value_representation_bytes_3.parse/framac.ast b/cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_3.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/framac.ast
diff --git a/cerberus/unspecified_value_representation_bytes_3.parse/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_3.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_3.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_3.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_3.parse/warnings.log
diff --git a/cerberus/unspecified_value_representation_bytes_4.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_4.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/alarms.csv
diff --git a/cerberus/unspecified_value_representation_bytes_4.eva/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_4.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_4.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_4.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/nonterm.log
diff --git a/cerberus/unspecified_value_daemonic_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_daemonic_1.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.eva/warnings.log
diff --git a/cerberus/unspecified_value_representation_bytes_4.parse/framac.ast b/cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_4.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/framac.ast
diff --git a/cerberus/unspecified_value_representation_bytes_4.parse/metrics.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_4.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_4.parse/warnings.log b/cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_4.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_representation_bytes_4.parse/warnings.log
diff --git a/cerberus/unspecified_value_stability.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_stability.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_stability.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_stability.eva/alarms.csv
diff --git a/cerberus/unspecified_value_stability.eva/metrics.log b/cerberus/.frama-c/unspecified_value_stability.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_stability.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_stability.eva/metrics.log
diff --git a/cerberus/unspecified_value_stability.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_stability.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_stability.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_stability.eva/nonterm.log
diff --git a/cerberus/unspecified_value_library_call_argument.eva/warnings.log b/cerberus/.frama-c/unspecified_value_stability.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_library_call_argument.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_stability.eva/warnings.log
diff --git a/cerberus/unspecified_value_stability.parse/framac.ast b/cerberus/.frama-c/unspecified_value_stability.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_stability.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_stability.parse/framac.ast
diff --git a/cerberus/unspecified_value_stability.parse/metrics.log b/cerberus/.frama-c/unspecified_value_stability.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_stability.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_stability.parse/metrics.log
diff --git a/cerberus/unspecified_value_stability.parse/warnings.log b/cerberus/.frama-c/unspecified_value_stability.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_stability.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_stability.parse/warnings.log
diff --git a/cerberus/unspecified_value_strictness_and_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_and_1.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_strictness_and_1.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_strictness_and_1.eva/alarms.csv
diff --git a/cerberus/unspecified_value_strictness_and_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_and_1.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_and_1.eva/metrics.log
diff --git a/cerberus/unspecified_value_strictness_and_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_and_1.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_strictness_and_1.eva/nonterm.log
diff --git a/cerberus/unspecified_value_library_call_argument.parse/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_library_call_argument.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_and_1.eva/warnings.log
diff --git a/cerberus/unspecified_value_strictness_and_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_and_1.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_strictness_and_1.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_strictness_and_1.parse/framac.ast
diff --git a/cerberus/unspecified_value_strictness_and_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_and_1.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_and_1.parse/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_and_1.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_1.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_and_1.parse/warnings.log
diff --git a/cerberus/unspecified_value_strictness_int.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_int.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_strictness_int.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_strictness_int.eva/alarms.csv
diff --git a/cerberus/unspecified_value_strictness_int.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_int.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_int.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_int.eva/metrics.log
diff --git a/cerberus/unspecified_value_strictness_int.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_int.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_int.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_strictness_int.eva/nonterm.log
diff --git a/cerberus/unspecified_value_representation_bytes_2.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_int.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_2.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_int.eva/warnings.log
diff --git a/cerberus/unspecified_value_strictness_int.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_int.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_strictness_int.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_strictness_int.parse/framac.ast
diff --git a/cerberus/unspecified_value_strictness_int.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_int.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_int.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_int.parse/metrics.log
diff --git a/cerberus/unspecified_value_representation_bytes_3.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_int.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_3.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_int.parse/warnings.log
diff --git a/cerberus/unspecified_value_strictness_mod_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_1.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/alarms.csv
diff --git a/cerberus/unspecified_value_strictness_mod_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_1.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/metrics.log
diff --git a/cerberus/unspecified_value_strictness_mod_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_1.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/nonterm.log
diff --git a/cerberus/unspecified_value_representation_bytes_4.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_representation_bytes_4.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.eva/warnings.log
diff --git a/cerberus/unspecified_value_strictness_mod_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_1.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/framac.ast
diff --git a/cerberus/unspecified_value_strictness_mod_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_1.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/metrics.log
diff --git a/cerberus/unspecified_value_stability.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_stability.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_1.parse/warnings.log
diff --git a/cerberus/unspecified_value_strictness_mod_2.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_2.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/alarms.csv
diff --git a/cerberus/unspecified_value_strictness_mod_2.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_2.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/metrics.log
diff --git a/cerberus/unspecified_value_strictness_mod_2.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_2.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/nonterm.log
diff --git a/cerberus/unspecified_value_strictness_and_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_and_1.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.eva/warnings.log
diff --git a/cerberus/unspecified_value_strictness_mod_2.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_2.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/framac.ast
diff --git a/cerberus/unspecified_value_strictness_mod_2.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_2.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/metrics.log
diff --git a/cerberus/unspecified_value_strictness_and_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_and_1.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_mod_2.parse/warnings.log
diff --git a/cerberus/unspecified_value_strictness_unsigned_char.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_strictness_unsigned_char.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/alarms.csv
diff --git a/cerberus/unspecified_value_strictness_unsigned_char.eva/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_unsigned_char.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/metrics.log
diff --git a/cerberus/unspecified_value_strictness_unsigned_char.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_unsigned_char.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/nonterm.log
diff --git a/cerberus/unspecified_value_strictness_int.eva/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_int.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.eva/warnings.log
diff --git a/cerberus/unspecified_value_strictness_unsigned_char.parse/framac.ast b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_strictness_unsigned_char.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/framac.ast
diff --git a/cerberus/unspecified_value_strictness_unsigned_char.parse/metrics.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_unsigned_char.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/metrics.log
diff --git a/cerberus/unspecified_value_strictness_int.parse/warnings.log b/cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_int.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_strictness_unsigned_char.parse/warnings.log
diff --git a/cerberus/unspecified_value_struct_copy.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_struct_copy.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_struct_copy.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_struct_copy.eva/alarms.csv
diff --git a/cerberus/unspecified_value_struct_copy.eva/metrics.log b/cerberus/.frama-c/unspecified_value_struct_copy.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_struct_copy.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_struct_copy.eva/metrics.log
diff --git a/cerberus/unspecified_value_struct_copy.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_struct_copy.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_struct_copy.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_struct_copy.eva/nonterm.log
diff --git a/cerberus/unspecified_value_strictness_mod_1.eva/warnings.log b/cerberus/.frama-c/unspecified_value_struct_copy.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_1.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_struct_copy.eva/warnings.log
diff --git a/cerberus/unspecified_value_struct_copy.parse/framac.ast b/cerberus/.frama-c/unspecified_value_struct_copy.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_struct_copy.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_struct_copy.parse/framac.ast
diff --git a/cerberus/unspecified_value_struct_copy.parse/metrics.log b/cerberus/.frama-c/unspecified_value_struct_copy.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_struct_copy.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_struct_copy.parse/metrics.log
diff --git a/cerberus/unspecified_value_strictness_mod_1.parse/warnings.log b/cerberus/.frama-c/unspecified_value_struct_copy.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_1.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_struct_copy.parse/warnings.log
diff --git a/cerberus/unspecified_value_union_1.eva/alarms.csv b/cerberus/.frama-c/unspecified_value_union_1.eva/alarms.csv
similarity index 100%
rename from cerberus/unspecified_value_union_1.eva/alarms.csv
rename to cerberus/.frama-c/unspecified_value_union_1.eva/alarms.csv
diff --git a/cerberus/unspecified_value_union_1.eva/metrics.log b/cerberus/.frama-c/unspecified_value_union_1.eva/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_union_1.eva/metrics.log
rename to cerberus/.frama-c/unspecified_value_union_1.eva/metrics.log
diff --git a/cerberus/unspecified_value_union_1.eva/nonterm.log b/cerberus/.frama-c/unspecified_value_union_1.eva/nonterm.log
similarity index 100%
rename from cerberus/unspecified_value_union_1.eva/nonterm.log
rename to cerberus/.frama-c/unspecified_value_union_1.eva/nonterm.log
diff --git a/cerberus/unspecified_value_strictness_mod_2.eva/warnings.log b/cerberus/.frama-c/unspecified_value_union_1.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_2.eva/warnings.log
rename to cerberus/.frama-c/unspecified_value_union_1.eva/warnings.log
diff --git a/cerberus/unspecified_value_union_1.parse/framac.ast b/cerberus/.frama-c/unspecified_value_union_1.parse/framac.ast
similarity index 100%
rename from cerberus/unspecified_value_union_1.parse/framac.ast
rename to cerberus/.frama-c/unspecified_value_union_1.parse/framac.ast
diff --git a/cerberus/unspecified_value_union_1.parse/metrics.log b/cerberus/.frama-c/unspecified_value_union_1.parse/metrics.log
similarity index 100%
rename from cerberus/unspecified_value_union_1.parse/metrics.log
rename to cerberus/.frama-c/unspecified_value_union_1.parse/metrics.log
diff --git a/cerberus/unspecified_value_strictness_mod_2.parse/warnings.log b/cerberus/.frama-c/unspecified_value_union_1.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_mod_2.parse/warnings.log
rename to cerberus/.frama-c/unspecified_value_union_1.parse/warnings.log
diff --git a/cerberus/write_union_same_prefix_visible.eva/alarms.csv b/cerberus/.frama-c/write_union_same_prefix_visible.eva/alarms.csv
similarity index 100%
rename from cerberus/write_union_same_prefix_visible.eva/alarms.csv
rename to cerberus/.frama-c/write_union_same_prefix_visible.eva/alarms.csv
diff --git a/cerberus/write_union_same_prefix_visible.eva/metrics.log b/cerberus/.frama-c/write_union_same_prefix_visible.eva/metrics.log
similarity index 100%
rename from cerberus/write_union_same_prefix_visible.eva/metrics.log
rename to cerberus/.frama-c/write_union_same_prefix_visible.eva/metrics.log
diff --git a/cerberus/write_union_same_prefix_visible.eva/nonterm.log b/cerberus/.frama-c/write_union_same_prefix_visible.eva/nonterm.log
similarity index 100%
rename from cerberus/write_union_same_prefix_visible.eva/nonterm.log
rename to cerberus/.frama-c/write_union_same_prefix_visible.eva/nonterm.log
diff --git a/cerberus/unspecified_value_strictness_unsigned_char.eva/warnings.log b/cerberus/.frama-c/write_union_same_prefix_visible.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_unsigned_char.eva/warnings.log
rename to cerberus/.frama-c/write_union_same_prefix_visible.eva/warnings.log
diff --git a/cerberus/write_union_same_prefix_visible.parse/framac.ast b/cerberus/.frama-c/write_union_same_prefix_visible.parse/framac.ast
similarity index 100%
rename from cerberus/write_union_same_prefix_visible.parse/framac.ast
rename to cerberus/.frama-c/write_union_same_prefix_visible.parse/framac.ast
diff --git a/cerberus/write_union_same_prefix_visible.parse/metrics.log b/cerberus/.frama-c/write_union_same_prefix_visible.parse/metrics.log
similarity index 100%
rename from cerberus/write_union_same_prefix_visible.parse/metrics.log
rename to cerberus/.frama-c/write_union_same_prefix_visible.parse/metrics.log
diff --git a/cerberus/unspecified_value_strictness_unsigned_char.parse/warnings.log b/cerberus/.frama-c/write_union_same_prefix_visible.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_strictness_unsigned_char.parse/warnings.log
rename to cerberus/.frama-c/write_union_same_prefix_visible.parse/warnings.log
diff --git a/cerberus/GNUmakefile b/cerberus/GNUmakefile
deleted file mode 100644
index 89cb2356167d13d5789055afe2ee853179374934..0000000000000000000000000000000000000000
--- a/cerberus/GNUmakefile
+++ /dev/null
@@ -1,454 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -includefc_stubs.h
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-  -no-autoload-plugins -load-module eva,from,inout,metrics,nonterm,report,scope,variadic \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -slevel 6000 \
-
-TARGETS := \
-besson_blazy_wilke_6_2.eva \
-besson_blazy_wilke_bitfields_1.eva \
-besson_blazy_wilke_bitfields_1u.eva \
-besson_blazy_wilkie_Fig_1_adapted.eva \
-besson_blazy_wilkie_Fig_1.eva \
-besson_blazy_wilkie_Fig_2.eva \
-cast_struct_and_first_member_1.eva \
-cast_struct_inter_member_1.eva \
-cast_struct_isomorphic.eva \
-cast_struct_same_prefix.eva \
-cast_union_and_member_1.eva \
-cheri_01_deconst.eva \
-cheri_02_container.eva \
-cheri_03_ii.eva \
-cheri_03_ii_char.eva \
-cheri_04a_int_uintptr_t.eva \
-cheri_04b_int_unsigned_long.eva \
-cheri_05_ia.eva \
-cheri_06_mask.eva \
-cheri_07_wide.eva \
-cheri_08_last_word.eva \
-compcertMMv2-1.eva \
-compcertMMv2-2.eva \
-compcertMMv2-3.eva \
-compcertMMv2-4.eva \
-compcertMMv2-5.eva \
-compcertTSO-1.eva \
-compcertTSO-2.eva \
-effective_type_10.eva \
-effective_type_1.eva \
-effective_type_2.eva \
-effective_type_5.eva \
-effective_type_6.eva \
-effective_type_7.eva \
-effective_type_8.eva \
-effective_type_9.eva \
-frama-c-2013-03-13-2.eva \
-frama-c-2013-03-13-3.eva \
-frama-c-2013-03-13-3-uc.eva \
-khmgzv-1.eva \
-khmgzv-2.eva \
-klw-itp14-1.eva \
-klw-itp14-2.eva \
-krebbers_biener_1.eva \
-null_pointer_1.eva \
-null_pointer_2.eva \
-null_pointer_3.eva \
-null_pointer_4.eva \
-padding_10.eva \
-padding_struct_copy_1.eva \
-padding_struct_copy_2.eva \
-padding_struct_copy_3.eva \
-padding_struct_copy_of_representation_bytes.eva \
-padding_struct_members_copy.eva \
-padding_subunion_1.eva \
-padding_subunion_2.eva \
-padding_unspecified_value_1.eva \
-padding_unspecified_value_2.eva \
-padding_unspecified_value_3.eva \
-padding_unspecified_value_4.eva \
-padding_unspecified_value_5.eva \
-padding_unspecified_value_6.eva \
-padding_unspecified_value_7.eva \
-padding_unspecified_value_8.eva \
-pointer_add_wrap_1.eva \
-pointer_add_wrap_2.eva \
-pointer_arith_algebraic_properties_1_global.eva \
-pointer_arith_algebraic_properties_2_auto.eva \
-pointer_arith_algebraic_properties_2_global.eva \
-pointer_arith_algebraic_properties_3_auto.eva \
-pointer_arith_algebraic_properties_3_global.eva \
-pointer_comparison_7b.eva \
-pointer_comparison_7c.eva \
-pointer_comparison_eq_1_auto.eva \
-pointer_comparison_eq_1_global.eva \
-pointer_comparison_eq_2_auto.eva \
-pointer_comparison_eq_2_global.eva \
-pointer_comparison_eq_zombie_1.eva \
-pointer_comparison_eq_zombie_2.eva \
-pointer_comparison_rel_1_auto.eva \
-pointer_comparison_rel_1_global.eva \
-pointer_comparison_rel_different_type_members.eva \
-pointer_comparison_rel_substruct.eva \
-pointer_copy_memcpy.eva \
-pointer_copy_user_ctrlflow_bitwise.eva \
-pointer_copy_user_ctrlflow_bytewise_abbrev.eva \
-pointer_copy_user_ctrlflow_bytewise.eva \
-pointer_copy_user_dataflow_direct_bitwise.eva \
-pointer_copy_user_dataflow_direct_bytewise.eva \
-pointer_copy_user_dataflow_indirect_bytewise.eva \
-pointer_from_concrete_address_1.eva \
-pointer_from_concrete_address_2.eva \
-pointer_offset_constant_8_malloc.eva \
-pointer_offset_from_subtraction_1_auto.eva \
-pointer_offset_from_subtraction_1_global.eva \
-pointer_offset_from_subtraction_1_malloc.eva \
-pointer_offset_from_subtraction_2_auto.eva \
-pointer_offset_from_subtraction_2_global.eva \
-pointer_offset_xor_auto.eva \
-pointer_offset_xor_global.eva \
-pointer_stability_1.eva \
-pointer_stability_2.eva \
-provenance_basic_auto_xy.eva \
-provenance_basic_auto_yx.eva \
-provenance_basic_global_xy.eva \
-provenance_basic_global_yx.eva \
-provenance_basic_malloc_offset+12.eva \
-provenance_basic_malloc_offset+2.eva \
-provenance_basic_malloc_offset-4.eva \
-provenance_basic_malloc_offset+4.eva \
-provenance_basic_malloc_offset+8.eva \
-provenance_basic_mixed_auto.eva \
-provenance_basic_mixed_auto_offset-4.eva \
-provenance_basic_mixed_auto_offset+4.eva \
-provenance_basic_mixed_auto_offset-64.eva \
-provenance_basic_mixed_global_offset-4.eva \
-provenance_basic_mixed_global_offset+4.eva \
-provenance_basic_mixed_global_offset-64.eva \
-provenance_basic_using_intptr_t_auto_xy.eva \
-provenance_basic_using_intptr_t_auto_yx.eva \
-provenance_basic_using_intptr_t_auto_yx_offset-16.eva \
-provenance_basic_using_intptr_t_global_xy.eva \
-provenance_basic_using_intptr_t_global_xy_offset64.eva \
-provenance_basic_using_intptr_t_global_yx.eva \
-provenance_basic_using_intptr_t_malloc_offset_-16.eva \
-provenance_basic_using_intptr_t_malloc_offset_8.eva \
-provenance_equality_auto_cu_yx_a.eva \
-provenance_equality_auto_cu_yx_b.eva \
-provenance_equality_auto_fn_yx.eva \
-provenance_equality_auto_yx.eva \
-provenance_equality_global_cu_xy_a.eva \
-provenance_equality_global_cu_xy_b.eva \
-provenance_equality_global_cu_yx_a.eva \
-provenance_equality_global_cu_yx_b.eva \
-provenance_equality_global_fn_xy.eva \
-provenance_equality_global_fn_yx.eva \
-provenance_equality_global_xy.eva \
-provenance_equality_global_yx.eva \
-provenance_equality_uintptr_t_global_xy.eva \
-provenance_equality_uintptr_t_global_yx.eva \
-provenance_multiple_1_global.eva \
-provenance_multiple_2_global.eva \
-provenance_multiple_3_global_yx.eva \
-provenance_multiple_4_global_yx.eva \
-provenance_multiple_5_auto.eva \
-provenance_multiple_5_global.eva \
-provenance_roundtrip_via_intptr_t.eva \
-provenance_roundtrip_via_unsigned_long.eva \
-provenance_tag_bits_via_uintptr_t_1.eva \
-provenance_tag_bits_via_uintptr_t_1_no_assert.eva \
-provenance_union_punning_1_global.eva \
-provenance_union_punning_2_auto_xy.eva \
-provenance_union_punning_2_auto_yx.eva \
-provenance_union_punning_2_global_xy.eva \
-provenance_union_punning_2_global_yx.eva \
-provenance_via_io_auto.eva \
-provenance_via_io_bytewise_global.eva \
-provenance_via_io_global.eva \
-provenance_via_io_percentp_global.eva \
-provenance_via_io_uintptr_t_global.eva \
-read_union_same_prefix_visible.eva \
-read_via_invalid_1.eva \
-signalling_nan_1.eva \
-struct_initialise_members.eva \
-struct_inter_submember_1.eva \
-tkn-1.eva \
-tkn-2.eva \
-tkn-3.eva \
-tkn-3-commented.eva \
-trap_representation_1.eva \
-trap_representation_2.eva \
-trap_representation_3.eva \
-ubc_addr_null_1.eva \
-union_punning_gcc_1.eva \
-union_punning_gcc_2.eva \
-union_punning_gcc_3.eva \
-unspecified_value_control_flow_choice.eva \
-unspecified_value_daemonic_1.eva \
-unspecified_value_library_call_argument.eva \
-unspecified_value_representation_bytes_1.eva \
-unspecified_value_representation_bytes_2.eva \
-unspecified_value_representation_bytes_3.eva \
-unspecified_value_representation_bytes_4.eva \
-unspecified_value_stability.eva \
-unspecified_value_strictness_and_1.eva \
-unspecified_value_strictness_int.eva \
-unspecified_value_strictness_mod_1.eva \
-unspecified_value_strictness_mod_2.eva \
-unspecified_value_strictness_unsigned_char.eva \
-unspecified_value_struct_copy.eva \
-unspecified_value_union_1.eva \
-write_union_same_prefix_visible.eva \
-
-# Default target
-all: $(TARGETS)
-
-#TODO: support stdalign.h and _Alignas for the following targets:
-#TARGETS+=effective_type_3 effective_type_4
-
-# Syntactically invalid and non-obvious to fix
-#use_struct_isomorphic.parse: use_struct_isomorphic.c
-
-# Redefines memcpy
-# compcertMMv2-6.eva
-
-
-besson_blazy_wilke_6_2.parse: besson_blazy_wilke_6_2.c
-besson_blazy_wilke_bitfields_1.parse: besson_blazy_wilke_bitfields_1.c
-besson_blazy_wilke_bitfields_1u.parse: besson_blazy_wilke_bitfields_1u.c
-besson_blazy_wilkie_Fig_1_adapted.parse: besson_blazy_wilkie_Fig_1_adapted.c
-besson_blazy_wilkie_Fig_1.parse: besson_blazy_wilkie_Fig_1.c
-besson_blazy_wilkie_Fig_2.parse: besson_blazy_wilkie_Fig_2.c
-cast_struct_and_first_member_1.parse: cast_struct_and_first_member_1.c
-cast_struct_inter_member_1.parse: cast_struct_inter_member_1.c
-cast_struct_isomorphic.parse: cast_struct_isomorphic.c
-cast_struct_same_prefix.parse: cast_struct_same_prefix.c
-cast_union_and_member_1.parse: cast_union_and_member_1.c
-cheri_01_deconst.parse: cheri_01_deconst.c
-cheri_02_container.parse: cheri_02_container.c
-cheri_03_ii.parse: cheri_03_ii.c
-cheri_03_ii_char.parse: cheri_03_ii_char.c
-cheri_04a_int_uintptr_t.parse: cheri_04a_int_uintptr_t.c
-cheri_04b_int_unsigned_long.parse: cheri_04b_int_unsigned_long.c
-cheri_05_ia.parse: cheri_05_ia.c
-cheri_06_mask.parse: cheri_06_mask.c
-cheri_07_wide.parse: cheri_07_wide.c
-cheri_08_last_word.parse: cheri_08_last_word.c
-compcertMMv2-1.parse: compcertMMv2-1.c
-compcertMMv2-2.parse: compcertMMv2-2.c
-compcertMMv2-3.parse: compcertMMv2-3.c
-compcertMMv2-4.parse: compcertMMv2-4.c
-compcertMMv2-5.parse: compcertMMv2-5.c
-compcertTSO-1.parse: compcertTSO-1.c
-compcertTSO-2.parse: compcertTSO-2.c
-effective_type_10.parse: effective_type_10.c
-effective_type_1.parse: effective_type_1.c
-effective_type_2.parse: effective_type_2.c
-effective_type_3.parse: effective_type_3.c
-effective_type_4.parse: effective_type_4.c
-effective_type_5.parse: effective_type_5.c
-effective_type_6.parse: effective_type_6.c
-effective_type_7.parse: effective_type_7.c
-effective_type_8.parse: effective_type_8.c
-effective_type_9.parse: effective_type_9.c
-frama-c-2013-03-13-2.parse: frama-c-2013-03-13-2.c
-frama-c-2013-03-13-3.parse: frama-c-2013-03-13-3.c
-frama-c-2013-03-13-3-uc.parse: frama-c-2013-03-13-3-uc.c
-khmgzv-1.parse: khmgzv-1.c
-khmgzv-2.parse: khmgzv-2.c
-klw-itp14-1.parse: klw-itp14-1.c
-klw-itp14-2.parse: klw-itp14-2.c
-krebbers_biener_1.parse: krebbers_biener_1.c
-null_pointer_1.parse: null_pointer_1.c
-null_pointer_2.parse: null_pointer_2.c
-null_pointer_3.parse: null_pointer_3.c
-null_pointer_4.parse: null_pointer_4.c
-padding_10.parse: padding_10.c
-padding_struct_copy_1.parse: padding_struct_copy_1.c
-padding_struct_copy_2.parse: padding_struct_copy_2.c
-padding_struct_copy_3.parse: padding_struct_copy_3.c
-padding_struct_copy_of_representation_bytes.parse: padding_struct_copy_of_representation_bytes.c
-padding_struct_members_copy.parse: padding_struct_members_copy.c
-padding_subunion_1.parse: padding_subunion_1.c
-padding_subunion_2.parse: padding_subunion_2.c
-padding_unspecified_value_1.parse: padding_unspecified_value_1.c
-padding_unspecified_value_2.parse: padding_unspecified_value_2.c
-padding_unspecified_value_3.parse: padding_unspecified_value_3.c
-padding_unspecified_value_4.parse: padding_unspecified_value_4.c
-padding_unspecified_value_5.parse: padding_unspecified_value_5.c
-padding_unspecified_value_6.parse: padding_unspecified_value_6.c
-padding_unspecified_value_7.parse: padding_unspecified_value_7.c
-padding_unspecified_value_8.parse: padding_unspecified_value_8.c
-pointer_add_wrap_1.parse: pointer_add_wrap_1.c
-pointer_add_wrap_2.parse: pointer_add_wrap_2.c
-pointer_arith_algebraic_properties_1_global.parse: pointer_arith_algebraic_properties_1_global.c
-pointer_arith_algebraic_properties_2_auto.parse: pointer_arith_algebraic_properties_2_auto.c
-pointer_arith_algebraic_properties_2_global.parse: pointer_arith_algebraic_properties_2_global.c
-pointer_arith_algebraic_properties_3_auto.parse: pointer_arith_algebraic_properties_3_auto.c
-pointer_arith_algebraic_properties_3_global.parse: pointer_arith_algebraic_properties_3_global.c
-pointer_comparison_7b.parse: pointer_comparison_7b.c
-pointer_comparison_7c.parse: pointer_comparison_7c.c
-pointer_comparison_eq_1_auto.parse: pointer_comparison_eq_1_auto.c
-pointer_comparison_eq_1_global.parse: pointer_comparison_eq_1_global.c
-pointer_comparison_eq_2_auto.parse: pointer_comparison_eq_2_auto.c
-pointer_comparison_eq_2_global.parse: pointer_comparison_eq_2_global.c
-pointer_comparison_eq_zombie_1.parse: pointer_comparison_eq_zombie_1.c
-pointer_comparison_eq_zombie_2.parse: pointer_comparison_eq_zombie_2.c
-pointer_comparison_rel_1_auto.parse: pointer_comparison_rel_1_auto.c
-pointer_comparison_rel_1_global.parse: pointer_comparison_rel_1_global.c
-pointer_comparison_rel_different_type_members.parse: pointer_comparison_rel_different_type_members.c
-pointer_comparison_rel_substruct.parse: pointer_comparison_rel_substruct.c
-pointer_copy_memcpy.parse: pointer_copy_memcpy.c
-pointer_copy_user_ctrlflow_bitwise.parse: pointer_copy_user_ctrlflow_bitwise.c
-pointer_copy_user_ctrlflow_bytewise_abbrev.parse: pointer_copy_user_ctrlflow_bytewise_abbrev.c
-pointer_copy_user_ctrlflow_bytewise.parse: pointer_copy_user_ctrlflow_bytewise.c
-pointer_copy_user_dataflow_direct_bitwise.parse: pointer_copy_user_dataflow_direct_bitwise.c
-pointer_copy_user_dataflow_direct_bytewise.parse: pointer_copy_user_dataflow_direct_bytewise.c
-pointer_copy_user_dataflow_indirect_bytewise.parse: pointer_copy_user_dataflow_indirect_bytewise.c
-pointer_from_concrete_address_1.parse: pointer_from_concrete_address_1.c
-pointer_from_concrete_address_2.parse: pointer_from_concrete_address_2.c
-pointer_offset_constant_8_malloc.parse: pointer_offset_constant_8_malloc.c
-pointer_offset_from_subtraction_1_auto.parse: pointer_offset_from_subtraction_1_auto.c
-pointer_offset_from_subtraction_1_global.parse: pointer_offset_from_subtraction_1_global.c
-pointer_offset_from_subtraction_1_malloc.parse: pointer_offset_from_subtraction_1_malloc.c
-pointer_offset_from_subtraction_2_auto.parse: pointer_offset_from_subtraction_2_auto.c
-pointer_offset_from_subtraction_2_global.parse: pointer_offset_from_subtraction_2_global.c
-pointer_offset_xor_auto.parse: pointer_offset_xor_auto.c
-pointer_offset_xor_global.parse: pointer_offset_xor_global.c
-pointer_stability_1.parse: pointer_stability_1.c
-pointer_stability_2.parse: pointer_stability_2.c
-provenance_basic_auto_xy.parse: provenance_basic_auto_xy.c
-provenance_basic_auto_yx.parse: provenance_basic_auto_yx.c
-provenance_basic_global_xy.parse: provenance_basic_global_xy.c
-provenance_basic_global_yx.parse: provenance_basic_global_yx.c
-provenance_basic_malloc_offset+12.parse: provenance_basic_malloc_offset+12.c
-provenance_basic_malloc_offset+2.parse: provenance_basic_malloc_offset+2.c
-provenance_basic_malloc_offset-4.parse: provenance_basic_malloc_offset-4.c
-provenance_basic_malloc_offset+4.parse: provenance_basic_malloc_offset+4.c
-provenance_basic_malloc_offset+8.parse: provenance_basic_malloc_offset+8.c
-provenance_basic_mixed_auto.parse: provenance_basic_mixed_auto.c
-provenance_basic_mixed_auto_offset-4.parse: provenance_basic_mixed_auto_offset-4.c
-provenance_basic_mixed_auto_offset+4.parse: provenance_basic_mixed_auto_offset+4.c
-provenance_basic_mixed_auto_offset-64.parse: provenance_basic_mixed_auto_offset-64.c
-provenance_basic_mixed_global_offset-4.parse: provenance_basic_mixed_global_offset-4.c
-provenance_basic_mixed_global_offset+4.parse: provenance_basic_mixed_global_offset+4.c
-provenance_basic_mixed_global_offset-64.parse: provenance_basic_mixed_global_offset-64.c
-provenance_basic_using_intptr_t_auto_xy.parse: provenance_basic_using_intptr_t_auto_xy.c
-provenance_basic_using_intptr_t_auto_yx.parse: provenance_basic_using_intptr_t_auto_yx.c
-provenance_basic_using_intptr_t_auto_yx_offset-16.parse: provenance_basic_using_intptr_t_auto_yx_offset-16.c
-provenance_basic_using_intptr_t_global_xy.parse: provenance_basic_using_intptr_t_global_xy.c
-provenance_basic_using_intptr_t_global_xy_offset64.parse: provenance_basic_using_intptr_t_global_xy_offset64.c
-provenance_basic_using_intptr_t_global_yx.parse: provenance_basic_using_intptr_t_global_yx.c
-provenance_basic_using_intptr_t_malloc_offset_-16.parse: provenance_basic_using_intptr_t_malloc_offset_-16.c
-provenance_basic_using_intptr_t_malloc_offset_8.parse: provenance_basic_using_intptr_t_malloc_offset_8.c
-provenance_equality_auto_cu_yx_a.parse: provenance_equality_auto_cu_yx_a.c
-provenance_equality_auto_cu_yx_b.parse: provenance_equality_auto_cu_yx_b.c
-provenance_equality_auto_fn_yx.parse: provenance_equality_auto_fn_yx.c
-provenance_equality_auto_yx.parse: provenance_equality_auto_yx.c
-provenance_equality_global_cu_xy_a.parse: provenance_equality_global_cu_xy_a.c
-provenance_equality_global_cu_xy_b.parse: provenance_equality_global_cu_xy_b.c
-provenance_equality_global_cu_yx_a.parse: provenance_equality_global_cu_yx_a.c
-provenance_equality_global_cu_yx_b.parse: provenance_equality_global_cu_yx_b.c
-provenance_equality_global_fn_xy.parse: provenance_equality_global_fn_xy.c
-provenance_equality_global_fn_yx.parse: provenance_equality_global_fn_yx.c
-provenance_equality_global_xy.parse: provenance_equality_global_xy.c
-provenance_equality_global_yx.parse: provenance_equality_global_yx.c
-provenance_equality_uintptr_t_global_xy.parse: provenance_equality_uintptr_t_global_xy.c
-provenance_equality_uintptr_t_global_yx.parse: provenance_equality_uintptr_t_global_yx.c
-provenance_multiple_1_global.parse: provenance_multiple_1_global.c
-provenance_multiple_2_global.parse: provenance_multiple_2_global.c
-provenance_multiple_3_global_yx.parse: provenance_multiple_3_global_yx.c
-provenance_multiple_4_global_yx.parse: provenance_multiple_4_global_yx.c
-provenance_multiple_5_auto.parse: provenance_multiple_5_auto.c
-provenance_multiple_5_global.parse: provenance_multiple_5_global.c
-provenance_roundtrip_via_intptr_t.parse: provenance_roundtrip_via_intptr_t.c
-provenance_roundtrip_via_unsigned_long.parse: provenance_roundtrip_via_unsigned_long.c
-provenance_tag_bits_via_uintptr_t_1.parse: provenance_tag_bits_via_uintptr_t_1.c
-provenance_tag_bits_via_uintptr_t_1_no_assert.parse: provenance_tag_bits_via_uintptr_t_1_no_assert.c
-provenance_union_punning_1_global.parse: provenance_union_punning_1_global.c
-provenance_union_punning_2_auto_xy.parse: provenance_union_punning_2_auto_xy.c
-provenance_union_punning_2_auto_yx.parse: provenance_union_punning_2_auto_yx.c
-provenance_union_punning_2_global_xy.parse: provenance_union_punning_2_global_xy.c
-provenance_union_punning_2_global_yx.parse: provenance_union_punning_2_global_yx.c
-provenance_via_io_auto.parse: provenance_via_io_auto.c
-provenance_via_io_bytewise_global.parse: provenance_via_io_bytewise_global.c
-provenance_via_io_global.parse: provenance_via_io_global.c
-provenance_via_io_percentp_global.parse: provenance_via_io_percentp_global.c
-provenance_via_io_uintptr_t_global.parse: provenance_via_io_uintptr_t_global.c
-read_union_same_prefix_visible.parse: read_union_same_prefix_visible.c
-read_via_invalid_1.parse: read_via_invalid_1.c
-signalling_nan_1.parse: signalling_nan_1.c
-struct_initialise_members.parse: struct_initialise_members.c
-struct_inter_submember_1.parse: struct_inter_submember_1.c
-tkn-1.parse: tkn-1.c
-tkn-2.parse: tkn-2.c
-tkn-3.parse: tkn-3.c
-tkn-3-commented.parse: tkn-3-commented.c
-trap_representation_1.parse: trap_representation_1.c
-trap_representation_2.parse: trap_representation_2.c
-trap_representation_3.parse: trap_representation_3.c
-ubc_addr_null_1.parse: ubc_addr_null_1.c
-union_punning_gcc_1.parse: union_punning_gcc_1.c
-union_punning_gcc_2.parse: union_punning_gcc_2.c
-union_punning_gcc_3.parse: union_punning_gcc_3.c
-unspecified_value_control_flow_choice.parse: unspecified_value_control_flow_choice.c
-unspecified_value_daemonic_1.parse: unspecified_value_daemonic_1.c
-unspecified_value_library_call_argument.parse: unspecified_value_library_call_argument.c
-unspecified_value_representation_bytes_1.parse: unspecified_value_representation_bytes_1.c
-unspecified_value_representation_bytes_2.parse: unspecified_value_representation_bytes_2.c
-unspecified_value_representation_bytes_3.parse: unspecified_value_representation_bytes_3.c
-unspecified_value_representation_bytes_4.parse: unspecified_value_representation_bytes_4.c
-unspecified_value_stability.parse: unspecified_value_stability.c
-unspecified_value_strictness_and_1.parse: unspecified_value_strictness_and_1.c
-unspecified_value_strictness_int.parse: unspecified_value_strictness_int.c
-unspecified_value_strictness_mod_1.parse: unspecified_value_strictness_mod_1.c
-unspecified_value_strictness_mod_2.parse: unspecified_value_strictness_mod_2.c
-unspecified_value_strictness_unsigned_char.parse: unspecified_value_strictness_unsigned_char.c
-unspecified_value_struct_copy.parse: unspecified_value_struct_copy.c
-unspecified_value_union_1.parse: unspecified_value_union_1.c
-write_union_same_prefix_visible.parse: write_union_same_prefix_visible.c
-
-parse: $(TARGETS:%.eva=%.parse)
-
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/cerberus/frama-c-path.mk b/cerberus/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/cerberus/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/chrony/.frama-c/GNUmakefile b/chrony/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..2ec79115bbb1d6aba0b4ff9cef4b31526824db06
--- /dev/null
+++ b/chrony/.frama-c/GNUmakefile
@@ -0,0 +1,102 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_64
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -I .. \
+  -D_XOPEN_SOURCE=200112L \
+  -DNB_TESTS=3 \
+
+## General flags
+FCFLAGS     += \
+  -cpp-command "cpp -E -C -I.." \
+  -cpp-frama-c-compliant \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+  -warn-special-float none \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-use-spec atoi,malloc,free,calloc,Transform,parse_include,SCH_AddTimeout \
+  -eva-warn-key=alarm \
+  -eva-malloc-functions malloc,realloc,Malloc,Malloc2,Realloc,Realloc2 \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-warn-key malloc:weak \
+  -eva-domains equality,gauges \
+  -eva-domains-function symbolic-locations:prune_register \
+  -eva-domains-function symbolic-locations:SST_DoNewRegression \
+  -eva-domains-function symbolic-locations:SST_AccumulateSample \
+  -eva-domains-function symbolic-locations:find_min_delay_sample \
+  -eva-domains-function symbolic-locations:UTI_NormaliseTimespec \
+  -eva-domains-function symbolic-locations:estimate_asymmetry \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+TEST_COMMON_SRCS = \
+  ../test/unit/test.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/stdlib.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/stdio.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/glob.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/netdb.c \
+  ../addrfilt.c \
+  ../array.c \
+  ../clientlog.c \
+  ../cmdparse.c \
+  ../conf.c \
+  ../hash_intmd5.c \
+  ../keys.c \
+  ../local.c \
+  ../memory.c \
+  ../nameserv.c \
+  ../ntp_io.c \
+  ../reference.c \
+  ../regress.c \
+  ../sched.c \
+  ../smooth.c \
+  ../sources.c \
+  ../sourcestats.c \
+  ../util.c \
+  ../stubs.c \
+  fc_stubs.c \
+
+# logging.c voluntarily omitted, to skip analyzing logging functions
+
+## Analysis targets (suffixed with .eva)
+TARGETS = chrony-ntp-core.eva chrony-regress.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+chrony-ntp-core.parse: \
+  $(TEST_COMMON_SRCS) \
+  ../test/unit/ntp_core.c \
+
+chrony-ntp-core.eva: EVAFLAGS += -main eva_main
+
+# The following parsing rule reuses variable TEST_COMMON_SRCS to avoid
+# having to manually list the sources. Note that the unit test version of
+# regress.c redefines some functions from the other regress.c file, so
+# we remove the latter from the list of sources.
+chrony-regress.parse: \
+  $(filter-out ../regress.c,$(TEST_COMMON_SRCS)) \
+  ../test/unit/regress.c \
+
+chrony-regress.eva: EVAFLAGS += -main eva_main
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/chrony/.frama-c/chrony-ntp-core.eva/alarms.csv b/chrony/.frama-c/chrony-ntp-core.eva/alarms.csv
new file mode 100644
index 0000000000000000000000000000000000000000..a769ebaf89fc06564aa34225651b8cabbf701b1d
--- /dev/null
+++ b/chrony/.frama-c/chrony-ntp-core.eva/alarms.csv
@@ -0,0 +1,907 @@
+directory	file	line	function	property kind	status	property
+.	addrfilt.c	66	split_ip6	initialization	Unknown	\initialized(&ip->addr.in6[(int)((int)(i * 4) + 0)])
+.	addrfilt.c	66	split_ip6	initialization	Unknown	\initialized(&ip->addr.in6[(int)((int)(i * 4) + 1)])
+.	addrfilt.c	66	split_ip6	initialization	Unknown	\initialized(&ip->addr.in6[(int)((int)(i * 4) + 2)])
+.	addrfilt.c	66	split_ip6	initialization	Unknown	\initialized(&ip->addr.in6[(int)((int)(i * 4) + 3)])
+.	addrfilt.c	82	get_subnet	initialization	Unknown	\initialized(addr + off)
+.	addrfilt.c	82	get_subnet	mem_access	Unknown	\valid_read(addr + off)
+.	addrfilt.c	112	close_node	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	112	close_node	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	112	close_node	mem_access	Unknown	\valid_read(&node->extended)
+.	addrfilt.c	135	open_node	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	135	open_node	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	141	open_node	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	141	open_node	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	142	open_node	mem_access	Unknown	\valid(&child_node->state)
+.	addrfilt.c	178	set_subnet	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	178	set_subnet	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	178	set_subnet	mem_access	Unknown	\valid_read(&node->extended)
+.	addrfilt.c	181	set_subnet	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	181	set_subnet	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	189	set_subnet	dangling_pointer	Unknown	¬\dangling(&node)
+.	addrfilt.c	189	set_subnet	mem_access	Unknown	\valid(&node->state)
+.	addrfilt.c	198	set_subnet	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	198	set_subnet	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	198	set_subnet	mem_access	Unknown	\valid_read(&node->extended)
+.	addrfilt.c	201	set_subnet	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	201	set_subnet	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	210	set_subnet	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	addrfilt.c	212	set_subnet	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	212	set_subnet	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	212	set_subnet	mem_access	Unknown	\valid_read(&node->extended)
+.	addrfilt.c	218	set_subnet	dangling_pointer	Unknown	¬\dangling(&node)
+.	addrfilt.c	218	set_subnet	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	218	set_subnet	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	222	set_subnet	dangling_pointer	Unknown	¬\dangling(&this_node)
+.	addrfilt.c	222	set_subnet	mem_access	Unknown	\valid(&this_node->state)
+.	addrfilt.c	242	set_subnet_	initialization	Unknown	\initialized(&ip_addr->family)
+.	addrfilt.c	242	set_subnet_	mem_access	Unknown	\valid_read(&ip_addr->family)
+.	addrfilt.c	326	check_ip_in_node	dangling_pointer	Unknown	¬\dangling(&node->state)
+.	addrfilt.c	326	check_ip_in_node	initialization	Unknown	\initialized(&node->state)
+.	addrfilt.c	326	check_ip_in_node	mem_access	Unknown	\valid_read(&node->state)
+.	addrfilt.c	329	check_ip_in_node	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	addrfilt.c	329	check_ip_in_node	initialization	Unknown	\initialized(&node->extended)
+.	addrfilt.c	329	check_ip_in_node	mem_access	Unknown	\valid_read(&node->extended)
+.	addrfilt.c	329	check_ip_in_node	ptr_comparison	Unknown	\pointer_comparable((void *)0, (void *)node->extended)
+.	addrfilt.c	332	check_ip_in_node	signed_overflow	Unknown	bits_consumed + 4 ≤ 2147483647
+.	addrfilt.c	347	check_ip_in_node	precondition of __FC_assert	Invalid or unreachable	nonnull_c: c ≢ 0
+.	addrfilt.c	389	is_any_allowed	dangling_pointer	Unknown	¬\dangling(&node->extended)
+.	array.c	69	realloc_array	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	array.c	94	ARR_GetElement	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	array.c	103	ARR_GetElements	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	array.c	116	ARR_AppendElement	precondition of memcpy	Unknown	valid_dest: valid_or_empty(dest, n)
+.	cmdmon.h	37	CAM_AddAccessRestriction	assigns clause	Unknown	assigns \result, *ip_addr;
+.	cmdmon.h	37	CAM_AddAccessRestriction	from clause	Unknown	assigns *ip_addr \from *ip_addr, subnet_bits, allow, all;
+.	cmdmon.h	37	CAM_AddAccessRestriction	from clause	Unknown	assigns \result \from *ip_addr, subnet_bits, allow, all;
+.	cmdparse.c	82	CPS_ParseNTPSourceAdd	mem_access	Unknown	\valid_read(line)
+.	cmdparse.c	104	CPS_ParseNTPSourceAdd	precondition of sscanf_va_18	Unknown	valid_read_string(s)
+.	cmdparse.c	104	sscanf_va_18	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	108	CPS_ParseNTPSourceAdd	precondition of sscanf_va_17	Unknown	valid_read_string(s)
+.	cmdparse.c	108	sscanf_va_17	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	111	CPS_ParseNTPSourceAdd	precondition of sscanf_va_16	Unknown	valid_read_string(s)
+.	cmdparse.c	111	sscanf_va_16	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	114	CPS_ParseNTPSourceAdd	precondition of sscanf_va_15	Unknown	valid_read_string(s)
+.	cmdparse.c	114	sscanf_va_15	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	117	CPS_ParseNTPSourceAdd	precondition of sscanf_va_14	Unknown	valid_read_string(s)
+.	cmdparse.c	117	sscanf_va_14	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	120	CPS_ParseNTPSourceAdd	precondition of sscanf_va_13	Unknown	valid_read_string(s)
+.	cmdparse.c	120	sscanf_va_13	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	123	CPS_ParseNTPSourceAdd	precondition of sscanf_va_12	Unknown	valid_read_string(s)
+.	cmdparse.c	123	sscanf_va_12	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	126	CPS_ParseNTPSourceAdd	precondition of sscanf_va_11	Unknown	valid_read_string(s)
+.	cmdparse.c	126	sscanf_va_11	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	129	CPS_ParseNTPSourceAdd	precondition of sscanf_va_10	Unknown	valid_read_string(s)
+.	cmdparse.c	129	sscanf_va_10	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	132	CPS_ParseNTPSourceAdd	precondition of sscanf_va_9	Unknown	valid_read_string(s)
+.	cmdparse.c	132	sscanf_va_9	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	135	CPS_ParseNTPSourceAdd	precondition of sscanf_va_8	Unknown	valid_read_string(s)
+.	cmdparse.c	135	sscanf_va_8	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	138	CPS_ParseNTPSourceAdd	precondition of sscanf_va_7	Unknown	valid_read_string(s)
+.	cmdparse.c	138	sscanf_va_7	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	141	CPS_ParseNTPSourceAdd	precondition of sscanf_va_6	Unknown	valid_read_string(s)
+.	cmdparse.c	141	sscanf_va_6	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	144	CPS_ParseNTPSourceAdd	precondition of sscanf_va_5	Unknown	valid_read_string(s)
+.	cmdparse.c	144	sscanf_va_5	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	147	CPS_ParseNTPSourceAdd	precondition of sscanf_va_4	Unknown	valid_read_string(s)
+.	cmdparse.c	147	sscanf_va_4	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	150	CPS_ParseNTPSourceAdd	precondition of sscanf_va_3	Unknown	valid_read_string(s)
+.	cmdparse.c	150	sscanf_va_3	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	153	CPS_ParseNTPSourceAdd	precondition of sscanf_va_2	Unknown	valid_read_string(s)
+.	cmdparse.c	153	sscanf_va_2	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	156	CPS_ParseNTPSourceAdd	precondition of sscanf_va_1	Unknown	valid_read_string(s)
+.	cmdparse.c	156	sscanf_va_1	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	180	CPS_ParseLocal	mem_access	Unknown	\valid_read(line)
+.	cmdparse.c	185	CPS_ParseLocal	precondition of sscanf_va_20	Unknown	valid_read_string(s)
+.	cmdparse.c	185	sscanf_va_20	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	192	CPS_ParseLocal	precondition of sscanf_va_19	Unknown	valid_read_string(s)
+.	cmdparse.c	192	sscanf_va_19	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	213	CPS_NormalizeLine	initialization	Unknown	\initialized(p)
+.	cmdparse.c	213	CPS_NormalizeLine	mem_access	Unknown	\valid_read(p)
+.	cmdparse.c	216	CPS_NormalizeLine	mem_access	Unknown	\valid(tmp)
+.	cmdparse.c	225	CPS_NormalizeLine	mem_access	Unknown	\valid(tmp_2)
+.	cmdparse.c	230	CPS_NormalizeLine	ptr_comparison	Unknown	\pointer_comparable((void *)q, (void *)line)
+.	cmdparse.c	230	CPS_NormalizeLine	initialization	Unknown	\initialized(q + (int)(-1))
+.	cmdparse.c	230	CPS_NormalizeLine	mem_access	Unknown	\valid_read(q + (int)(-1))
+.	cmdparse.c	233	CPS_NormalizeLine	mem_access	Unknown	\valid(q)
+.	cmdparse.c	244	CPS_SplitWord	initialization	Unknown	\initialized(q)
+.	cmdparse.c	244	CPS_SplitWord	mem_access	Unknown	\valid_read(q)
+.	cmdparse.c	248	CPS_SplitWord	initialization	Unknown	\initialized(q)
+.	cmdparse.c	248	CPS_SplitWord	mem_access	Unknown	\valid_read(q)
+.	cmdparse.c	249	CPS_SplitWord	initialization	Unknown	\initialized(tmp_1)
+.	cmdparse.c	249	CPS_SplitWord	mem_access	Unknown	\valid(tmp_0)
+.	cmdparse.c	252	CPS_SplitWord	initialization	Unknown	\initialized(q)
+.	cmdparse.c	252	CPS_SplitWord	mem_access	Unknown	\valid_read(q)
+.	cmdparse.c	255	CPS_SplitWord	mem_access	Unknown	\valid(p)
+.	cmdparse.c	274	CPS_ParseKey	initialization	Unknown	\initialized(s2)
+.	cmdparse.c	274	CPS_ParseKey	initialization	Unknown	\initialized(s4)
+.	cmdparse.c	277	CPS_ParseKey	precondition of sscanf_va_21	Unknown	valid_read_string(s)
+.	cmdparse.c	277	sscanf_va_21	precondition	Unknown	valid_read_string(s)
+.	cmdparse.c	280	CPS_ParseKey	initialization	Unknown	\initialized(s3)
+.	conf.c	298	get_number_of_args	mem_access	Unknown	\valid_read(line)
+.	conf.c	300	get_number_of_args	mem_access	Unknown	\valid_read(line)
+.	conf.c	364	CNF_Finalise	dangling_pointer	Unknown	¬\dangling(&((CNF_HwTsInterface *)tmp)->name)
+.	conf.c	364	CNF_Finalise	initialization	Unknown	\initialized(&((CNF_HwTsInterface *)tmp)->name)
+.	conf.c	364	CNF_Finalise	mem_access	Unknown	\valid_read(&((CNF_HwTsInterface *)tmp)->name)
+.	conf.c	368	CNF_Finalise	dangling_pointer	Unknown	¬\dangling(&((NTP_Source *)tmp_1)->params.name)
+.	conf.c	368	CNF_Finalise	initialization	Unknown	\initialized(&((NTP_Source *)tmp_1)->params.name)
+.	conf.c	368	CNF_Finalise	mem_access	Unknown	\valid_read(&((NTP_Source *)tmp_1)->params.name)
+.	conf.c	601	parse_int	precondition of sscanf_va_22	Unknown	valid_read_string(s)
+.	conf.c	601	sscanf_va_22	precondition	Unknown	valid_read_string(s)
+.	conf.c	614	parse_double	precondition of sscanf_va_23	Unknown	valid_read_string(s)
+.	conf.c	614	sscanf_va_23	precondition	Unknown	valid_read_string(s)
+.	conf.c	645	parse_source	initialization	Unknown	\initialized(&source.params.name)
+.	conf.c	659	parse_ratelimit	mem_access	Unknown	\valid_read(line)
+.	conf.c	662	parse_ratelimit	precondition of sscanf_va_24	Unknown	valid_read_string(s)
+.	conf.c	662	sscanf_va_24	precondition	Unknown	valid_read_string(s)
+.	conf.c	729	parse_refclock	mem_access	Unknown	\valid_read(cmd)
+.	conf.c	733	parse_refclock	precondition of sscanf_va_39	Unknown	valid_read_string(s)
+.	conf.c	733	sscanf_va_39	precondition	Unknown	valid_read_string(s)
+.	conf.c	735	parse_refclock	initialization	Unknown	\initialized(&ref[1])
+.	conf.c	735	parse_refclock	initialization	Unknown	\initialized(&ref[2])
+.	conf.c	735	parse_refclock	initialization	Unknown	\initialized(&ref[3])
+.	conf.c	735	parse_refclock	initialization	Unknown	\initialized((unsigned char *)ref)
+.	conf.c	737	parse_refclock	precondition of sscanf_va_38	Unknown	valid_read_string(s)
+.	conf.c	737	sscanf_va_38	precondition	Unknown	valid_read_string(s)
+.	conf.c	739	parse_refclock	initialization	Unknown	\initialized(&ref[1])
+.	conf.c	739	parse_refclock	initialization	Unknown	\initialized(&ref[2])
+.	conf.c	739	parse_refclock	initialization	Unknown	\initialized(&ref[3])
+.	conf.c	739	parse_refclock	initialization	Unknown	\initialized((unsigned char *)ref)
+.	conf.c	741	parse_refclock	precondition of sscanf_va_37	Unknown	valid_read_string(s)
+.	conf.c	741	sscanf_va_37	precondition	Unknown	valid_read_string(s)
+.	conf.c	745	parse_refclock	precondition of sscanf_va_36	Unknown	valid_read_string(s)
+.	conf.c	745	sscanf_va_36	precondition	Unknown	valid_read_string(s)
+.	conf.c	749	parse_refclock	precondition of sscanf_va_35	Unknown	valid_read_string(s)
+.	conf.c	749	sscanf_va_35	precondition	Unknown	valid_read_string(s)
+.	conf.c	753	parse_refclock	precondition of sscanf_va_34	Unknown	valid_read_string(s)
+.	conf.c	753	sscanf_va_34	precondition	Unknown	valid_read_string(s)
+.	conf.c	756	parse_refclock	precondition of sscanf_va_33	Unknown	valid_read_string(s)
+.	conf.c	756	sscanf_va_33	precondition	Unknown	valid_read_string(s)
+.	conf.c	759	parse_refclock	precondition of sscanf_va_32	Unknown	valid_read_string(s)
+.	conf.c	759	sscanf_va_32	precondition	Unknown	valid_read_string(s)
+.	conf.c	762	parse_refclock	precondition of sscanf_va_31	Unknown	valid_read_string(s)
+.	conf.c	762	sscanf_va_31	precondition	Unknown	valid_read_string(s)
+.	conf.c	765	parse_refclock	precondition of sscanf_va_30	Unknown	valid_read_string(s)
+.	conf.c	765	sscanf_va_30	precondition	Unknown	valid_read_string(s)
+.	conf.c	768	parse_refclock	precondition of sscanf_va_29	Unknown	valid_read_string(s)
+.	conf.c	768	sscanf_va_29	precondition	Unknown	valid_read_string(s)
+.	conf.c	774	parse_refclock	precondition of sscanf_va_28	Unknown	valid_read_string(s)
+.	conf.c	774	sscanf_va_28	precondition	Unknown	valid_read_string(s)
+.	conf.c	777	parse_refclock	precondition of sscanf_va_27	Unknown	valid_read_string(s)
+.	conf.c	777	sscanf_va_27	precondition	Unknown	valid_read_string(s)
+.	conf.c	780	parse_refclock	precondition of sscanf_va_26	Unknown	valid_read_string(s)
+.	conf.c	780	sscanf_va_26	precondition	Unknown	valid_read_string(s)
+.	conf.c	787	parse_refclock	precondition of sscanf_va_25	Unknown	valid_read_string(s)
+.	conf.c	787	sscanf_va_25	precondition	Unknown	valid_read_string(s)
+.	conf.c	813	parse_refclock	mem_access	Unknown	\valid(&refclock->driver_name)
+.	conf.c	814	parse_refclock	mem_access	Unknown	\valid(&refclock->driver_parameter)
+.	conf.c	815	parse_refclock	mem_access	Unknown	\valid(&refclock->driver_poll)
+.	conf.c	816	parse_refclock	mem_access	Unknown	\valid(&refclock->poll)
+.	conf.c	817	parse_refclock	mem_access	Unknown	\valid(&refclock->filter_length)
+.	conf.c	818	parse_refclock	mem_access	Unknown	\valid(&refclock->pps_forced)
+.	conf.c	819	parse_refclock	mem_access	Unknown	\valid(&refclock->pps_rate)
+.	conf.c	820	parse_refclock	mem_access	Unknown	\valid(&refclock->min_samples)
+.	conf.c	821	parse_refclock	mem_access	Unknown	\valid(&refclock->max_samples)
+.	conf.c	822	parse_refclock	mem_access	Unknown	\valid(&refclock->sel_options)
+.	conf.c	823	parse_refclock	mem_access	Unknown	\valid(&refclock->stratum)
+.	conf.c	824	parse_refclock	mem_access	Unknown	\valid(&refclock->tai)
+.	conf.c	825	parse_refclock	mem_access	Unknown	\valid(&refclock->offset)
+.	conf.c	826	parse_refclock	mem_access	Unknown	\valid(&refclock->delay)
+.	conf.c	827	parse_refclock	mem_access	Unknown	\valid(&refclock->precision)
+.	conf.c	828	parse_refclock	mem_access	Unknown	\valid(&refclock->max_dispersion)
+.	conf.c	829	parse_refclock	mem_access	Unknown	\valid(&refclock->pulse_width)
+.	conf.c	830	parse_refclock	mem_access	Unknown	\valid(&refclock->ref_id)
+.	conf.c	831	parse_refclock	mem_access	Unknown	\valid(&refclock->max_lock_age)
+.	conf.c	832	parse_refclock	mem_access	Unknown	\valid(&refclock->lock_ref_id)
+.	conf.c	896	parse_initstepslew	precondition of sscanf_va_40	Unknown	valid_read_string(s)
+.	conf.c	896	sscanf_va_40	precondition	Unknown	valid_read_string(s)
+.	conf.c	937	parse_clientloglimit	precondition of sscanf_va_41	Unknown	valid_read_string(s)
+.	conf.c	937	sscanf_va_41	precondition	Unknown	valid_read_string(s)
+.	conf.c	948	parse_fallbackdrift	precondition of sscanf_va_42	Unknown	valid_read_string(s)
+.	conf.c	948	sscanf_va_42	precondition	Unknown	valid_read_string(s)
+.	conf.c	959	parse_makestep	precondition of sscanf_va_43	Unknown	valid_read_string(s)
+.	conf.c	959	sscanf_va_43	precondition	Unknown	valid_read_string(s)
+.	conf.c	976	parse_maxchange	precondition of sscanf_va_44	Unknown	valid_read_string(s)
+.	conf.c	976	sscanf_va_44	precondition	Unknown	valid_read_string(s)
+.	conf.c	992	parse_mailonchange	precondition of sscanf_va_45	Unknown	valid_read_string(s)
+.	conf.c	992	sscanf_va_45	precondition	Unknown	valid_read_string(s)
+.	conf.c	1021	parse_allow_deny	mem_access	Unknown	\valid(&new_node->allow)
+.	conf.c	1022	parse_allow_deny	mem_access	Unknown	\valid(&new_node->all)
+.	conf.c	1023	parse_allow_deny	mem_access	Unknown	\valid(&new_node->ip.family)
+.	conf.c	1024	parse_allow_deny	mem_access	Unknown	\valid(&new_node->subnet_bits)
+.	conf.c	1027	parse_allow_deny	precondition of strchr	Unknown	valid_string_s: valid_read_string(s)
+.	conf.c	1033	parse_allow_deny	precondition of sscanf_va_46	Unknown	valid_read_string(s)
+.	conf.c	1033	sscanf_va_46	precondition	Unknown	valid_read_string(s)
+.	conf.c	1036	parse_allow_deny	user assertion	Unknown	n ≤ 4
+.	conf.c	1038	parse_allow_deny	mem_access	Unknown	\valid(&new_node->allow)
+.	conf.c	1039	parse_allow_deny	mem_access	Unknown	\valid(&new_node->all)
+.	conf.c	1042	parse_allow_deny	mem_access	Unknown	\valid(&new_node->ip)
+.	conf.c	1043	parse_allow_deny	initialization	Unknown	\initialized(&ip_addr.family)
+.	conf.c	1046	parse_allow_deny	mem_access	Unknown	\valid(&new_node->subnet_bits)
+.	conf.c	1048	parse_allow_deny	mem_access	Unknown	\valid(&new_node->ip.family)
+.	conf.c	1050	parse_allow_deny	initialization	Unknown	\initialized(&a)
+.	conf.c	1051	parse_allow_deny	initialization	Unknown	\initialized(&b)
+.	conf.c	1052	parse_allow_deny	initialization	Unknown	\initialized(&c)
+.	conf.c	1053	parse_allow_deny	initialization	Unknown	\initialized(&d)
+.	conf.c	1057	parse_allow_deny	mem_access	Unknown	\valid(&new_node->ip.addr.in4)
+.	conf.c	1058	parse_allow_deny	mem_access	Unknown	\valid(&new_node->subnet_bits)
+.	conf.c	1061	parse_allow_deny	mem_access	Unknown	\valid(&new_node->ip.addr.in4)
+.	conf.c	1062	parse_allow_deny	mem_access	Unknown	\valid(&new_node->subnet_bits)
+.	conf.c	1065	parse_allow_deny	mem_access	Unknown	\valid(&new_node->ip.addr.in4)
+.	conf.c	1066	parse_allow_deny	mem_access	Unknown	\valid(&new_node->subnet_bits)
+.	conf.c	1069	parse_allow_deny	mem_access	Unknown	\valid(&new_node->ip.addr.in4)
+.	conf.c	1070	parse_allow_deny	mem_access	Unknown	\valid(&new_node->subnet_bits)
+.	conf.c	1079	parse_allow_deny	precondition of sscanf_va_47	Unknown	valid_read_string(s)
+.	conf.c	1079	sscanf_va_47	precondition	Unknown	valid_read_string(s)
+.	conf.c	1081	parse_allow_deny	mem_access	Unknown	\valid(&new_node->subnet_bits)
+.	conf.c	1090	parse_allow_deny	mem_access	Unknown	\valid(&new_node->allow)
+.	conf.c	1091	parse_allow_deny	mem_access	Unknown	\valid(&new_node->all)
+.	conf.c	1092	parse_allow_deny	mem_access	Unknown	\valid(&new_node->ip)
+.	conf.c	1093	parse_allow_deny	initialization	Unknown	\initialized(&ip_addr.family)
+.	conf.c	1096	parse_allow_deny	mem_access	Unknown	\valid(&new_node->subnet_bits)
+.	conf.c	1113	parse_bindacqaddress	initialization	Unknown	\initialized(&ip.family)
+.	conf.c	1131	parse_bindaddress	initialization	Unknown	\initialized(&ip.family)
+.	conf.c	1156	parse_bindcmdaddress	initialization	Unknown	\initialized(&ip.family)
+.	conf.c	1180	parse_broadcast	precondition of sscanf_va_48	Unknown	valid_read_string(s)
+.	conf.c	1180	sscanf_va_48	precondition	Unknown	valid_read_string(s)
+.	conf.c	1197	parse_broadcast	precondition of sscanf_va_49	Unknown	valid_read_string(s)
+.	conf.c	1197	sscanf_va_49	precondition	Unknown	valid_read_string(s)
+.	conf.c	1207	parse_broadcast	mem_access	Unknown	\valid(&destination->addr)
+.	conf.c	1208	parse_broadcast	mem_access	Unknown	\valid(&destination->port)
+.	conf.c	1209	parse_broadcast	mem_access	Unknown	\valid(&destination->interval)
+.	conf.c	1220	parse_smoothtime	precondition of sscanf_va_50	Unknown	valid_read_string(s)
+.	conf.c	1220	sscanf_va_50	precondition	Unknown	valid_read_string(s)
+.	conf.c	1259	parse_tempcomp	precondition of sscanf_va_51	Unknown	valid_read_string(s)
+.	conf.c	1259	sscanf_va_51	precondition	Unknown	valid_read_string(s)
+.	conf.c	1265	parse_tempcomp	precondition of sscanf_va_52	Unknown	valid_read_string(s)
+.	conf.c	1265	sscanf_va_52	precondition	Unknown	valid_read_string(s)
+.	conf.c	1295	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->name)
+.	conf.c	1296	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->minpoll)
+.	conf.c	1297	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->min_samples)
+.	conf.c	1298	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->max_samples)
+.	conf.c	1299	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->nocrossts)
+.	conf.c	1300	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->rxfilter)
+.	conf.c	1301	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->precision)
+.	conf.c	1302	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->tx_comp)
+.	conf.c	1303	parse_hwtimestamp	mem_access	Unknown	\valid(&iface->rx_comp)
+.	conf.c	1305	parse_hwtimestamp	mem_access	Unknown	\valid_read(p)
+.	conf.c	1309	parse_hwtimestamp	precondition of sscanf_va_59	Unknown	\valid(param0)
+.	conf.c	1309	parse_hwtimestamp	precondition of sscanf_va_59	Unknown	valid_read_string(s)
+.	conf.c	1309	sscanf_va_59	precondition	Unknown	\valid(param0)
+.	conf.c	1309	sscanf_va_59	precondition	Unknown	valid_read_string(s)
+.	conf.c	1312	parse_hwtimestamp	precondition of sscanf_va_58	Unknown	\valid(param0)
+.	conf.c	1312	parse_hwtimestamp	precondition of sscanf_va_58	Unknown	valid_read_string(s)
+.	conf.c	1312	sscanf_va_58	precondition	Unknown	\valid(param0)
+.	conf.c	1312	sscanf_va_58	precondition	Unknown	valid_read_string(s)
+.	conf.c	1315	parse_hwtimestamp	precondition of sscanf_va_57	Unknown	\valid(param0)
+.	conf.c	1315	parse_hwtimestamp	precondition of sscanf_va_57	Unknown	valid_read_string(s)
+.	conf.c	1315	sscanf_va_57	precondition	Unknown	\valid(param0)
+.	conf.c	1315	sscanf_va_57	precondition	Unknown	valid_read_string(s)
+.	conf.c	1318	parse_hwtimestamp	precondition of sscanf_va_56	Unknown	\valid(param0)
+.	conf.c	1318	parse_hwtimestamp	precondition of sscanf_va_56	Unknown	valid_read_string(s)
+.	conf.c	1318	sscanf_va_56	precondition	Unknown	\valid(param0)
+.	conf.c	1318	sscanf_va_56	precondition	Unknown	valid_read_string(s)
+.	conf.c	1321	parse_hwtimestamp	precondition of sscanf_va_55	Unknown	\valid(param0)
+.	conf.c	1321	parse_hwtimestamp	precondition of sscanf_va_55	Unknown	valid_read_string(s)
+.	conf.c	1321	sscanf_va_55	precondition	Unknown	\valid(param0)
+.	conf.c	1321	sscanf_va_55	precondition	Unknown	valid_read_string(s)
+.	conf.c	1324	parse_hwtimestamp	precondition of sscanf_va_54	Unknown	\valid(param0)
+.	conf.c	1324	parse_hwtimestamp	precondition of sscanf_va_54	Unknown	valid_read_string(s)
+.	conf.c	1324	sscanf_va_54	precondition	Unknown	\valid(param0)
+.	conf.c	1324	sscanf_va_54	precondition	Unknown	valid_read_string(s)
+.	conf.c	1327	parse_hwtimestamp	precondition of sscanf_va_53	Unknown	valid_read_string(s)
+.	conf.c	1327	sscanf_va_53	precondition	Unknown	valid_read_string(s)
+.	conf.c	1795	CNF_SetupAccessRestrictions	initialization	Unknown	\initialized(&node->all)
+.	conf.c	1795	CNF_SetupAccessRestrictions	initialization	Unknown	\initialized(&node->allow)
+.	conf.c	1795	CNF_SetupAccessRestrictions	initialization	Unknown	\initialized(&node->subnet_bits)
+.	conf.c	1795	CNF_SetupAccessRestrictions	mem_access	Unknown	\valid_read(&node->all)
+.	conf.c	1795	CNF_SetupAccessRestrictions	mem_access	Unknown	\valid_read(&node->allow)
+.	conf.c	1795	CNF_SetupAccessRestrictions	mem_access	Unknown	\valid_read(&node->subnet_bits)
+.	conf.c	1803	CNF_SetupAccessRestrictions	initialization	Unknown	\initialized(&node->all)
+.	conf.c	1803	CNF_SetupAccessRestrictions	initialization	Unknown	\initialized(&node->allow)
+.	conf.c	1803	CNF_SetupAccessRestrictions	initialization	Unknown	\initialized(&node->subnet_bits)
+.	conf.c	1803	CNF_SetupAccessRestrictions	mem_access	Unknown	\valid_read(&node->all)
+.	conf.c	1803	CNF_SetupAccessRestrictions	mem_access	Unknown	\valid_read(&node->allow)
+.	conf.c	1803	CNF_SetupAccessRestrictions	mem_access	Unknown	\valid_read(&node->subnet_bits)
+.	fc_stubs.c	13	qsort	precondition of memcpy	Unknown	separation: \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))
+.	fc_stubs.c	13	qsort	precondition of memcpy	Unknown	valid_dest: valid_or_empty(dest, n)
+.	fc_stubs.c	13	qsort	precondition of memcpy	Unknown	valid_src: valid_read_or_empty(src, n)
+.	keys.c	67	free_keys	dangling_pointer	Unknown	¬\dangling(&((Key *)tmp)->val)
+.	keys.c	67	free_keys	initialization	Unknown	\initialized(&((Key *)tmp)->val)
+.	keys.c	67	free_keys	mem_access	Unknown	\valid_read(&((Key *)tmp)->val)
+.	keys.c	67	free_keys	precondition of free	Unknown	freeable: p ≡ \null ∨ \freeable(p)
+.	keys.c	126	determine_hash_delay	float_to_int	Unknown	-2147483649 < 1.0625e9 * min_diff
+.	keys.c	126	determine_hash_delay	float_to_int	Unknown	1.0625e9 * min_diff < 2147483648
+.	keys.c	139	decode_password	precondition of strlen	Unknown	valid_string_s: valid_read_string(s)
+.	keys.c	143	decode_password	precondition of memmove	Unknown	valid_dest: valid_or_empty(dest, n)
+.	keys.c	143	decode_password	precondition of memmove	Unknown	valid_src: valid_read_or_empty(src, n)
+.	keys.c	150	decode_password	initialization	Unknown	\initialized(key + j)
+.	keys.c	150	decode_password	mem_access	Unknown	\valid_read(key + j)
+.	keys.c	150	decode_password	initialization	Unknown	\initialized(key + (int)(j + 1))
+.	keys.c	150	decode_password	mem_access	Unknown	\valid_read(key + (int)(j + 1))
+.	keys.c	151	decode_password	mem_access	Unknown	\valid(key + i)
+.	keys.c	153	decode_password	ptr_comparison	Unknown	\pointer_comparable((void *)p, (void *)(&buf[2]))
+.	keys.c	204	KEY_Reload	precondition of fopen	Unknown	valid_filename: valid_read_string(filename)
+.	keys.c	214	KEY_Reload	initialization	Unknown	\initialized((char *)line)
+.	keys.c	222	KEY_Reload	initialization	Unknown	\initialized(&hashname)
+.	keys.c	224	KEY_Reload	initialization	Unknown	\initialized(&key_id)
+.	keys.c	228	KEY_Reload	initialization	Unknown	\initialized(&keyval)
+.	keys.c	230	KEY_Reload	initialization	Unknown	\initialized(&key_id)
+.	keys.c	234	KEY_Reload	initialization	Unknown	\initialized(&key_id)
+.	keys.c	236	KEY_Reload	precondition of memcpy	Unknown	valid_dest: valid_or_empty(dest, n)
+.	keys.c	236	KEY_Reload	precondition of memcpy	Unknown	valid_src: valid_read_or_empty(src, n)
+.	keys.c	249	KEY_Reload	initialization	Unknown	\initialized(&tmp_5->id)
+.	keys.c	249	KEY_Reload	initialization	Unknown	\initialized(&tmp_6->id)
+.	keys.c	249	KEY_Reload	mem_access	Unknown	\valid_read(&tmp_5->id)
+.	keys.c	249	KEY_Reload	mem_access	Unknown	\valid_read(&tmp_6->id)
+.	keys.c	250	KEY_Reload	initialization	Unknown	\initialized(&tmp_4->id)
+.	keys.c	250	KEY_Reload	mem_access	Unknown	\valid_read(&tmp_4->id)
+.	keys.c	257	KEY_Reload	initialization	Unknown	\initialized(&tmp_9->id)
+.	keys.c	257	KEY_Reload	mem_access	Unknown	\valid(&tmp_8->auth_delay)
+.	keys.c	257	KEY_Reload	mem_access	Unknown	\valid_read(&tmp_9->id)
+.	keys.c	272	lookup_key	ptr_comparison	Unknown	\pointer_comparable((void *)0, (void *)where)
+.	keys.c	275	lookup_key	differing_blocks	Unknown	\base_addr(where) ≡ \base_addr(keys_ptr)
+.	keys.c	308	KEY_KeyKnown	ptr_comparison	Unknown	\pointer_comparable((void *)tmp, (void *)0)
+.	keys.c	320	KEY_GetAuthDelay	ptr_comparison	Unknown	\pointer_comparable((void *)0, (void *)key)
+.	keys.c	323	KEY_GetAuthDelay	initialization	Unknown	\initialized(&key->auth_delay)
+.	keys.c	323	KEY_GetAuthDelay	mem_access	Unknown	\valid_read(&key->auth_delay)
+.	keys.c	336	KEY_GetAuthLength	ptr_comparison	Unknown	\pointer_comparable((void *)0, (void *)key)
+.	keys.c	339	KEY_GetAuthLength	initialization	Unknown	\initialized(&key->hash_id)
+.	keys.c	339	KEY_GetAuthLength	mem_access	Unknown	\valid_read(&key->hash_id)
+.	keys.c	351	KEY_CheckKeyLength	ptr_comparison	Unknown	\pointer_comparable((void *)0, (void *)key)
+.	keys.c	354	KEY_CheckKeyLength	initialization	Unknown	\initialized(&key->len)
+.	keys.c	354	KEY_CheckKeyLength	mem_access	Unknown	\valid_read(&key->len)
+.	keys.c	392	KEY_GenerateAuth	ptr_comparison	Unknown	\pointer_comparable((void *)0, (void *)key)
+.	keys.c	395	KEY_GenerateAuth	initialization	Unknown	\initialized(&key->hash_id)
+.	keys.c	395	KEY_GenerateAuth	initialization	Unknown	\initialized(&key->len)
+.	keys.c	395	KEY_GenerateAuth	initialization	Unknown	\initialized(&key->val)
+.	keys.c	395	KEY_GenerateAuth	mem_access	Unknown	\valid_read(&key->hash_id)
+.	keys.c	395	KEY_GenerateAuth	mem_access	Unknown	\valid_read(&key->len)
+.	keys.c	395	KEY_GenerateAuth	mem_access	Unknown	\valid_read(&key->val)
+.	local.c	126	calculate_sys_precision	signed_overflow	Unknown	(long)(1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)) + (long)(ts.tv_nsec - old_ts.tv_nsec) ≤ 9223372036854775807
+.	local.c	126	calculate_sys_precision	signed_overflow	Unknown	-9223372036854775808 ≤ (long)(1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)) + (long)(ts.tv_nsec - old_ts.tv_nsec)
+.	local.c	126	calculate_sys_precision	signed_overflow	Unknown	-9223372036854775808 ≤ 1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)
+.	local.c	126	calculate_sys_precision	signed_overflow	Unknown	1000000000 * (long)(ts.tv_sec - old_ts.tv_sec) ≤ 9223372036854775807
+.	local.c	126	calculate_sys_precision	signed_overflow	Unknown	-9223372036854775808 ≤ ts.tv_sec - old_ts.tv_sec
+.	local.c	126	calculate_sys_precision	signed_overflow	Unknown	ts.tv_sec - old_ts.tv_sec ≤ 9223372036854775807
+.	local.c	126	calculate_sys_precision	signed_overflow	Unknown	-9223372036854775808 ≤ ts.tv_nsec - old_ts.tv_nsec
+.	local.c	126	calculate_sys_precision	signed_overflow	Unknown	ts.tv_nsec - old_ts.tv_nsec ≤ 9223372036854775807
+.	local.c	143	calculate_sys_precision	signed_overflow	Unknown	-2147483648 ≤ precision_log - 1
+.	local.c	147	calculate_sys_precision	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	local.c	188	LCL_Finalise	dangling_pointer	Unknown	¬\dangling(&change_list.next)
+.	local.c	261	LCL_RemoveParameterChangeHandler	dangling_pointer	Unknown	¬\dangling(&ptr->next)
+.	local.c	268	LCL_RemoveParameterChangeHandler	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	local.c	271	LCL_RemoveParameterChangeHandler	dangling_pointer	Unknown	¬\dangling(&ptr->next)
+.	local.c	271	LCL_RemoveParameterChangeHandler	dangling_pointer	Unknown	¬\dangling(&ptr->prev)
+.	local.c	272	LCL_RemoveParameterChangeHandler	dangling_pointer	Unknown	¬\dangling(&ptr->prev)
+.	local.c	274	LCL_RemoveParameterChangeHandler	precondition of free	Unknown	freeable: p ≡ \null ∨ \freeable(p)
+.	logging.h	80	LOG_Initialise	assigns clause	Unknown	assigns \nothing;
+.	logging.h	83	LOG_Finalise	assigns clause	Unknown	assigns \nothing;
+.	logging.h	92	LOG_Message	assigns clause	Unknown	assigns \nothing;
+.	logging.h	100	LOG_SetDebugLevel	assigns clause	Unknown	assigns \nothing;
+.	logging.h	103	LOG_OpenFileLog	assigns clause	Unknown	assigns \nothing;
+.	logging.h	118	LOG_FileOpen	assigns clause	Unknown	assigns \nothing;
+.	logging.h	118	LOG_FileOpen	from clause	Unknown	assigns \result \from *(name + (0 ..)), *(banner + (0 ..));
+.	logging.h	121	LOG_FileWrite	assigns clause	Unknown	assigns \nothing;
+.	md5.c	157	MD5Update	index_bound	Unknown	0 ≤ tmp
+.	md5.c	157	MD5Update	index_bound	Unknown	tmp < 64
+.	md5.c	157	MD5Update	signed_overflow	Unknown	-2147483648 ≤ mdi + 1
+.	md5.c	157	MD5Update	signed_overflow	Unknown	mdi + 1 ≤ 2147483647
+.	md5.c	157	MD5Update	initialization	Unknown	\initialized(tmp_0)
+.	md5.c	157	MD5Update	mem_access	Unknown	\valid(&mdContext->in[tmp])
+.	md5.c	157	MD5Update	mem_access	Unknown	\valid_read(tmp_0)
+.	nameserv.c	127	DNS_Name2IPAddress	mem_access	Unknown	\valid_read(host->h_addr_list + 0)
+.	ntp_core.c	364	do_time_checks	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	ntp_core.c	484	close_client_socket	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	ntp_core.c	645	NCR_DestroyInstance	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	ntp_core.c	746	adjust_poll	signed_overflow	Unknown	inst->local_poll + (int)inst->poll_score ≤ 2147483647
+.	ntp_core.c	746	adjust_poll	float_to_int	Unknown	inst->poll_score < 2147483648
+.	ntp_core.c	746	adjust_poll	is_nan_or_infinite	Unknown	\is_finite(inst->poll_score)
+.	ntp_core.c	751	adjust_poll	signed_overflow	Unknown	-2147483648 ≤ inst->local_poll + (int)\sub_double(inst->poll_score, (double)1.0)
+.	ntp_core.c	751	adjust_poll	float_to_int	Unknown	-2147483649 < inst->poll_score - 1.0
+.	ntp_core.c	751	adjust_poll	is_nan_or_infinite	Unknown	\is_finite(\sub_double(inst->poll_score, (double)1.0))
+.	ntp_core.c	784	get_poll_adj	precondition of log	Unknown	arg_positive: x > 0
+.	ntp_core.c	784	get_poll_adj	precondition of log	Unknown	finite_arg: \is_finite(x)
+.	ntp_core.c	859	get_transmit_delay	signed_overflow	Unknown	inst->remote_stratum - tmp ≤ 2147483647
+.	ntp_core.c	1037	transmit_packet	mem_access	Unknown	\valid_read(remote_ntp_rx)
+.	ntp_core.c	1078	transmit_packet	signed_overflow	Unknown	-9223372036854775808 ≤ local_transmit.tv_nsec + (long)tmp_10
+.	ntp_core.c	1078	transmit_packet	signed_overflow	Unknown	local_transmit.tv_nsec + (long)tmp_10 ≤ 9223372036854775807
+.	ntp_core.c	1164	transmit_timeout	shift	Unknown	0 ≤ (int)(inst->local_poll - inst->minpoll) < 32
+.	ntp_core.c	1420	check_delay_ratio	initialization	Unknown	\initialized(&last_sample_ago)
+.	ntp_core.c	1420	check_delay_ratio	initialization	Unknown	\initialized(&min_delay)
+.	ntp_core.c	1420	check_delay_ratio	initialization	Unknown	\initialized(&skew)
+.	ntp_core.c	1447	check_delay_dev_ratio	initialization	Unknown	\initialized(&last_sample_ago)
+.	ntp_core.c	1447	check_delay_dev_ratio	initialization	Unknown	\initialized(&skew)
+.	ntp_core.c	1447	check_delay_dev_ratio	initialization	Unknown	\initialized(&std_dev)
+.	ntp_core.c	1449	check_delay_dev_ratio	initialization	Unknown	\initialized(&min_delay)
+.	ntp_core.c	1454	check_delay_dev_ratio	initialization	Unknown	\initialized(&predicted_offset)
+.	ntp_core.c	1459	check_delay_dev_ratio	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	ntp_core.c	1489	process_sample	signed_overflow	Unknown	(int)(8 / 2) * filtered_samples ≤ 2147483647
+.	ntp_core.c	1489	process_sample	signed_overflow	Unknown	-2147483648 ≤ (int)(8 / 2) * filtered_samples
+.	ntp_core.c	1504	process_sample	initialization	Unknown	\initialized(&sample->offset)
+.	ntp_core.c	1504	process_sample	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	ntp_core.c	1509	process_sample	initialization	Unknown	\initialized(&sample->peer_delay)
+.	ntp_core.c	1509	process_sample	initialization	Unknown	\initialized(&sample->peer_dispersion)
+.	ntp_core.c	1883	receive_packet	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	ntp_io.c	161	prepare_socket	initialization	Unknown	\initialized(&bind_address.addr.in4)
+.	reference.c	202	REF_Initialise	precondition of fopen	Unknown	valid_filename: valid_read_string(filename)
+.	reference.c	232	REF_Initialise	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	reference.c	265	REF_Initialise	signed_overflow	Unknown	-2147483648 ≤ fb_drift_max_0 - fb_drift_min_0
+.	reference.c	266	REF_Initialise	precondition of memset	Unknown	valid_s: valid_or_empty(s, n)
+.	reference.c	341	update_drift_file	precondition of strlen	Unknown	valid_string_s: valid_read_string(s)
+.	reference.c	350	update_drift_file	precondition of fopen	Unknown	valid_filename: valid_read_string(filename)
+.	reference.c	370	update_drift_file	precondition of stat	Unknown	valid_pathname: valid_read_string(pathname)
+.	reference.c	371	update_drift_file	initialization	Unknown	\initialized(&buf.st_gid)
+.	reference.c	371	update_drift_file	initialization	Unknown	\initialized(&buf.st_uid)
+.	reference.c	371	update_drift_file	precondition of chown	Unknown	valid_string_path: valid_read_string(path)
+.	reference.c	372	update_drift_file	initialization	Unknown	\initialized(&buf.st_mode)
+.	reference.c	380	update_drift_file	precondition of rename	Unknown	valid_new_name: valid_read_string(new_name)
+.	reference.c	380	update_drift_file	precondition of rename	Unknown	valid_old_name: valid_read_string(old_name)
+.	reference.c	381	update_drift_file	precondition of unlink	Unknown	valid_string_path: valid_read_string(path)
+.	reference.c	415	update_fb_drifts	signed_overflow	Unknown	(int)(fb_drift_max_0 - fb_drift_min_0) + 1 ≤ 2147483647
+.	reference.c	415	update_fb_drifts	signed_overflow	Unknown	-2147483648 ≤ fb_drift_max_0 - fb_drift_min_0
+.	reference.c	415	update_fb_drifts	signed_overflow	Unknown	fb_drift_max_0 - fb_drift_min_0 ≤ 2147483647
+.	reference.c	416	update_fb_drifts	signed_overflow	Unknown	1 << (int)(i + fb_drift_min_0) ≤ 2147483647
+.	reference.c	416	update_fb_drifts	shift	Unknown	0 ≤ (int)(i + fb_drift_min_0) < 32
+.	reference.c	416	update_fb_drifts	signed_overflow	Unknown	i + fb_drift_min_0 ≤ 2147483647
+.	reference.c	417	update_fb_drifts	initialization	Unknown	\initialized(&(fb_drifts + i)->secs)
+.	reference.c	417	update_fb_drifts	mem_access	Unknown	\valid_read(&(fb_drifts + i)->secs)
+.	reference.c	420	update_fb_drifts	initialization	Unknown	\initialized(&(fb_drifts + i)->freq)
+.	reference.c	420	update_fb_drifts	mem_access	Unknown	\valid(&(fb_drifts + i)->freq)
+.	reference.c	422	update_fb_drifts	initialization	Unknown	\initialized(&(fb_drifts + i)->secs)
+.	reference.c	422	update_fb_drifts	mem_access	Unknown	\valid(&(fb_drifts + i)->secs)
+.	reference.c	427	update_fb_drifts	initialization	Unknown	\initialized(&(fb_drifts + i)->freq)
+.	reference.c	427	update_fb_drifts	mem_access	Unknown	\valid(&(fb_drifts + i)->freq)
+.	reference.c	427	update_fb_drifts	precondition of exp	Unknown	finite_domain: x ≤ 0x1.62e42fefa39efp+9
+.	reference.c	466	schedule_fb_drift	signed_overflow	Unknown	1 << i ≤ 2147483647
+.	reference.c	466	schedule_fb_drift	shift	Unknown	0 ≤ i < 32
+.	reference.c	468	schedule_fb_drift	initialization	Unknown	\initialized(&(fb_drifts + (int)(i - fb_drift_min_0))->secs)
+.	reference.c	468	schedule_fb_drift	mem_access	Unknown	\valid_read(&(fb_drifts + (int)(i - fb_drift_min_0))->secs)
+.	reference.c	468	schedule_fb_drift	signed_overflow	Unknown	i - fb_drift_min_0 ≤ 2147483647
+.	reference.c	478	schedule_fb_drift	initialization	Unknown	\initialized(&(fb_drifts + (int)(c - fb_drift_min_0))->freq)
+.	reference.c	478	schedule_fb_drift	mem_access	Unknown	\valid_read(&(fb_drifts + (int)(c - fb_drift_min_0))->freq)
+.	reference.c	478	schedule_fb_drift	signed_overflow	Unknown	c - fb_drift_min_0 ≤ 2147483647
+.	reference.c	516	maybe_log_offset	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	reference.c	526	maybe_log_offset	precondition of popen	Unknown	valid_command: valid_read_string(command)
+.	reference.c	533	fprintf_va_3	precondition	Unknown	valid_read_string(param0)
+.	reference.c	533	maybe_log_offset	precondition of fprintf_va_3	Unknown	valid_read_string(param0)
+.	reference.c	534	fprintf_va_4	precondition	Unknown	valid_read_string(param0)
+.	reference.c	534	maybe_log_offset	precondition of fprintf_va_4	Unknown	valid_read_string(param0)
+.	reference.c	541	maybe_log_offset	precondition of fputs	Unknown	valid_string_s: valid_read_string(s)
+.	reference.c	551	maybe_log_offset	precondition of pclose	Unknown	open_pipe: is_open_pipe(stream)
+.	reference.c	570	is_step_limit_reached	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	reference.c	586	is_offset_ok	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	reference.c	659	get_tz_leap	signed_overflow	Unknown	(long)(t - when) + 10 ≤ 9223372036854775807
+.	reference.c	659	get_tz_leap	signed_overflow	Unknown	-9223372036854775808 ≤ t - when
+.	reference.c	659	get_tz_leap	signed_overflow	Unknown	t - when ≤ 9223372036854775807
+.	reference.c	757	set_leap_timeout	signed_overflow	Unknown	(long)((long)(now / (long)((int)(24 * 3600))) + 1) * (long)((int)(24 * 3600)) ≤ 9223372036854775807
+.	reference.c	835	get_root_dispersion	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	reference.c	941	get_clock_estimates	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	reference.c	954	get_clock_estimates	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	reference.c	954	get_clock_estimates	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	reference.c	1011	REF_SetReference	signed_overflow	Unknown	stratum + 1 ≤ 2147483647
+.	reference.c	1212	REF_GetReferenceParams	signed_overflow	Unknown	-9223372036854775808 ≤ ref_time->tv_sec - 1
+.	reference.c	1324	REF_IsLeapSecondClose	signed_overflow	Unknown	-now.tv_sec ≤ 9223372036854775807
+.	reference.c	1325	REF_IsLeapSecondClose	signed_overflow	Unknown	t + 5 ≤ 9223372036854775807
+.	reference.c	1328	REF_IsLeapSecondClose	signed_overflow	Unknown	-now_raw.tv_sec ≤ 9223372036854775807
+.	reference.c	1329	REF_IsLeapSecondClose	signed_overflow	Unknown	t + 5 ≤ 9223372036854775807
+.	regress.c	123	RGR_GetTCoef	index_bound	Unknown	0 ≤ (int)(dof - 1)
+.	regress.c	183	n_runs_from_residuals	initialization	Unknown	\initialized(resid + (int)(i - 1))
+.	regress.c	183	n_runs_from_residuals	mem_access	Unknown	\valid_read(resid + (int)(i - 1))
+.	regress.c	183	n_runs_from_residuals	initialization	Unknown	\initialized(resid + i)
+.	regress.c	183	n_runs_from_residuals	mem_access	Unknown	\valid_read(resid + i)
+.	regress.c	184	n_runs_from_residuals	initialization	Unknown	\initialized(resid + i)
+.	regress.c	184	n_runs_from_residuals	mem_access	Unknown	\valid_read(resid + i)
+.	regress.c	242	RGR_FindBestRegression	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	regress.c	243	RGR_FindBestRegression	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	regress.c	243	RGR_FindBestRegression	signed_overflow	Unknown	-2147483648 ≤ n * 2
+.	regress.c	254	RGR_FindBestRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	254	RGR_FindBestRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	254	RGR_FindBestRegression	mem_access	Unknown	\valid_read(x + i)
+.	regress.c	262	RGR_FindBestRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	262	RGR_FindBestRegression	mem_access	Unknown	\valid_read(x + i)
+.	regress.c	263	RGR_FindBestRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	263	RGR_FindBestRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	263	RGR_FindBestRegression	mem_access	Unknown	\valid_read(y + i)
+.	regress.c	272	RGR_FindBestRegression	signed_overflow	Unknown	n - (int)((int)(n - start) * 2) ≤ 2147483647
+.	regress.c	272	RGR_FindBestRegression	signed_overflow	Unknown	-2147483648 ≤ (int)(n - start) * 2
+.	regress.c	273	RGR_FindBestRegression	signed_overflow	Unknown	-m ≤ 2147483647
+.	regress.c	277	RGR_FindBestRegression	index_bound	Unknown	(int)(i - resid_start) < (int)(64 * 2)
+.	regress.c	277	RGR_FindBestRegression	index_bound	Unknown	0 ≤ (int)(i - resid_start)
+.	regress.c	277	RGR_FindBestRegression	signed_overflow	Unknown	-2147483648 ≤ i - resid_start
+.	regress.c	277	RGR_FindBestRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	277	RGR_FindBestRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	277	RGR_FindBestRegression	mem_access	Unknown	\valid_read(x + i)
+.	regress.c	277	RGR_FindBestRegression	mem_access	Unknown	\valid_read(y + i)
+.	regress.c	283	RGR_FindBestRegression	index_bound	Unknown	(int)(n - resid_start) < 130
+.	regress.c	283	RGR_FindBestRegression	index_bound	Unknown	0 ≤ (int)(n - resid_start)
+.	regress.c	288	RGR_FindBestRegression	signed_overflow	Unknown	start - resid_start ≤ 2147483647
+.	regress.c	304	RGR_FindBestRegression	initialization	Unknown	\initialized(&resid[(int)(i - resid_start)])
+.	regress.c	304	RGR_FindBestRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	304	RGR_FindBestRegression	index_bound	Unknown	(int)(i - resid_start) < (int)(64 * 2)
+.	regress.c	304	RGR_FindBestRegression	index_bound	Unknown	0 ≤ (int)(i - resid_start)
+.	regress.c	309	RGR_FindBestRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	regress.c	309	RGR_FindBestRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	regress.c	311	RGR_FindBestRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	regress.c	311	RGR_FindBestRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	regress.c	353	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + index_0)
+.	regress.c	354	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + index_0)
+.	regress.c	359	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + u)
+.	regress.c	360	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + u)
+.	regress.c	362	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + v)
+.	regress.c	363	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + v)
+.	regress.c	363	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(flags + v)
+.	regress.c	367	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + u)
+.	regress.c	367	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + v)
+.	regress.c	367	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(x + u)
+.	regress.c	367	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(x + v)
+.	regress.c	371	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + index_0)
+.	regress.c	374	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + u)
+.	regress.c	374	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + pivind)
+.	regress.c	374	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(x + pivind)
+.	regress.c	375	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + u)
+.	regress.c	379	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + l)
+.	regress.c	380	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + r)
+.	regress.c	380	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(x + r)
+.	regress.c	382	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + l)
+.	regress.c	386	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + u)
+.	regress.c	678	RGR_MultipleRegress	initialization	Unknown	\initialized(x1 + i)
+.	regress.c	679	RGR_MultipleRegress	initialization	Unknown	\initialized(x2 + i)
+.	regress.c	683	RGR_MultipleRegress	initialization	Unknown	\initialized(y + i)
+.	regress.c	698	RGR_MultipleRegress	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	regress.c	698	RGR_MultipleRegress	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	samplefilt.h	35	SPF_CreateInstance	assigns clause	Unknown	assigns \nothing;
+.	samplefilt.h	35	SPF_CreateInstance	from clause	Unknown	assigns \result \from min_samples, max_samples, max_dispersion, combine_ratio;
+.	samplefilt.h	37	SPF_DestroyInstance	assigns clause	Unknown	assigns *filter;
+.	samplefilt.h	37	SPF_DestroyInstance	from clause	Unknown	assigns *filter \from *filter;
+.	samplefilt.h	39	SPF_AccumulateSample	assigns clause	Unknown	assigns \result, *filter, *sample;
+.	samplefilt.h	39	SPF_AccumulateSample	from clause	Unknown	assigns *filter \from *filter, *sample;
+.	samplefilt.h	39	SPF_AccumulateSample	from clause	Unknown	assigns *sample \from *filter, *sample;
+.	samplefilt.h	39	SPF_AccumulateSample	from clause	Unknown	assigns \result \from *filter, *sample;
+.	samplefilt.h	41	SPF_GetNumberOfSamples	assigns clause	Unknown	assigns \result, *filter;
+.	samplefilt.h	41	SPF_GetNumberOfSamples	from clause	Unknown	assigns *filter \from *filter;
+.	samplefilt.h	41	SPF_GetNumberOfSamples	from clause	Unknown	assigns \result \from *filter;
+.	samplefilt.h	43	SPF_DropSamples	assigns clause	Unknown	assigns *filter;
+.	samplefilt.h	43	SPF_DropSamples	from clause	Unknown	assigns *filter \from *filter;
+.	samplefilt.h	44	SPF_GetFilteredSample	assigns clause	Unknown	assigns \result, *filter, *sample;
+.	samplefilt.h	44	SPF_GetFilteredSample	from clause	Unknown	assigns *filter \from *filter, *sample;
+.	samplefilt.h	44	SPF_GetFilteredSample	from clause	Unknown	assigns *sample \from *filter, *sample;
+.	samplefilt.h	44	SPF_GetFilteredSample	from clause	Unknown	assigns \result \from *filter, *sample;
+.	sched.c	171	SCH_AddFileHandler	mem_access	Unknown	\valid(&ptr->handler)
+.	sched.c	172	SCH_AddFileHandler	mem_access	Unknown	\valid(&ptr->arg)
+.	sched.c	173	SCH_AddFileHandler	mem_access	Unknown	\valid(&ptr->events)
+.	sched.c	181	SCH_AddFileHandler	initialization	Unknown	\initialized(&ptr->handler)
+.	sched.c	181	SCH_AddFileHandler	mem_access	Unknown	\valid_read(&ptr->handler)
+.	sched.c	181	SCH_AddFileHandler	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sched.c	181	SCH_AddFileHandler	ptr_comparison	Unknown	\pointer_comparable((void (*)())0, (void (*)())ptr->handler)
+.	sched.c	183	SCH_AddFileHandler	mem_access	Unknown	\valid(&ptr->handler)
+.	sched.c	184	SCH_AddFileHandler	mem_access	Unknown	\valid(&ptr->arg)
+.	sched.c	185	SCH_AddFileHandler	mem_access	Unknown	\valid(&ptr->events)
+.	sched.c	204	SCH_RemoveFileHandler	initialization	Unknown	\initialized(&ptr->handler)
+.	sched.c	204	SCH_RemoveFileHandler	mem_access	Unknown	\valid_read(&ptr->handler)
+.	sched.c	204	SCH_RemoveFileHandler	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sched.c	204	SCH_RemoveFileHandler	ptr_comparison	Unknown	\pointer_comparable((void (*)())ptr->handler, (void (*)())0)
+.	sched.c	206	SCH_RemoveFileHandler	mem_access	Unknown	\valid(&ptr->handler)
+.	sched.c	207	SCH_RemoveFileHandler	mem_access	Unknown	\valid(&ptr->arg)
+.	sched.c	208	SCH_RemoveFileHandler	mem_access	Unknown	\valid(&ptr->events)
+.	sched.c	213	SCH_RemoveFileHandler	initialization	Unknown	\initialized(&ptr->handler)
+.	sched.c	213	SCH_RemoveFileHandler	mem_access	Unknown	\valid_read(&ptr->handler)
+.	sched.c	213	SCH_RemoveFileHandler	ptr_comparison	Unknown	\pointer_comparable((void (*)())0, (void (*)())ptr->handler)
+.	sched.c	476	SCH_RemoveTimeout	precondition of __FC_assert	Invalid or unreachable	nonnull_c: c ≢ 0
+.	sources.c	516	combine_sources	initialization	Unknown	\initialized(&(*(sources + selected_source_index))->sel_info.root_distance)
+.	sources.c	522	combine_sources	initialization	Unknown	\initialized(sel_sources + i)
+.	sources.c	533	combine_sources	initialization	Unknown	\initialized(&(*(sources + index_0))->sel_info.root_distance)
+.	sources.c	534	combine_sources	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	sources.c	554	combine_sources	initialization	Unknown	\initialized(&(*(sources + index_0))->sel_info.root_distance)
+.	sources.c	574	combine_sources	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sources.c	576	combine_sources	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	sources.c	576	combine_sources	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	sources.c	578	combine_sources	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	sources.c	578	combine_sources	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	sources.c	579	combine_sources	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	sources.c	579	combine_sources	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	sources.c	634	SRC_SelectSource	dangling_pointer	Unknown	¬\dangling(sources + i)
+.	sources.c	634	SRC_SelectSource	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sources.c	663	SRC_SelectSource	initialization	Unknown	\initialized(&first_sample_ago)
+.	sources.c	663	SRC_SelectSource	initialization	Unknown	\initialized(&si->last_sample_ago)
+.	sources.c	666	SRC_SelectSource	initialization	Unknown	\initialized(&si->root_distance)
+.	sources.c	667	SRC_SelectSource	initialization	Unknown	\initialized(&si->lo_limit)
+.	sources.c	668	SRC_SelectSource	initialization	Unknown	\initialized(&si->hi_limit)
+.	sources.c	672	SRC_SelectSource	initialization	Unknown	\initialized(&si->root_distance)
+.	sources.c	678	SRC_SelectSource	initialization	Unknown	\initialized(&si->std_dev)
+.	sources.c	708	SRC_SelectSource	initialization	Unknown	\initialized(&si->last_sample_ago)
+.	sources.c	730	SRC_SelectSource	initialization	Unknown	\initialized(&si->stratum)
+.	sources.c	768	SRC_SelectSource	initialization	Unknown	\initialized(&si->lo_limit)
+.	sources.c	772	SRC_SelectSource	initialization	Unknown	\initialized(&si->hi_limit)
+.	sources.c	838	SRC_SelectSource	initialization	Unknown	\initialized(&(sort_list + i)->tag)
+.	sources.c	841	SRC_SelectSource	dangling_pointer	Unknown	¬\dangling(sources + (sort_list + i)->index)
+.	sources.c	841	SRC_SelectSource	initialization	Unknown	\initialized(&(sort_list + i)->index)
+.	sources.c	847	SRC_SelectSource	initialization	Unknown	\initialized(&(sort_list + i)->offset)
+.	sources.c	852	SRC_SelectSource	initialization	Unknown	\initialized(&(sort_list + i)->offset)
+.	sources.c	853	SRC_SelectSource	dangling_pointer	Unknown	¬\dangling(sources + (sort_list + i)->index)
+.	sources.c	853	SRC_SelectSource	initialization	Unknown	\initialized(&(sort_list + i)->index)
+.	sources.c	896	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + i))->sel_info.lo_limit)
+.	sources.c	897	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + i))->sel_info.hi_limit)
+.	sources.c	898	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + i))->sel_info.lo_limit)
+.	sources.c	899	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + i))->sel_info.hi_limit)
+.	sources.c	906	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + i))->sel_info.hi_limit)
+.	sources.c	928	SRC_SelectSource	initialization	Unknown	\initialized(sel_sources + i)
+.	sources.c	929	SRC_SelectSource	dangling_pointer	Unknown	¬\dangling(sources + index_0)
+.	sources.c	932	SRC_SelectSource	dangling_pointer	Unknown	¬\dangling(sources + index_0)
+.	sources.c	932	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + index_0))->sel_info.leap)
+.	sources.c	949	SRC_SelectSource	initialization	Unknown	\initialized(sel_sources + i)
+.	sources.c	955	SRC_SelectSource	initialization	Unknown	\initialized(sel_sources + i)
+.	sources.c	960	SRC_SelectSource	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sources.c	970	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + index_0))->sel_info.stratum)
+.	sources.c	973	SRC_SelectSource	initialization	Unknown	\initialized(sel_sources + i)
+.	sources.c	974	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + index_0))->sel_info.stratum)
+.	sources.c	986	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + selected_source_index))->sel_info.root_distance)
+.	sources.c	986	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + selected_source_index))->sel_info.stratum)
+.	sources.c	987	SRC_SelectSource	signed_overflow	Unknown	(*(sources + selected_source_index))->sel_info.stratum - min_stratum ≤ 2147483647
+.	sources.c	987	SRC_SelectSource	signed_overflow	Unknown	-2147483648 ≤ (*(sources + selected_source_index))->sel_info.stratum - min_stratum
+.	sources.c	999	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + i))->sel_info.root_distance)
+.	sources.c	999	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + i))->sel_info.stratum)
+.	sources.c	1000	SRC_SelectSource	signed_overflow	Unknown	(*(sources + i))->sel_info.stratum - min_stratum ≤ 2147483647
+.	sources.c	1000	SRC_SelectSource	signed_overflow	Unknown	-2147483648 ≤ (*(sources + i))->sel_info.stratum - min_stratum
+.	sources.c	1033	SRC_SelectSource	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sources.c	1071	SRC_SelectSource	initialization	Unknown	\initialized(sel_sources + i)
+.	sources.c	1094	SRC_SelectSource	initialization	Unknown	\initialized(&(*(sources + selected_source_index))->sel_info.stratum)
+.	sourcestats.c	280	prune_register	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	280	prune_register	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sourcestats.c	281	prune_register	signed_overflow	Unknown	-2147483648 ≤ inst->n_samples - new_oldest
+.	sourcestats.c	282	prune_register	initialization	Unknown	\initialized(&inst->runs_samples)
+.	sourcestats.c	282	prune_register	signed_overflow	Unknown	inst->runs_samples + new_oldest ≤ 2147483647
+.	sourcestats.c	286	prune_register	signed_overflow	Unknown	-2147483648 ≤ inst->n_samples + inst->runs_samples
+.	sourcestats.c	299	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	300	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->max_samples)
+.	sourcestats.c	305	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	306	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->last_sample)
+.	sourcestats.c	307	SST_AccumulateSample	dangling_pointer	Unknown	¬\dangling(&inst->ip_addr)
+.	sourcestats.c	307	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->ip_addr)
+.	sourcestats.c	312	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->last_sample)
+.	sourcestats.c	319	SST_AccumulateSample	initialization	Unknown	\initialized(&sample->offset)
+.	sourcestats.c	321	SST_AccumulateSample	initialization	Unknown	\initialized(&sample->peer_delay)
+.	sourcestats.c	322	SST_AccumulateSample	initialization	Unknown	\initialized(&sample->peer_dispersion)
+.	sourcestats.c	323	SST_AccumulateSample	initialization	Unknown	\initialized(&sample->root_delay)
+.	sourcestats.c	324	SST_AccumulateSample	initialization	Unknown	\initialized(&sample->root_dispersion)
+.	sourcestats.c	325	SST_AccumulateSample	initialization	Unknown	\initialized(&sample->stratum)
+.	sourcestats.c	326	SST_AccumulateSample	initialization	Unknown	\initialized(&sample->leap)
+.	sourcestats.c	328	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->fixed_min_delay)
+.	sourcestats.c	331	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	331	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->min_delay_sample)
+.	sourcestats.c	331	SST_AccumulateSample	initialization	Unknown	\initialized(&inst->peer_delays[inst->min_delay_sample])
+.	sourcestats.c	344	get_runsbuf_index	initialization	Unknown	\initialized(&inst->last_sample)
+.	sourcestats.c	344	get_runsbuf_index	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	344	get_runsbuf_index	signed_overflow	Unknown	(int)((int)((int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples) + i) + 1 ≤ 2147483647
+.	sourcestats.c	344	get_runsbuf_index	signed_overflow	Unknown	(int)((int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples) + i ≤ 2147483647
+.	sourcestats.c	344	get_runsbuf_index	signed_overflow	Unknown	(int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples ≤ 2147483647
+.	sourcestats.c	354	get_buf_index	initialization	Unknown	\initialized(&inst->last_sample)
+.	sourcestats.c	354	get_buf_index	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	354	get_buf_index	signed_overflow	Unknown	(int)((int)((int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples) + i) + 1 ≤ 2147483647
+.	sourcestats.c	354	get_buf_index	signed_overflow	Unknown	(int)((int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples) + i ≤ 2147483647
+.	sourcestats.c	354	get_buf_index	signed_overflow	Unknown	(int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples ≤ 2147483647
+.	sourcestats.c	369	convert_to_intervals	initialization	Unknown	\initialized(&inst->last_sample)
+.	sourcestats.c	370	convert_to_intervals	initialization	Unknown	\initialized(&inst->runs_samples)
+.	sourcestats.c	370	convert_to_intervals	signed_overflow	Unknown	-inst->runs_samples ≤ 2147483647
+.	sourcestats.c	370	convert_to_intervals	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	372	convert_to_intervals	mem_access	Unknown	\valid(times_back + i)
+.	sourcestats.c	388	find_best_sample_index	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	397	find_best_sample_index	initialization	Unknown	\initialized(times_back + i)
+.	sourcestats.c	397	find_best_sample_index	mem_access	Unknown	\valid_read(times_back + i)
+.	sourcestats.c	398	find_best_sample_index	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sourcestats.c	400	find_best_sample_index	initialization	Unknown	\initialized(&inst->root_delays[j])
+.	sourcestats.c	400	find_best_sample_index	initialization	Unknown	\initialized(&inst->root_dispersions[j])
+.	sourcestats.c	400	find_best_sample_index	initialization	Unknown	\initialized(&inst->skew)
+.	sourcestats.c	407	find_best_sample_index	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sourcestats.c	418	find_min_delay_sample	initialization	Unknown	\initialized(&inst->runs_samples)
+.	sourcestats.c	418	find_min_delay_sample	signed_overflow	Unknown	-inst->runs_samples ≤ 2147483647
+.	sourcestats.c	420	find_min_delay_sample	signed_overflow	Unknown	(int)(-inst->runs_samples) + 1 ≤ 2147483647
+.	sourcestats.c	420	find_min_delay_sample	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	422	find_min_delay_sample	initialization	Unknown	\initialized(&inst->peer_delays[index_0])
+.	sourcestats.c	422	find_min_delay_sample	initialization	Unknown	\initialized(&inst->peer_delays[inst->min_delay_sample])
+.	sourcestats.c	444	estimate_asymmetry	initialization	Unknown	\initialized(&a)
+.	sourcestats.c	444	estimate_asymmetry	initialization	Unknown	\initialized(asymmetry_run)
+.	sourcestats.c	472	correct_asymmetry	initialization	Unknown	\initialized(&inst->fixed_asymmetry)
+.	sourcestats.c	476	correct_asymmetry	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	476	correct_asymmetry	initialization	Unknown	\initialized(&inst->runs_samples)
+.	sourcestats.c	476	correct_asymmetry	signed_overflow	Unknown	-2147483648 ≤ inst->runs_samples + inst->n_samples
+.	sourcestats.c	476	correct_asymmetry	signed_overflow	Unknown	inst->runs_samples + inst->n_samples ≤ 2147483647
+.	sourcestats.c	479	correct_asymmetry	index_bound	Unknown	i < (int)(64 * 2)
+.	sourcestats.c	479	correct_asymmetry	initialization	Unknown	\initialized(&inst->peer_delays[tmp])
+.	sourcestats.c	479	correct_asymmetry	signed_overflow	Unknown	i - inst->runs_samples ≤ 2147483647
+.	sourcestats.c	482	correct_asymmetry	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	sourcestats.c	492	correct_asymmetry	initialization	Unknown	\initialized(&delays[i])
+.	sourcestats.c	492	correct_asymmetry	initialization	Unknown	\initialized(&inst->asymmetry)
+.	sourcestats.c	492	correct_asymmetry	initialization	Unknown	\initialized(offsets + i)
+.	sourcestats.c	527	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->runs_samples)
+.	sourcestats.c	529	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	530	SST_DoNewRegression	signed_overflow	Unknown	-inst->runs_samples ≤ 2147483647
+.	sourcestats.c	531	SST_DoNewRegression	index_bound	Unknown	(int)(i + inst->runs_samples) < (int)(64 * 2)
+.	sourcestats.c	531	SST_DoNewRegression	index_bound	Unknown	0 ≤ (int)(i + inst->runs_samples)
+.	sourcestats.c	531	SST_DoNewRegression	signed_overflow	Unknown	-2147483648 ≤ i + inst->runs_samples
+.	sourcestats.c	531	SST_DoNewRegression	signed_overflow	Unknown	i + inst->runs_samples ≤ 2147483647
+.	sourcestats.c	531	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->offsets[tmp])
+.	sourcestats.c	536	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->peer_delays[tmp_0])
+.	sourcestats.c	536	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->peer_dispersions[j])
+.	sourcestats.c	554	SST_DoNewRegression	initialization	Unknown	\initialized(&peer_distances[i])
+.	sourcestats.c	562	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->min_samples)
+.	sourcestats.c	572	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->skew)
+.	sourcestats.c	573	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->estimated_frequency)
+.	sourcestats.c	575	SST_DoNewRegression	initialization	Unknown	\initialized(&est_slope)
+.	sourcestats.c	576	SST_DoNewRegression	initialization	Unknown	\initialized(&est_slope_sd)
+.	sourcestats.c	577	SST_DoNewRegression	initialization	Unknown	\initialized(&degrees_of_freedom)
+.	sourcestats.c	578	SST_DoNewRegression	initialization	Unknown	\initialized(&est_intercept)
+.	sourcestats.c	579	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->last_sample)
+.	sourcestats.c	580	SST_DoNewRegression	initialization	Unknown	\initialized(&est_intercept_sd)
+.	sourcestats.c	581	SST_DoNewRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	sourcestats.c	581	SST_DoNewRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	sourcestats.c	581	SST_DoNewRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	sourcestats.c	581	SST_DoNewRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	sourcestats.c	582	SST_DoNewRegression	initialization	Unknown	\initialized(&nruns)
+.	sourcestats.c	585	SST_DoNewRegression	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	sourcestats.c	593	SST_DoNewRegression	initialization	Unknown	\initialized(&best_start)
+.	sourcestats.c	593	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->asymmetry)
+.	sourcestats.c	594	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->offset_time.tv_sec)
+.	sourcestats.c	595	SST_DoNewRegression	dangling_pointer	Unknown	¬\dangling(&inst->ip_addr)
+.	sourcestats.c	595	SST_DoNewRegression	initialization	Unknown	\initialized(&inst->ip_addr)
+.	sourcestats.c	603	SST_DoNewRegression	signed_overflow	Unknown	inst->runs_samples + best_start ≤ 2147483647
+.	sourcestats.c	626	SST_GetFrequencyRange	initialization	Unknown	\initialized(&inst->estimated_frequency)
+.	sourcestats.c	627	SST_GetFrequencyRange	initialization	Unknown	\initialized(&inst->skew)
+.	sourcestats.c	656	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	661	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->best_single_sample)
+.	sourcestats.c	664	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->stratum)
+.	sourcestats.c	665	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->leap)
+.	sourcestats.c	666	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->std_dev)
+.	sourcestats.c	669	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->estimated_frequency)
+.	sourcestats.c	669	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->offsets[i])
+.	sourcestats.c	670	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->root_delays[j])
+.	sourcestats.c	670	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->root_dispersions[j])
+.	sourcestats.c	670	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->skew)
+.	sourcestats.c	692	SST_GetSelectionData	signed_overflow	Unknown	-2147483648 ≤ inst->n_samples - 1
+.	sourcestats.c	695	SST_GetSelectionData	initialization	Unknown	\initialized(&inst->regression_ok)
+.	sourcestats.c	713	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	713	SST_GetTrackingData	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	sourcestats.c	715	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->best_single_sample)
+.	sourcestats.c	719	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->estimated_offset)
+.	sourcestats.c	720	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->estimated_offset_sd)
+.	sourcestats.c	721	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->estimated_frequency)
+.	sourcestats.c	722	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->estimated_frequency_sd)
+.	sourcestats.c	723	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->skew)
+.	sourcestats.c	724	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->root_delays[j])
+.	sourcestats.c	727	SST_GetTrackingData	initialization	Unknown	\initialized(&inst->root_dispersions[j])
+.	sourcestats.c	744	SST_SlewSamples	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	747	SST_SlewSamples	initialization	Unknown	\initialized(&inst->runs_samples)
+.	sourcestats.c	747	SST_SlewSamples	signed_overflow	Unknown	-inst->runs_samples ≤ 2147483647
+.	sourcestats.c	752	SST_SlewSamples	initialization	Unknown	\initialized(&inst->offsets[i])
+.	sourcestats.c	757	SST_SlewSamples	initialization	Unknown	\initialized(&inst->estimated_offset)
+.	sourcestats.c	758	SST_SlewSamples	initialization	Unknown	\initialized(&inst->estimated_frequency)
+.	sourcestats.c	792	SST_PredictOffset	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	797	SST_PredictOffset	initialization	Unknown	\initialized(&inst->last_sample)
+.	sourcestats.c	797	SST_PredictOffset	initialization	Unknown	\initialized(&inst->offsets[inst->last_sample])
+.	sourcestats.c	803	SST_PredictOffset	initialization	Unknown	\initialized(&inst->estimated_frequency)
+.	sourcestats.c	803	SST_PredictOffset	initialization	Unknown	\initialized(&inst->estimated_offset)
+.	sourcestats.c	813	SST_MinRoundTripDelay	initialization	Unknown	\initialized(&inst->fixed_min_delay)
+.	sourcestats.c	816	SST_MinRoundTripDelay	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	819	SST_MinRoundTripDelay	initialization	Unknown	\initialized(&inst->min_delay_sample)
+.	sourcestats.c	819	SST_MinRoundTripDelay	initialization	Unknown	\initialized(&inst->peer_delays[inst->min_delay_sample])
+.	sourcestats.c	829	SST_GetDelayTestData	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	833	SST_GetDelayTestData	initialization	Unknown	\initialized(&inst->estimated_frequency)
+.	sourcestats.c	833	SST_GetDelayTestData	initialization	Unknown	\initialized(&inst->estimated_offset)
+.	sourcestats.c	836	SST_GetDelayTestData	initialization	Unknown	\initialized(&inst->skew)
+.	sourcestats.c	837	SST_GetDelayTestData	initialization	Unknown	\initialized(&inst->std_dev)
+.	sourcestats.c	986	SST_Samples	initialization	Unknown	\initialized(&inst->n_samples)
+.	sourcestats.c	1037	SST_GetJitterAsymmetry	initialization	Unknown	\initialized(&inst->asymmetry)
+.	util.c	97	UTI_NormaliseTimespec	initialization	Unknown	\initialized(&ts->tv_nsec)
+.	util.c	98	UTI_NormaliseTimespec	initialization	Unknown	\initialized(&ts->tv_sec)
+.	util.c	98	UTI_NormaliseTimespec	signed_overflow	Unknown	-9223372036854775808 ≤ ts->tv_sec + (long)(ts->tv_nsec / 1000000000)
+.	util.c	98	UTI_NormaliseTimespec	signed_overflow	Unknown	ts->tv_sec + (long)(ts->tv_nsec / 1000000000) ≤ 9223372036854775807
+.	util.c	98	UTI_NormaliseTimespec	signed_overflow	Unknown	-9223372036854775808 ≤ ts->tv_nsec / 1000000000
+.	util.c	98	UTI_NormaliseTimespec	signed_overflow	Unknown	ts->tv_nsec / 1000000000 ≤ 9223372036854775807
+.	util.c	99	UTI_NormaliseTimespec	signed_overflow	Unknown	-9223372036854775808 ≤ ts->tv_nsec % 1000000000
+.	util.c	99	UTI_NormaliseTimespec	signed_overflow	Unknown	ts->tv_nsec % 1000000000 ≤ 9223372036854775807
+.	util.c	103	UTI_NormaliseTimespec	signed_overflow	Unknown	-9223372036854775808 ≤ ts->tv_sec - 1
+.	util.c	103	UTI_NormaliseTimespec	signed_overflow	Unknown	ts->tv_sec - 1 ≤ 9223372036854775807
+.	util.c	104	UTI_NormaliseTimespec	signed_overflow	Unknown	-9223372036854775808 ≤ ts->tv_nsec + 1000000000
+.	util.c	104	UTI_NormaliseTimespec	signed_overflow	Unknown	ts->tv_nsec + 1000000000 ≤ 9223372036854775807
+.	util.c	154	UTI_CompareTimespecs	initialization	Unknown	\initialized(&a->tv_sec)
+.	util.c	154	UTI_CompareTimespecs	initialization	Unknown	\initialized(&b->tv_sec)
+.	util.c	158	UTI_CompareTimespecs	initialization	Unknown	\initialized(&a->tv_nsec)
+.	util.c	158	UTI_CompareTimespecs	initialization	Unknown	\initialized(&b->tv_nsec)
+.	util.c	181	UTI_DiffTimespecsToDouble	initialization	Unknown	\initialized(&a->tv_nsec)
+.	util.c	181	UTI_DiffTimespecsToDouble	initialization	Unknown	\initialized(&a->tv_sec)
+.	util.c	181	UTI_DiffTimespecsToDouble	initialization	Unknown	\initialized(&b->tv_nsec)
+.	util.c	181	UTI_DiffTimespecsToDouble	initialization	Unknown	\initialized(&b->tv_sec)
+.	util.c	181	UTI_DiffTimespecsToDouble	signed_overflow	Unknown	-9223372036854775808 ≤ a->tv_nsec - b->tv_nsec
+.	util.c	181	UTI_DiffTimespecsToDouble	signed_overflow	Unknown	a->tv_nsec - b->tv_nsec ≤ 9223372036854775807
+.	util.c	191	UTI_AddDoubleToTimespec	float_to_int	Unknown	-9223372036854775809 < increment
+.	util.c	191	UTI_AddDoubleToTimespec	float_to_int	Unknown	increment < 9223372036854775808
+.	util.c	191	UTI_AddDoubleToTimespec	is_nan_or_infinite	Unknown	\is_finite(increment)
+.	util.c	192	UTI_AddDoubleToTimespec	initialization	Unknown	\initialized(&start->tv_sec)
+.	util.c	192	UTI_AddDoubleToTimespec	signed_overflow	Unknown	-9223372036854775808 ≤ start->tv_sec + int_part
+.	util.c	192	UTI_AddDoubleToTimespec	signed_overflow	Unknown	start->tv_sec + int_part ≤ 9223372036854775807
+.	util.c	193	UTI_AddDoubleToTimespec	float_to_int	Unknown	(double)start->tv_nsec + \mul_double((double)1.0e9, \sub_double(increment, (double)int_part)) < 9223372036854775808
+.	util.c	193	UTI_AddDoubleToTimespec	float_to_int	Unknown	-9223372036854775809 < (double)start->tv_nsec + \mul_double((double)1.0e9, \sub_double(increment, (double)int_part))
+.	util.c	193	UTI_AddDoubleToTimespec	initialization	Unknown	\initialized(&start->tv_nsec)
+.	util.c	291	UTI_IPToString	initialization	Unknown	\initialized(&addr->family)
+.	util.c	291	UTI_IPToString	mem_access	Unknown	\valid_read(&addr->family)
+.	util.c	296	UTI_IPToString	initialization	Unknown	\initialized(&addr->addr.in4)
+.	util.c	296	UTI_IPToString	mem_access	Unknown	\valid_read(&addr->addr.in4)
+.	util.c	310	UTI_IPToString	initialization	Unknown	\initialized(ip6 + (unsigned long)((unsigned long)(2 * a) + 1))
+.	util.c	310	UTI_IPToString	initialization	Unknown	\initialized(ip6 + (unsigned long)(2 * a))
+.	util.c	310	UTI_IPToString	mem_access	Unknown	\valid_read(ip6 + (unsigned long)((unsigned long)(2 * a) + 1))
+.	util.c	310	UTI_IPToString	mem_access	Unknown	\valid_read(ip6 + (unsigned long)(2 * a))
+.	util.c	310	UTI_IPToString	precondition of snprintf_va_10	Unknown	\valid(s + (0 .. n - 1)) ∨ \valid(s + (0 .. format_length(format) - 1))
+.	util.c	310	snprintf_va_10	precondition	Unknown	\valid(s + (0 .. n - 1)) ∨ \valid(s + (0 .. format_length(format) - 1))
+.	util.c	345	UTI_StringToIP	precondition of sscanf_va_63	Unknown	valid_read_string(s)
+.	util.c	345	sscanf_va_63	precondition	Unknown	valid_read_string(s)
+.	util.c	680	UTI_DoubleToNtp32	is_nan_or_infinite	Unknown	\is_finite(x)
+.	util.c	764	UTI_TimespecToNtp64	float_to_int	Unknown	-1 < 4.294967296 * (double)nsec
+.	util.c	764	UTI_TimespecToNtp64	float_to_int	Unknown	4.294967296 * (double)nsec < 4294967296
+.	util.c	764	UTI_TimespecToNtp64	is_nan_or_infinite	Unknown	\is_finite(\mul_double((double)4.294967296, (double)nsec))
+.	util.c	1213	UTI_GetRandomBytesUrandom	precondition of fread	Unknown	valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1))
+FRAMAC_SHARE/libc	__fc_inet.h	358	inet_addr	precondition	Unknown	valid_arg: valid_read_string(arg)
+FRAMAC_SHARE/libc	assert.h	31	__FC_assert	precondition	Invalid or unreachable	nonnull_c: c ≢ 0
+FRAMAC_SHARE/libc	math.h	325	exp	precondition	Unknown	finite_domain: x ≤ 0x1.62e42fefa39efp+9
+FRAMAC_SHARE/libc	math.h	362	log	precondition	Unknown	finite_arg: \is_finite(x)
+FRAMAC_SHARE/libc	math.h	363	log	precondition	Unknown	arg_positive: x > 0
+FRAMAC_SHARE/libc	math.h	449	fabs	precondition	Unknown	finite_arg: \is_finite(x)
+FRAMAC_SHARE/libc	math.h	493	sqrt	precondition	Unknown	finite_arg: \is_finite(x)
+FRAMAC_SHARE/libc	math.h	494	sqrt	precondition	Unknown	arg_positive: x ≥ -0.
+FRAMAC_SHARE/libc	netdb.c	113	gethostbyname	mem_access	Unknown	\valid_read(cp)
+FRAMAC_SHARE/libc	netdb.c	116	gethostbyname	mem_access	Unknown	\valid_read(cp)
+FRAMAC_SHARE/libc	netdb.c	119	gethostbyname	precondition of inet_addr	Unknown	valid_arg: valid_read_string(arg)
+FRAMAC_SHARE/libc	netdb.c	145	gethostbyname	precondition of inet_addr	Unknown	valid_arg: valid_read_string(arg)
+FRAMAC_SHARE/libc	stdio.h	83	rename	precondition	Unknown	valid_old_name: valid_read_string(old_name)
+FRAMAC_SHARE/libc	stdio.h	84	rename	precondition	Unknown	valid_new_name: valid_read_string(new_name)
+FRAMAC_SHARE/libc	stdio.h	150	fopen	precondition	Unknown	valid_filename: valid_read_string(filename)
+FRAMAC_SHARE/libc	stdio.h	288	fputs	precondition	Unknown	valid_string_s: valid_read_string(s)
+FRAMAC_SHARE/libc	stdio.h	351	fread	precondition	Unknown	valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1))
+FRAMAC_SHARE/libc	stdio.h	548	popen	precondition	Unknown	valid_command: valid_read_string(command)
+FRAMAC_SHARE/libc	stdio.h	563	pclose	precondition	Unknown	open_pipe: is_open_pipe(stream)
+FRAMAC_SHARE/libc	stdlib.h	405	free	precondition	Unknown	freeable: p ≡ \null ∨ \freeable(p)
+FRAMAC_SHARE/libc	string.c	130	strcmp	initialization	Unknown	\initialized(s1 + i)
+FRAMAC_SHARE/libc	string.c	130	strcmp	mem_access	Unknown	\valid_read(s1 + i)
+FRAMAC_SHARE/libc	string.c	130	strcmp	mem_access	Unknown	\valid_read(s2 + i)
+FRAMAC_SHARE/libc	string.c	133	strcmp	initialization	Unknown	\initialized((unsigned char *)s1 + i)
+FRAMAC_SHARE/libc	string.c	133	strcmp	mem_access	Unknown	\valid_read((unsigned char *)s1 + i)
+FRAMAC_SHARE/libc	string.c	139	strncmp	initialization	Unknown	\initialized(s1 + i)
+FRAMAC_SHARE/libc	string.c	139	strncmp	mem_access	Unknown	\valid_read(s1 + i)
+FRAMAC_SHARE/libc	string.c	140	strncmp	initialization	Unknown	\initialized((unsigned char *)s1 + i)
+FRAMAC_SHARE/libc	string.c	140	strncmp	mem_access	Unknown	\valid_read((unsigned char *)s1 + i)
+FRAMAC_SHARE/libc	string.c	170	strcasecmp	initialization	Unknown	\initialized(s1 + i)
+FRAMAC_SHARE/libc	string.c	170	strcasecmp	mem_access	Unknown	\valid_read(s1 + i)
+FRAMAC_SHARE/libc	string.c	170	strcasecmp	mem_access	Unknown	\valid_read(s2 + i)
+FRAMAC_SHARE/libc	string.c	174	strcasecmp	mem_access	Unknown	\valid_read(s2 + i)
+FRAMAC_SHARE/libc	string.c	182	strcat	precondition of strlen	Unknown	valid_string_s: valid_read_string(s)
+FRAMAC_SHARE/libc	string.c	183	strcat	mem_access	Unknown	\valid_read(src + i)
+FRAMAC_SHARE/libc	string.c	184	strcat	mem_access	Unknown	\valid(dest + (unsigned long)(n + i))
+FRAMAC_SHARE/libc	string.c	186	strcat	mem_access	Unknown	\valid(dest + (unsigned long)(n + i))
+FRAMAC_SHARE/libc	string.c	207	strcpy	initialization	Unknown	\initialized(src + i)
+FRAMAC_SHARE/libc	string.c	207	strcpy	mem_access	Unknown	\valid_read(src + i)
+FRAMAC_SHARE/libc	string.c	208	strcpy	mem_access	Unknown	\valid(dest + i)
+FRAMAC_SHARE/libc	string.c	209	strcpy	mem_access	Unknown	\valid(dest + i)
+FRAMAC_SHARE/libc	string.c	217	strncpy	mem_access	Unknown	\valid_read(src + i)
+FRAMAC_SHARE/libc	string.c	292	strdup	precondition of strlen	Unknown	valid_string_s: valid_read_string(s)
+FRAMAC_SHARE/libc	string.c	298	strdup	precondition of memcpy	Unknown	valid_dest: valid_or_empty(dest, n)
+FRAMAC_SHARE/libc	string.c	298	strdup	precondition of memcpy	Unknown	valid_src: valid_read_or_empty(src, n)
+FRAMAC_SHARE/libc	string.h	92	memcpy	precondition	Unknown	valid_dest: valid_or_empty(dest, n)
+FRAMAC_SHARE/libc	string.h	93	memcpy	precondition	Unknown	valid_src: valid_read_or_empty(src, n)
+FRAMAC_SHARE/libc	string.h	95	memcpy	precondition	Unknown	separation: \separated((char *)dest + (0 .. n - 1), (char *)src + (0 .. n - 1))
+FRAMAC_SHARE/libc	string.h	104	memmove	precondition	Unknown	valid_dest: valid_or_empty(dest, n)
+FRAMAC_SHARE/libc	string.h	105	memmove	precondition	Unknown	valid_src: valid_read_or_empty(src, n)
+FRAMAC_SHARE/libc	string.h	115	memset	precondition	Unknown	valid_s: valid_or_empty(s, n)
+FRAMAC_SHARE/libc	string.h	125	strlen	precondition	Unknown	valid_string_s: valid_read_string(s)
+FRAMAC_SHARE/libc	string.h	157	strchr	precondition	Unknown	valid_string_s: valid_read_string(s)
+FRAMAC_SHARE/libc	unistd.h	774	chown	precondition	Unknown	valid_string_path: valid_read_string(path)
+FRAMAC_SHARE/libc	unistd.h	1116	unlink	precondition	Unknown	valid_string_path: valid_read_string(path)
+FRAMAC_SHARE/libc/sys	stat.h	32	chmod	assigns clause	Unknown	assigns \nothing;
+FRAMAC_SHARE/libc/sys	stat.h	32	chmod	from clause	Unknown	assigns \result \from \nothing;
+FRAMAC_SHARE/libc/sys	stat.h	84	stat	precondition	Unknown	valid_pathname: valid_read_string(pathname)
+test/unit	ntp_core.c	179	send_response	precondition of __FC_assert	Invalid or unreachable	nonnull_c: c ≢ 0
+test/unit	ntp_core.c	186	send_response	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+test/unit	ntp_core.c	192	send_response	precondition of __FC_assert	Invalid or unreachable	nonnull_c: c ≢ 0
+test/unit	ntp_core.c	424	test_unit	shift	Unknown	0 ≤ inst1->local_poll < 32
+test/unit	ntp_core.c	446	test_unit	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+test/unit	ntp_core.c	464	test_unit	signed_overflow	Unknown	1 << (int)(source.params.minpoll - 1) ≤ 2147483647
+test/unit	ntp_core.c	464	test_unit	shift	Unknown	0 ≤ (int)(source.params.minpoll - 1) < 32
+test/unit	ntp_core.c	464	test_unit	signed_overflow	Unknown	-2147483648 ≤ source.params.minpoll - 1
+test/unit	ntp_core.c	468	test_unit	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
diff --git a/chrony/.frama-c/chrony-ntp-core.eva/metrics.log b/chrony/.frama-c/chrony-ntp-core.eva/metrics.log
new file mode 100644
index 0000000000000000000000000000000000000000..44421768f56520fcc334a09259ed0c99a93374e5
--- /dev/null
+++ b/chrony/.frama-c/chrony-ntp-core.eva/metrics.log
@@ -0,0 +1,396 @@
+[metrics] Eva coverage statistics
+=======================
+Syntactically reachable functions = 385 (out of 542)
+Semantically reached functions = 333
+Coverage estimation = 86.5% 
+
+Unreached functions (52) =
+  <clientlog.c>: CLG_GetNtpTimestamps; CLG_LimitNTPResponseRate; compare_ts;
+    expand_hashtable; get_index; get_ts_from_timespec; limit_response_random;
+    update_record; 
+  <conf.c>: CNF_GetInitStepThreshold; CNF_ReadFile; 
+  <keys.c>: check_ntp_auth; compare_keys_by_id; KEY_CheckAuth; 
+  <local.c>: LCL_AccumulateOffset; LCL_IsFirstParameterChangeHandler;
+    LCL_NotifyLeap; LCL_SetSystemLeap; 
+  <ntp_core.c>: is_zero_data; 
+  <ntp_io.c>: connect_socket; NIO_IsServerConnectable;
+    prepare_separate_client_socket; process_message; read_from_socket; 
+  <ntp_sources.h>: NSR_GetLocalRefid; NSR_ProcessRx; 
+  <reference.c>: fb_drift_timeout; leap_end_timeout; leap_start_timeout;
+    REF_GetLeapMode; REF_GetSkew; 
+  <sched.c>: allocate_tqe; get_new_tqe_id; release_tqe;
+    SCH_AddTimeoutByDelay; 
+  <smooth.c>: get_smoothing; SMT_Activate; SMT_GetOffset; SMT_Leap;
+    SMT_Reset; update_smoothing; update_stages; 
+  <sources.c>: add_dispersion; compare_sort_elements; 
+  <sourcestats.c>: SST_AddDispersion; 
+  <stubs.c>: NSD_GetAuthDelay; NSD_SignAndSendPacket; 
+  <util.c>: UTI_CompareIPs; UTI_IPAndPortToSockaddr; UTI_IPToHash;
+    UTI_RefidToString; UTI_SockaddrToIPAndPort; UTI_TimevalToTimespec;
+[metrics] References to non-analyzed functions
+------------------------------------
+Function check_packet_auth calls KEY_CheckAuth (at ntp_core.c:1353)
+Function check_packet_auth calls is_zero_data (at ntp_core.c:1393)
+Function check_packet_auth calls is_zero_data (at ntp_core.c:1395)
+Function CLG_GetClientIndex calls get_index (at clientlog.c:455)
+Function CLG_LogNTPAccess calls update_record (at clientlog.c:473)
+Function CLG_LogNTPAccess calls get_index (at clientlog.c:482)
+Function get_record calls UTI_IPToHash (at clientlog.c:176)
+Function get_record calls UTI_CompareIPs (at clientlog.c:181)
+Function get_record calls compare_ts (at clientlog.c:187)
+Function get_record calls compare_ts (at clientlog.c:190)
+Function get_record calls expand_hashtable (at clientlog.c:204)
+Function handle_slew_0 calls LCL_IsFirstParameterChangeHandler (at sched.c:587)
+Function KEY_Reload references compare_keys_by_id (at keys.c:245)
+Function LCL_ApplyStepOffset calls SMT_Reset (at local.c:554)
+Function lookup_key references compare_keys_by_id (at keys.c:271)
+Function NCR_GetInstance calls NIO_IsServerConnectable (at ntp_core.c:618)
+Function NCR_ProcessRxUnknown calls CLG_LimitNTPResponseRate (at ntp_core.c:2142)
+Function NCR_ProcessRxUnknown calls CLG_GetNtpTimestamps (at ntp_core.c:2176)
+Function NCR_ProcessTxUnknown calls SMT_GetOffset (at ntp_core.c:2281)
+Function NCR_ProcessTxUnknown calls CLG_GetNtpTimestamps (at ntp_core.c:2283)
+Function NCR_SetConnectivity calls NIO_IsServerConnectable (at ntp_core.c:2322)
+Function parse_include calls CNF_ReadFile (at conf.c:1377)
+Function prepare_socket references read_from_socket (at ntp_io.c:273)
+Function SCH_AddTimeout calls allocate_tqe (at sched.c:315)
+Function SCH_AddTimeout calls get_new_tqe_id (at sched.c:317)
+Function SCH_RemoveTimeout calls release_tqe (at sched.c:469)
+Function schedule_fb_drift references fb_drift_timeout (at reference.c:486)
+Function set_leap_timeout references leap_start_timeout (at reference.c:766)
+Function source_to_string calls UTI_RefidToString (at sources.c:474)
+Function special_mode_sync calls CNF_GetInitStepThreshold (at reference.c:881)
+Function special_mode_sync calls LCL_AccumulateOffset (at reference.c:889)
+Function SRC_Finalise references add_dispersion (at sources.c:203)
+Function SRC_Initialise references add_dispersion (at sources.c:195)
+Function SRC_SelectSource calls NSR_GetLocalRefid (at sources.c:746)
+Function SRC_SelectSource references compare_sort_elements (at sources.c:803)
+Function SST_AccumulateSample calls UTI_RefidToString (at sourcestats.c:307)
+Function SST_DoNewRegression calls UTI_RefidToString (at sourcestats.c:595)
+Function transmit_packet calls SMT_GetOffset (at ntp_core.c:990)
+Function transmit_packet calls REF_GetLeapMode (at ntp_core.c:994)
+Function transmit_packet calls NSD_GetAuthDelay (at ntp_core.c:1079)
+Function transmit_packet calls NSD_SignAndSendPacket (at ntp_core.c:1102)
+Function update_leap_status calls LCL_SetSystemLeap (at reference.c:807)
+Function write_log calls UTI_RefidToString (at reference.c:860)
+[metrics] Statements analyzed by Eva
+--------------------------
+7608 stmts in analyzed functions, 6650 stmts analyzed (87.4%)
+ADF_Allow: 2 stmts out of 2 (100.0%)
+ADF_AllowAll: 2 stmts out of 2 (100.0%)
+ADF_CreateTable: 6 stmts out of 6 (100.0%)
+ADF_Deny: 2 stmts out of 2 (100.0%)
+ADF_DenyAll: 2 stmts out of 2 (100.0%)
+ADF_DestroyTable: 4 stmts out of 4 (100.0%)
+ARR_AppendElement: 3 stmts out of 3 (100.0%)
+ARR_CreateInstance: 7 stmts out of 7 (100.0%)
+ARR_DestroyInstance: 3 stmts out of 3 (100.0%)
+ARR_GetElement: 3 stmts out of 3 (100.0%)
+ARR_GetElements: 7 stmts out of 7 (100.0%)
+ARR_GetNewElement: 4 stmts out of 4 (100.0%)
+ARR_GetSize: 2 stmts out of 2 (100.0%)
+ARR_SetSize: 3 stmts out of 3 (100.0%)
+CLG_GetNtpMinPoll: 1 stmts out of 1 (100.0%)
+CNF_AllowLocalReference: 11 stmts out of 11 (100.0%)
+CNF_Finalise: 43 stmts out of 43 (100.0%)
+CNF_GetAcquisitionPort: 1 stmts out of 1 (100.0%)
+CNF_GetCombineLimit: 1 stmts out of 1 (100.0%)
+CNF_GetCorrectionTimeRatio: 1 stmts out of 1 (100.0%)
+CNF_GetDriftFile: 1 stmts out of 1 (100.0%)
+CNF_GetFallbackDrifts: 3 stmts out of 3 (100.0%)
+CNF_GetHwTsInterface: 10 stmts out of 10 (100.0%)
+CNF_GetKeysFile: 1 stmts out of 1 (100.0%)
+CNF_GetLeapSecMode: 1 stmts out of 1 (100.0%)
+CNF_GetLeapSecTimezone: 1 stmts out of 1 (100.0%)
+CNF_GetLogChange: 1 stmts out of 1 (100.0%)
+CNF_GetLogMeasurements: 2 stmts out of 2 (100.0%)
+CNF_GetLogTracking: 1 stmts out of 1 (100.0%)
+CNF_GetMailOnChange: 8 stmts out of 8 (100.0%)
+CNF_GetMakeStep: 3 stmts out of 3 (100.0%)
+CNF_GetMaxChange: 4 stmts out of 4 (100.0%)
+CNF_GetMaxClockError: 1 stmts out of 1 (100.0%)
+CNF_GetMaxDistance: 1 stmts out of 1 (100.0%)
+CNF_GetMaxDrift: 1 stmts out of 1 (100.0%)
+CNF_GetMaxJitter: 1 stmts out of 1 (100.0%)
+CNF_GetMaxSamples: 1 stmts out of 1 (100.0%)
+CNF_GetMaxUpdateSkew: 1 stmts out of 1 (100.0%)
+CNF_GetMinSamples: 1 stmts out of 1 (100.0%)
+CNF_GetMinSources: 1 stmts out of 1 (100.0%)
+CNF_GetNTPPort: 1 stmts out of 1 (100.0%)
+CNF_GetReselectDistance: 1 stmts out of 1 (100.0%)
+CNF_GetStratumWeight: 1 stmts out of 1 (100.0%)
+CNF_ParseLine: 219 stmts out of 219 (100.0%)
+CNF_SetupAccessRestrictions: 45 stmts out of 45 (100.0%)
+CPS_NormalizeLine: 35 stmts out of 35 (100.0%)
+CPS_ParseKey: 24 stmts out of 24 (100.0%)
+CPS_ParseLocal: 41 stmts out of 41 (100.0%)
+CPS_ParseNTPSourceAdd: 201 stmts out of 201 (100.0%)
+CPS_SplitWord: 30 stmts out of 30 (100.0%)
+HSH_Finalise: 1 stmts out of 1 (100.0%)
+HSH_GetHashId: 7 stmts out of 7 (100.0%)
+KEY_CheckKeyLength: 7 stmts out of 7 (100.0%)
+KEY_Finalise: 3 stmts out of 3 (100.0%)
+KEY_GetAuthDelay: 7 stmts out of 7 (100.0%)
+KEY_GetAuthLength: 8 stmts out of 8 (100.0%)
+KEY_Initialise: 4 stmts out of 4 (100.0%)
+KEY_KeyKnown: 3 stmts out of 3 (100.0%)
+KEY_Reload: 88 stmts out of 88 (100.0%)
+LCL_AccumulateFrequencyAndOffset: 14 stmts out of 14 (100.0%)
+LCL_CookTime: 3 stmts out of 3 (100.0%)
+LCL_GetMaxClockError: 1 stmts out of 1 (100.0%)
+LCL_GetOffsetCorrection: 2 stmts out of 2 (100.0%)
+LCL_GetSysPrecisionAsQuantum: 1 stmts out of 1 (100.0%)
+LCL_Initialise: 28 stmts out of 28 (100.0%)
+LCL_RemoveParameterChangeHandler: 17 stmts out of 17 (100.0%)
+MD5Init: 10 stmts out of 10 (100.0%)
+MD5Update: 31 stmts out of 31 (100.0%)
+Malloc: 8 stmts out of 8 (100.0%)
+Malloc2: 3 stmts out of 3 (100.0%)
+NCR_DestroyInstance: 9 stmts out of 9 (100.0%)
+NCR_Initialise: 11 stmts out of 11 (100.0%)
+NCR_ProcessTxKnown: 12 stmts out of 12 (100.0%)
+NCR_ResetInstance: 20 stmts out of 20 (100.0%)
+NCR_StartInstance: 4 stmts out of 4 (100.0%)
+NIO_Finalise: 10 stmts out of 10 (100.0%)
+REF_Finalise: 9 stmts out of 9 (100.0%)
+REF_GetMode: 1 stmts out of 1 (100.0%)
+REF_GetOrphanStratum: 14 stmts out of 14 (100.0%)
+REF_GetOurStratum: 3 stmts out of 3 (100.0%)
+REF_IsLeapSecondClose: 21 stmts out of 21 (100.0%)
+REF_SetUnsynchronised: 23 stmts out of 23 (100.0%)
+RGR_GetTCoef: 8 stmts out of 8 (100.0%)
+RGR_MultipleRegress: 43 stmts out of 43 (100.0%)
+Realloc: 8 stmts out of 8 (100.0%)
+Realloc2: 5 stmts out of 5 (100.0%)
+SCH_Finalise: 3 stmts out of 3 (100.0%)
+SCH_Initialise: 11 stmts out of 11 (100.0%)
+SCH_RemoveFileHandler: 15 stmts out of 15 (100.0%)
+SMT_IsEnabled: 1 stmts out of 1 (100.0%)
+SRC_AccumulateSample: 11 stmts out of 11 (100.0%)
+SRC_DestroyInstance: 18 stmts out of 18 (100.0%)
+SRC_Finalise: 7 stmts out of 7 (100.0%)
+SRC_GetSourcestats: 3 stmts out of 3 (100.0%)
+SRC_Initialise: 15 stmts out of 15 (100.0%)
+SRC_IsReachable: 2 stmts out of 2 (100.0%)
+SRC_IsSyncPeer: 8 stmts out of 8 (100.0%)
+SRC_ReselectSource: 3 stmts out of 3 (100.0%)
+SRC_ResetInstance: 9 stmts out of 9 (100.0%)
+SRC_SetActive: 2 stmts out of 2 (100.0%)
+SRC_SetRefid: 4 stmts out of 4 (100.0%)
+SRC_UnsetActive: 2 stmts out of 2 (100.0%)
+SST_CreateInstance: 8 stmts out of 8 (100.0%)
+SST_DeleteInstance: 2 stmts out of 2 (100.0%)
+SST_GetDelayTestData: 11 stmts out of 11 (100.0%)
+SST_GetFrequencyRange: 8 stmts out of 8 (100.0%)
+SST_GetJitterAsymmetry: 2 stmts out of 2 (100.0%)
+SST_GetSelectionData: 21 stmts out of 21 (100.0%)
+SST_GetTrackingData: 13 stmts out of 13 (100.0%)
+SST_MinRoundTripDelay: 10 stmts out of 10 (100.0%)
+SST_PredictOffset: 13 stmts out of 13 (100.0%)
+SST_ResetInstance: 18 stmts out of 18 (100.0%)
+SST_Samples: 2 stmts out of 2 (100.0%)
+SST_SetRefid: 3 stmts out of 3 (100.0%)
+SST_SlewSamples: 21 stmts out of 21 (100.0%)
+Strdup: 8 stmts out of 8 (100.0%)
+TST_GetRandomDouble: 5 stmts out of 5 (100.0%)
+TST_RegisterDummyDrivers: 2 stmts out of 2 (100.0%)
+TST_ResumeLogging: 2 stmts out of 2 (100.0%)
+TST_SuspendLogging: 2 stmts out of 2 (100.0%)
+UTI_AddDoubleToTimespec: 5 stmts out of 5 (100.0%)
+UTI_AdjustTimespec: 4 stmts out of 4 (100.0%)
+UTI_AverageDiffTimespecs: 3 stmts out of 3 (100.0%)
+UTI_CompareNtp64: 25 stmts out of 25 (100.0%)
+UTI_CompareTimespecs: 18 stmts out of 18 (100.0%)
+UTI_DiffTimespecsToDouble: 2 stmts out of 2 (100.0%)
+UTI_DoubleToNtp32: 10 stmts out of 10 (100.0%)
+UTI_FdSetCloexec: 12 stmts out of 12 (100.0%)
+UTI_GetRandomBytes: 2 stmts out of 2 (100.0%)
+UTI_GetRandomBytesUrandom: 20 stmts out of 20 (100.0%)
+UTI_IPToString: 24 stmts out of 24 (100.0%)
+UTI_IsEqualAnyNtp64: 20 stmts out of 20 (100.0%)
+UTI_IsTimeOffsetSane: 25 stmts out of 25 (100.0%)
+UTI_IsZeroNtp64: 6 stmts out of 6 (100.0%)
+UTI_IsZeroTimespec: 6 stmts out of 6 (100.0%)
+UTI_NormaliseTimespec: 10 stmts out of 10 (100.0%)
+UTI_Ntp32ToDouble: 3 stmts out of 3 (100.0%)
+UTI_Ntp64ToTimespec: 10 stmts out of 10 (100.0%)
+UTI_StringToIP: 12 stmts out of 12 (100.0%)
+UTI_TimeToLogForm: 8 stmts out of 8 (100.0%)
+UTI_TimespecToDouble: 2 stmts out of 2 (100.0%)
+UTI_TimespecToNtp64: 17 stmts out of 17 (100.0%)
+UTI_ZeroNtp64: 6 stmts out of 6 (100.0%)
+UTI_ZeroTimespec: 3 stmts out of 3 (100.0%)
+accrue_offset: 1 stmts out of 1 (100.0%)
+add_timeout_in_class: 2 stmts out of 2 (100.0%)
+advance_time: 2 stmts out of 2 (100.0%)
+apply_step_offset: 2 stmts out of 2 (100.0%)
+calculate_sys_precision: 25 stmts out of 25 (100.0%)
+check_delay_dev_ratio: 23 stmts out of 23 (100.0%)
+check_delay_ratio: 18 stmts out of 18 (100.0%)
+check_offset: 11 stmts out of 11 (100.0%)
+check_packet_format: 17 stmts out of 17 (100.0%)
+clamp_freq: 25 stmts out of 25 (100.0%)
+close_node: 11 stmts out of 11 (100.0%)
+close_socket: 6 stmts out of 6 (100.0%)
+convert_to_intervals: 13 stmts out of 13 (100.0%)
+correct_asymmetry: 27 stmts out of 27 (100.0%)
+decode_password: 39 stmts out of 39 (100.0%)
+determine_hash_delay: 17 stmts out of 17 (100.0%)
+do_size_checks: 14 stmts out of 14 (100.0%)
+do_time_checks: 24 stmts out of 24 (100.0%)
+eva_main: 13 stmts out of 13 (100.0%)
+find_best_sample_index: 21 stmts out of 21 (100.0%)
+find_median: 14 stmts out of 14 (100.0%)
+find_min_delay_sample: 11 stmts out of 11 (100.0%)
+find_ordered_entry_with_flags: 76 stmts out of 76 (100.0%)
+free_keys: 13 stmts out of 13 (100.0%)
+get_array_size: 8 stmts out of 8 (100.0%)
+get_buf_index: 2 stmts out of 2 (100.0%)
+get_key: 5 stmts out of 5 (100.0%)
+get_key_by_id: 17 stmts out of 17 (100.0%)
+get_number_of_args: 13 stmts out of 13 (100.0%)
+get_poll_adj: 11 stmts out of 11 (100.0%)
+get_random_key_id: 9 stmts out of 9 (100.0%)
+get_root_dispersion: 14 stmts out of 14 (100.0%)
+get_runsbuf_index: 2 stmts out of 2 (100.0%)
+get_subnet: 4 stmts out of 4 (100.0%)
+invoke_parameter_change_handlers: 8 stmts out of 8 (100.0%)
+is_leap_second_day: 17 stmts out of 17 (100.0%)
+is_offset_ok: 32 stmts out of 32 (100.0%)
+is_step_limit_reached: 11 stmts out of 11 (100.0%)
+lcl_RegisterSystemDrivers: 9 stmts out of 9 (100.0%)
+log_selection_message: 9 stmts out of 9 (100.0%)
+lookup_key: 18 stmts out of 18 (100.0%)
+main: 41 stmts out of 41 (100.0%)
+mark_ok_sources: 10 stmts out of 10 (100.0%)
+maybe_log_offset: 29 stmts out of 29 (100.0%)
+n_runs_from_residuals: 19 stmts out of 19 (100.0%)
+open_node: 12 stmts out of 12 (100.0%)
+parse_clientloglimit: 5 stmts out of 5 (100.0%)
+parse_fallbackdrift: 5 stmts out of 5 (100.0%)
+parse_leapsecmode: 14 stmts out of 14 (100.0%)
+parse_local: 5 stmts out of 5 (100.0%)
+parse_mailonchange: 10 stmts out of 10 (100.0%)
+parse_maxchange: 6 stmts out of 6 (100.0%)
+parse_null: 3 stmts out of 3 (100.0%)
+parse_smoothtime: 16 stmts out of 16 (100.0%)
+parse_string: 5 stmts out of 5 (100.0%)
+prepare_buffers: 19 stmts out of 19 (100.0%)
+process_replay: 11 stmts out of 11 (100.0%)
+process_request: 16 stmts out of 16 (100.0%)
+process_sample: 27 stmts out of 27 (100.0%)
+prune_register: 11 stmts out of 11 (100.0%)
+read_frequency: 2 stmts out of 2 (100.0%)
+realloc_array: 15 stmts out of 15 (100.0%)
+schedule_fb_drift: 28 stmts out of 28 (100.0%)
+set_frequency: 2 stmts out of 2 (100.0%)
+set_subnet: 57 stmts out of 57 (100.0%)
+split_ip6: 7 stmts out of 7 (100.0%)
+start_initial_timeout: 13 stmts out of 13 (100.0%)
+update_fb_drifts: 25 stmts out of 25 (100.0%)
+update_tx_timestamp: 25 stmts out of 25 (100.0%)
+zero_local_timestamp: 4 stmts out of 4 (100.0%)
+SST_DoNewRegression: 136 stmts out of 137 (99.3%)
+prepare_socket: 83 stmts out of 84 (98.8%)
+RGR_FindBestRegression: 82 stmts out of 83 (98.8%)
+combine_sources: 71 stmts out of 72 (98.6%)
+transmit_timeout: 134 stmts out of 136 (98.5%)
+NIO_Initialise: 57 stmts out of 58 (98.3%)
+write_log: 43 stmts out of 44 (97.7%)
+test_unit: 247 stmts out of 253 (97.6%)
+parse_hwtimestamp: 75 stmts out of 77 (97.4%)
+REF_GetReferenceParams: 36 stmts out of 37 (97.3%)
+estimate_asymmetry: 36 stmts out of 37 (97.3%)
+receive_packet: 450 stmts out of 464 (97.0%)
+parse_log: 29 stmts out of 30 (96.7%)
+MD5Final: 28 stmts out of 29 (96.6%)
+update_drift_file: 55 stmts out of 57 (96.5%)
+get_clock_estimates: 24 stmts out of 25 (96.0%)
+parse_allow_deny: 70 stmts out of 73 (95.9%)
+REF_Initialise: 93 stmts out of 97 (95.9%)
+check_ip_in_node: 23 stmts out of 24 (95.8%)
+parse_refclock: 166 stmts out of 174 (95.4%)
+is_any_allowed: 20 stmts out of 21 (95.2%)
+NCR_ProcessRxKnown: 57 stmts out of 60 (95.0%)
+SST_AccumulateSample: 38 stmts out of 40 (95.0%)
+NCR_AddAccessRestriction: 36 stmts out of 38 (94.7%)
+SRC_SelectSource: 358 stmts out of 378 (94.7%)
+NCR_GetInstance: 143 stmts out of 151 (94.7%)
+get_tz_leap: 44 stmts out of 47 (93.6%)
+REF_SetReference: 84 stmts out of 90 (93.3%)
+check_number_of_args: 27 stmts out of 29 (93.1%)
+restart_timeout: 25 stmts out of 27 (92.6%)
+ADF_IsAllowed: 11 stmts out of 12 (91.7%)
+UTI_Log2ToDouble: 11 stmts out of 12 (91.7%)
+close_client_socket: 11 stmts out of 12 (91.7%)
+parse_ratelimit: 22 stmts out of 24 (91.7%)
+take_offline: 11 stmts out of 12 (91.7%)
+send_request: 19 stmts out of 21 (90.5%)
+HSH_Hash: 9 stmts out of 10 (90.0%)
+LCL_SetAbsoluteFrequency: 9 stmts out of 10 (90.0%)
+get_separation: 17 stmts out of 19 (89.5%)
+LCL_Finalise: 8 stmts out of 9 (88.9%)
+UTI_GetNtp64Fuzz: 16 stmts out of 18 (88.9%)
+update_leap_status: 32 stmts out of 36 (88.9%)
+LCL_AddParameterChangeHandler: 15 stmts out of 17 (88.2%)
+LCL_RemoveDispersionNotifyHandler: 15 stmts out of 17 (88.2%)
+KEY_GenerateAuth: 7 stmts out of 8 (87.5%)
+TST_GetRandomAddress: 35 stmts out of 40 (87.5%)
+set_leap_timeout: 13 stmts out of 15 (86.7%)
+SCH_GetLastEventTime: 6 stmts out of 7 (85.7%)
+parse_bindcmdaddress: 12 stmts out of 14 (85.7%)
+SCH_AddFileHandler: 23 stmts out of 27 (85.2%)
+command_parse_error: 17 stmts out of 20 (85.0%)
+other_parse_error: 17 stmts out of 20 (85.0%)
+SRC_CreateNewInstance: 22 stmts out of 26 (84.6%)
+LCL_ApplyStepOffset: 16 stmts out of 19 (84.2%)
+parse_initstepslew: 21 stmts out of 25 (84.0%)
+get_transmit_delay: 31 stmts out of 37 (83.8%)
+slew_sources: 10 stmts out of 12 (83.3%)
+process_response: 56 stmts out of 68 (82.4%)
+adjust_poll: 18 stmts out of 22 (81.8%)
+parse_broadcast: 25 stmts out of 31 (80.6%)
+parse_source: 8 stmts out of 10 (80.0%)
+parse_tempcomp: 23 stmts out of 29 (79.3%)
+transmit_packet: 116 stmts out of 147 (78.9%)
+NCR_InitiateSampleBurst: 11 stmts out of 14 (78.6%)
+RGR_FindMedian: 7 stmts out of 9 (77.8%)
+parse_bindacqaddress: 7 stmts out of 9 (77.8%)
+parse_bindaddress: 7 stmts out of 9 (77.8%)
+parse_makestep: 7 stmts out of 9 (77.8%)
+CNF_Initialise: 17 stmts out of 22 (77.3%)
+ADF_IsAnyAllowed: 10 stmts out of 13 (76.9%)
+set_subnet_: 20 stmts out of 26 (76.9%)
+CLG_GetClientIndex: 6 stmts out of 8 (75.0%)
+LCL_CanSystemLeap: 3 stmts out of 4 (75.0%)
+LCL_ReadAbsoluteFrequency: 3 stmts out of 4 (75.0%)
+end_ref_mode: 3 stmts out of 4 (75.0%)
+offset_convert: 3 stmts out of 4 (75.0%)
+NCR_Finalise: 14 stmts out of 19 (73.7%)
+UTI_IPToRefid: 16 stmts out of 22 (72.7%)
+LCL_AddDispersionNotifyHandler: 12 stmts out of 17 (70.6%)
+DNS_Name2IPAddress: 28 stmts out of 42 (66.7%)
+LCL_SetSyncStatus: 2 stmts out of 3 (66.7%)
+TST_Fail: 2 stmts out of 3 (66.7%)
+get_transmit_poll: 6 stmts out of 9 (66.7%)
+parse_double: 6 stmts out of 9 (66.7%)
+parse_int: 6 stmts out of 9 (66.7%)
+send_response: 80 stmts out of 121 (66.1%)
+handle_slew: 8 stmts out of 13 (61.5%)
+NCR_ProcessRxUnknown: 43 stmts out of 73 (58.9%)
+SCH_RemoveTimeout: 10 stmts out of 19 (52.6%)
+CNF_GetBindAcquisitionAddress: 3 stmts out of 6 (50.0%)
+CNF_GetBindAddress: 3 stmts out of 6 (50.0%)
+NCR_ProcessTxUnknown: 12 stmts out of 24 (50.0%)
+source_to_string: 6 stmts out of 12 (50.0%)
+NCR_SetConnectivity: 20 stmts out of 47 (42.6%)
+check_packet_auth: 19 stmts out of 55 (34.5%)
+CLG_LogNTPAccess: 7 stmts out of 21 (33.3%)
+LCL_ReadRawTime: 3 stmts out of 9 (33.3%)
+generate_ntp_auth: 1 stmts out of 3 (33.3%)
+UTI_SockaddrFamilyToString: 4 stmts out of 17 (23.5%)
+handle_slew_0: 3 stmts out of 20 (15.0%)
+get_record: 6 stmts out of 81 (7.4%)
+special_mode_sync: 3 stmts out of 57 (5.3%)
+SCH_AddTimeout: 0 stmts out of 23 (0.0%)
+Transform: 0 stmts out of 265 (0.0%)
+parse_include: 0 stmts out of 19 (0.0%)
diff --git a/chrony/.frama-c/chrony-ntp-core.eva/nonterm.log b/chrony/.frama-c/chrony-ntp-core.eva/nonterm.log
new file mode 100644
index 0000000000000000000000000000000000000000..3b52682b026d24740ea7e79cb46db64da2072480
--- /dev/null
+++ b/chrony/.frama-c/chrony-ntp-core.eva/nonterm.log
@@ -0,0 +1,272 @@
+test/unit/test.c:33:[nonterm] warning: unreachable implicit return
+addrfilt.c:347:[nonterm] warning: non-terminating function call
+stack 1: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:381 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 2: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:386 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 3: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:391 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 4: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:393 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 5: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:399 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 6: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:405 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 7: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: test/unit/ntp_core.c:119 <-
+         process_request :: test/unit/ntp_core.c:422 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 8: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:423 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 9: check_ip_in_node :: addrfilt.c:365 <-
+         ADF_IsAllowed :: ntp_core.c:2105 <-
+         NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:452 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 10: check_ip_in_node :: addrfilt.c:365 <-
+          ADF_IsAllowed :: ntp_core.c:2105 <-
+          NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+          NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+          process_response :: test/unit/ntp_core.c:292 <-
+          process_replay :: test/unit/ntp_core.c:459 <-
+          test_unit :: test/unit/test.c:70 <-
+          main :: fc_stubs.c:37 <-
+          eva_main
+stack 11: check_ip_in_node :: addrfilt.c:365 <-
+          ADF_IsAllowed :: ntp_core.c:2105 <-
+          NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+          NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+          process_response :: test/unit/ntp_core.c:292 <-
+          process_replay :: test/unit/ntp_core.c:461 <-
+          test_unit :: test/unit/test.c:70 <-
+          main :: fc_stubs.c:37 <-
+          eva_main
+stack 12: check_ip_in_node :: addrfilt.c:365 <-
+          ADF_IsAllowed :: ntp_core.c:2105 <-
+          NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+          NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+          process_response :: test/unit/ntp_core.c:473 <-
+          test_unit :: test/unit/test.c:70 <-
+          main :: fc_stubs.c:37 <-
+          eva_main
+stack 13: check_ip_in_node :: addrfilt.c:365 <-
+          ADF_IsAllowed :: ntp_core.c:2105 <-
+          NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+          NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+          process_response :: test/unit/ntp_core.c:292 <-
+          process_replay :: test/unit/ntp_core.c:480 <-
+          test_unit :: test/unit/test.c:70 <-
+          main :: fc_stubs.c:37 <-
+          eva_main
+stack 14: check_ip_in_node :: addrfilt.c:365 <-
+          ADF_IsAllowed :: ntp_core.c:2105 <-
+          NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+          NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+          process_response :: test/unit/ntp_core.c:292 <-
+          process_replay :: test/unit/ntp_core.c:482 <-
+          test_unit :: test/unit/test.c:70 <-
+          main :: fc_stubs.c:37 <-
+          eva_main
+conf.c:273:[nonterm] warning: unreachable implicit return
+conf.c:283:[nonterm] warning: unreachable implicit return
+md5.c:155:[nonterm] warning: non-terminating loop
+stack 1: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: keys.c:115 <-
+         determine_hash_delay :: keys.c:257 <-
+         KEY_Reload :: keys.c:80 <-
+         KEY_Initialise :: test/unit/ntp_core.c:328 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 2: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: ntp_core.c:1090 <-
+         transmit_packet :: ntp_core.c:1228 <-
+         transmit_timeout :: test/unit/ntp_core.c:87 <-
+         send_request :: test/unit/ntp_core.c:377 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 3: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: test/unit/ntp_core.c:190 <-
+         send_response :: test/unit/ntp_core.c:379 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 4: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: ntp_core.c:1090 <-
+         transmit_packet :: ntp_core.c:1228 <-
+         transmit_timeout :: test/unit/ntp_core.c:87 <-
+         send_request :: test/unit/ntp_core.c:421 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 5: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: ntp_core.c:1090 <-
+         transmit_packet :: ntp_core.c:1228 <-
+         transmit_timeout :: test/unit/ntp_core.c:87 <-
+         send_request :: test/unit/ntp_core.c:444 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 6: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: ntp_core.c:1090 <-
+         transmit_packet :: ntp_core.c:1228 <-
+         transmit_timeout :: test/unit/ntp_core.c:87 <-
+         send_request :: test/unit/ntp_core.c:466 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+md5.c:157:[nonterm] warning: non-terminating statement
+stack 1: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: keys.c:115 <-
+         determine_hash_delay :: keys.c:257 <-
+         KEY_Reload :: keys.c:80 <-
+         KEY_Initialise :: test/unit/ntp_core.c:328 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 2: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: ntp_core.c:1090 <-
+         transmit_packet :: ntp_core.c:1228 <-
+         transmit_timeout :: test/unit/ntp_core.c:87 <-
+         send_request :: test/unit/ntp_core.c:377 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 3: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: test/unit/ntp_core.c:190 <-
+         send_response :: test/unit/ntp_core.c:379 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 4: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: ntp_core.c:1090 <-
+         transmit_packet :: ntp_core.c:1228 <-
+         transmit_timeout :: test/unit/ntp_core.c:87 <-
+         send_request :: test/unit/ntp_core.c:421 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 5: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: ntp_core.c:1090 <-
+         transmit_packet :: ntp_core.c:1228 <-
+         transmit_timeout :: test/unit/ntp_core.c:87 <-
+         send_request :: test/unit/ntp_core.c:444 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 6: MD5Update :: hash_intmd5.c:56 <-
+         HSH_Hash :: keys.c:364 <-
+         generate_ntp_auth :: keys.c:395 <-
+         KEY_GenerateAuth :: ntp_core.c:1090 <-
+         transmit_packet :: ntp_core.c:1228 <-
+         transmit_timeout :: test/unit/ntp_core.c:87 <-
+         send_request :: test/unit/ntp_core.c:466 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+keys.c:364:[nonterm] warning: unreachable return
+sched.c:476:[nonterm] warning: non-terminating function call
+stack 1: SCH_RemoveTimeout :: reference.c:409 <-
+         update_fb_drifts :: reference.c:1090 <-
+         REF_SetReference :: sources.c:1094 <-
+         SRC_SelectSource :: ntp_core.c:1507 <-
+         process_sample :: ntp_core.c:1834 <-
+         receive_packet :: ntp_core.c:2070 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:391 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 2: SCH_RemoveTimeout :: reference.c:747 <-
+         set_leap_timeout :: reference.c:812 <-
+         update_leap_status :: reference.c:1147 <-
+         REF_SetUnsynchronised :: sources.c:868 <-
+         SRC_SelectSource :: ntp_core.c:1507 <-
+         process_sample :: ntp_core.c:1834 <-
+         receive_packet :: ntp_core.c:2070 <-
+         NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+         process_response :: test/unit/ntp_core.c:393 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+test/unit/ntp_core.c:179:[nonterm] warning: non-terminating function call
+stack: send_response :: test/unit/ntp_core.c:379 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/ntp_core.c:192:[nonterm] warning: non-terminating function call
+stack: send_response :: test/unit/ntp_core.c:379 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
diff --git a/chrony/.frama-c/chrony-ntp-core.eva/warnings.log b/chrony/.frama-c/chrony-ntp-core.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..e5a277878c3b7f5f5ff8c75f48ecdba5f97dce21
--- /dev/null
+++ b/chrony/.frama-c/chrony-ntp-core.eva/warnings.log
@@ -0,0 +1,17407 @@
+test/unit/test.c:53:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_SetDebugLevel, generating default assigns from the prototype
+test/unit/test.c:68:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Initialise, generating default assigns from the prototype
+memory.c:40:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Message, generating default assigns from the prototype
+cmdparse.c:216:[eva:alarm] warning: out of bounds write. assert \valid(tmp);
+                     (tmp from q++)
+stack: CPS_NormalizeLine :: conf.c:434 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:225:[eva:alarm] warning: out of bounds write. assert \valid(tmp_2);
+                     (tmp_2 from q++)
+stack: CPS_NormalizeLine :: conf.c:434 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:213:[eva:alarm] warning: out of bounds read. assert \valid_read(p);
+stack: CPS_NormalizeLine :: conf.c:434 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:230:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)q, (void *)line);
+stack: CPS_NormalizeLine :: conf.c:434 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:230:[eva:alarm] warning: out of bounds read. assert \valid_read(q + (int)(-1));
+stack: CPS_NormalizeLine :: conf.c:434 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:233:[eva:alarm] warning: out of bounds write. assert \valid(q);
+stack: CPS_NormalizeLine :: conf.c:434 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:244:[eva:alarm] warning: out of bounds read. assert \valid_read(q);
+stack: CPS_SplitWord :: conf.c:442 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:248:[eva:alarm] warning: out of bounds read. assert \valid_read(q);
+stack: CPS_SplitWord :: conf.c:442 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:252:[eva:alarm] warning: out of bounds read. assert \valid_read(q);
+stack: CPS_SplitWord :: conf.c:442 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:170:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i);
+stack: strcasecmp :: conf.c:444 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:170:[eva:alarm] warning: out of bounds read. assert \valid_read(s2 + i);
+stack: strcasecmp :: conf.c:444 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:174:[eva:alarm] warning: out of bounds read. assert \valid_read(s2 + i);
+stack: strcasecmp :: conf.c:444 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:298:[eva:alarm] warning: out of bounds read. assert \valid_read(line);
+stack: get_number_of_args :: conf.c:313 <-
+       check_number_of_args :: conf.c:589 <-
+       parse_string :: conf.c:573 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:300:[eva:alarm] warning: out of bounds read. assert \valid_read(line);
+stack: get_number_of_args :: conf.c:313 <-
+       check_number_of_args :: conf.c:589 <-
+       parse_string :: conf.c:573 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:573 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:573 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:573 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:249:[eva:alarm] warning: out of bounds write. assert \valid(tmp_0);
+                     (tmp_0 from p++)
+stack: CPS_SplitWord :: conf.c:1249 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:255:[eva:alarm] warning: out of bounds write. assert \valid(p);
+stack: CPS_SplitWord :: conf.c:1249 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1259:[eva:alarm] warning: function sscanf_va_51: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_51 :: conf.c:1259 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1263 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1263 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1263 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1265:[eva:alarm] warning: function sscanf_va_52: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_52 :: conf.c:1265 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1274 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1274 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1274 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:569 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1220:[eva:alarm] warning: function sscanf_va_50: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_50 :: conf.c:1220 <-
+       parse_smoothtime :: conf.c:567 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:171:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i);
+stack: strcasecmp :: conf.c:1229 <-
+       parse_smoothtime :: conf.c:567 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:174:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i);
+stack: strcasecmp :: conf.c:1229 <-
+       parse_smoothtime :: conf.c:567 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:175:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i);
+stack: strcasecmp :: conf.c:1229 <-
+       parse_smoothtime :: conf.c:567 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:156:[eva:alarm] warning: function sscanf_va_1: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_1 :: cmdparse.c:156 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:153:[eva:alarm] warning: function sscanf_va_2: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_2 :: cmdparse.c:153 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:150:[eva:alarm] warning: function sscanf_va_3: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_3 :: cmdparse.c:150 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:147:[eva:alarm] warning: function sscanf_va_4: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_4 :: cmdparse.c:147 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:144:[eva:alarm] warning: function sscanf_va_5: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_5 :: cmdparse.c:144 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:141:[eva:alarm] warning: function sscanf_va_6: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_6 :: cmdparse.c:141 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:138:[eva:alarm] warning: function sscanf_va_7: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_7 :: cmdparse.c:138 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:135:[eva:alarm] warning: function sscanf_va_8: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_8 :: cmdparse.c:135 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:132:[eva:alarm] warning: function sscanf_va_9: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_9 :: cmdparse.c:132 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:129:[eva:alarm] warning: function sscanf_va_10: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_10 :: cmdparse.c:129 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:126:[eva:alarm] warning: function sscanf_va_11: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_11 :: cmdparse.c:126 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:123:[eva:alarm] warning: function sscanf_va_12: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_12 :: cmdparse.c:123 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:120:[eva:alarm] warning: function sscanf_va_13: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_13 :: cmdparse.c:120 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:117:[eva:alarm] warning: function sscanf_va_14: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_14 :: cmdparse.c:117 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:114:[eva:alarm] warning: function sscanf_va_15: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_15 :: cmdparse.c:114 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:111:[eva:alarm] warning: function sscanf_va_16: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_16 :: cmdparse.c:111 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:108:[eva:alarm] warning: function sscanf_va_17: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_17 :: cmdparse.c:108 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:104:[eva:alarm] warning: function sscanf_va_18: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_18 :: cmdparse.c:104 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:82:[eva:alarm] warning: out of bounds read. assert \valid_read(line);
+stack: CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:645:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&source.params.name);
+stack: parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_22 :: conf.c:601 <-
+       parse_int :: conf.c:563 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:557 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:557 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:557 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:555 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:555 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:555 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:553 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:551 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:723 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:723 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:723 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:727 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:727 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:727 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:787:[eva:alarm] warning: function sscanf_va_25: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_25 :: conf.c:787 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:780:[eva:alarm] warning: function sscanf_va_26: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_26 :: conf.c:780 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:777:[eva:alarm] warning: function sscanf_va_27: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_27 :: conf.c:777 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:774:[eva:alarm] warning: function sscanf_va_28: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_28 :: conf.c:774 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:768:[eva:alarm] warning: function sscanf_va_29: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_29 :: conf.c:768 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:765:[eva:alarm] warning: function sscanf_va_30: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_30 :: conf.c:765 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:762:[eva:alarm] warning: function sscanf_va_31: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_31 :: conf.c:762 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:759:[eva:alarm] warning: function sscanf_va_32: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_32 :: conf.c:759 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:756:[eva:alarm] warning: function sscanf_va_33: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_33 :: conf.c:756 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:753:[eva:alarm] warning: function sscanf_va_34: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_34 :: conf.c:753 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:749:[eva:alarm] warning: function sscanf_va_35: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_35 :: conf.c:749 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:745:[eva:alarm] warning: function sscanf_va_36: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_36 :: conf.c:745 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:741:[eva:alarm] warning: function sscanf_va_37: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_37 :: conf.c:741 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:737:[eva:alarm] warning: function sscanf_va_38: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_38 :: conf.c:737 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:739:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized((unsigned char *)ref);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:739:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[1]);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:739:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[2]);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:739:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[3]);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:733:[eva:alarm] warning: function sscanf_va_39: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_39 :: conf.c:733 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:735:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized((unsigned char *)ref);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:735:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[1]);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:735:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[2]);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:735:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ref[3]);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:729:[eva:alarm] warning: out of bounds read. assert \valid_read(cmd);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:662:[eva:alarm] warning: function sscanf_va_24: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_24 :: conf.c:662 <-
+       parse_ratelimit :: conf.c:546 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:659:[eva:alarm] warning: out of bounds read. assert \valid_read(line);
+stack: parse_ratelimit :: conf.c:546 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_22 :: conf.c:601 <-
+       parse_int :: conf.c:544 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:156:[eva:alarm] warning: function sscanf_va_1: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_1 :: cmdparse.c:156 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:153:[eva:alarm] warning: function sscanf_va_2: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_2 :: cmdparse.c:153 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:150:[eva:alarm] warning: function sscanf_va_3: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_3 :: cmdparse.c:150 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:147:[eva:alarm] warning: function sscanf_va_4: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_4 :: cmdparse.c:147 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:144:[eva:alarm] warning: function sscanf_va_5: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_5 :: cmdparse.c:144 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:141:[eva:alarm] warning: function sscanf_va_6: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_6 :: cmdparse.c:141 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:138:[eva:alarm] warning: function sscanf_va_7: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_7 :: cmdparse.c:138 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:135:[eva:alarm] warning: function sscanf_va_8: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_8 :: cmdparse.c:135 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:132:[eva:alarm] warning: function sscanf_va_9: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_9 :: cmdparse.c:132 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:129:[eva:alarm] warning: function sscanf_va_10: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_10 :: cmdparse.c:129 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:126:[eva:alarm] warning: function sscanf_va_11: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_11 :: cmdparse.c:126 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:123:[eva:alarm] warning: function sscanf_va_12: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_12 :: cmdparse.c:123 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:120:[eva:alarm] warning: function sscanf_va_13: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_13 :: cmdparse.c:120 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:117:[eva:alarm] warning: function sscanf_va_14: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_14 :: cmdparse.c:117 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:114:[eva:alarm] warning: function sscanf_va_15: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_15 :: cmdparse.c:114 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:111:[eva:alarm] warning: function sscanf_va_16: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_16 :: cmdparse.c:111 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:108:[eva:alarm] warning: function sscanf_va_17: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_17 :: cmdparse.c:108 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:104:[eva:alarm] warning: function sscanf_va_18: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_18 :: cmdparse.c:104 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:540 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:540 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:540 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:156:[eva:alarm] warning: function sscanf_va_1: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_1 :: cmdparse.c:156 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:153:[eva:alarm] warning: function sscanf_va_2: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_2 :: cmdparse.c:153 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:150:[eva:alarm] warning: function sscanf_va_3: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_3 :: cmdparse.c:150 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:147:[eva:alarm] warning: function sscanf_va_4: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_4 :: cmdparse.c:147 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:144:[eva:alarm] warning: function sscanf_va_5: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_5 :: cmdparse.c:144 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:141:[eva:alarm] warning: function sscanf_va_6: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_6 :: cmdparse.c:141 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:138:[eva:alarm] warning: function sscanf_va_7: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_7 :: cmdparse.c:138 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:135:[eva:alarm] warning: function sscanf_va_8: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_8 :: cmdparse.c:135 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:132:[eva:alarm] warning: function sscanf_va_9: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_9 :: cmdparse.c:132 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:129:[eva:alarm] warning: function sscanf_va_10: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_10 :: cmdparse.c:129 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:126:[eva:alarm] warning: function sscanf_va_11: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_11 :: cmdparse.c:126 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:123:[eva:alarm] warning: function sscanf_va_12: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_12 :: cmdparse.c:123 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:120:[eva:alarm] warning: function sscanf_va_13: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_13 :: cmdparse.c:120 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:117:[eva:alarm] warning: function sscanf_va_14: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_14 :: cmdparse.c:117 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:114:[eva:alarm] warning: function sscanf_va_15: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_15 :: cmdparse.c:114 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:111:[eva:alarm] warning: function sscanf_va_16: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_16 :: cmdparse.c:111 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:108:[eva:alarm] warning: function sscanf_va_17: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_17 :: cmdparse.c:108 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:104:[eva:alarm] warning: function sscanf_va_18: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_18 :: cmdparse.c:104 <-
+       CPS_ParseNTPSourceAdd :: conf.c:640 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:536 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:536 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:536 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_22 :: conf.c:601 <-
+       parse_int :: conf.c:532 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_22 :: conf.c:601 <-
+       parse_int :: conf.c:530 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:528 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:526 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_22 :: conf.c:601 <-
+       parse_int :: conf.c:524 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:522 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:520 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:518 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:516 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:976:[eva:alarm] warning: function sscanf_va_44: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_44 :: conf.c:976 <-
+       parse_maxchange :: conf.c:514 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:959:[eva:alarm] warning: function sscanf_va_43: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_43 :: conf.c:959 <-
+       parse_makestep :: conf.c:510 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:992:[eva:alarm] warning: function sscanf_va_45: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_45 :: conf.c:992 <-
+       parse_mailonchange :: conf.c:508 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:993 <-
+       parse_mailonchange :: conf.c:508 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:993 <-
+       parse_mailonchange :: conf.c:508 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:993 <-
+       parse_mailonchange :: conf.c:508 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:506 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:506 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:506 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:504 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_22 :: conf.c:601 <-
+       parse_int :: conf.c:502 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:130:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i);
+stack: strcmp :: conf.c:845 <-
+       parse_log :: conf.c:500 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:130:[eva:alarm] warning: out of bounds read. assert \valid_read(s2 + i);
+stack: strcmp :: conf.c:845 <-
+       parse_log :: conf.c:500 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:133:[eva:alarm] warning: out of bounds read. assert \valid_read((unsigned char *)s1 + i);
+stack: strcmp :: conf.c:845 <-
+       parse_log :: conf.c:500 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:192:[eva:alarm] warning: function sscanf_va_19: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_19 :: cmdparse.c:192 <-
+       CPS_ParseLocal :: conf.c:875 <-
+       parse_local :: conf.c:496 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:185:[eva:alarm] warning: function sscanf_va_20: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_20 :: cmdparse.c:185 <-
+       CPS_ParseLocal :: conf.c:875 <-
+       parse_local :: conf.c:496 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:180:[eva:alarm] warning: out of bounds read. assert \valid_read(line);
+stack: CPS_ParseLocal :: conf.c:875 <-
+       parse_local :: conf.c:496 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:494 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:494 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:494 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:490 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:490 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:490 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:896:[eva:alarm] warning: function sscanf_va_40: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_40 :: conf.c:896 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/netdb.c:113:[eva:alarm] warning: out of bounds read. assert \valid_read(cp);
+stack: gethostbyname :: nameserv.c:121 <-
+       DNS_Name2IPAddress :: conf.c:905 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/netdb.c:116:[eva:alarm] warning: out of bounds read. assert \valid_read(cp);
+stack: gethostbyname :: nameserv.c:121 <-
+       DNS_Name2IPAddress :: conf.c:905 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/netdb.c:119:[eva:alarm] warning: function inet_addr: precondition 'valid_arg' got status unknown.
+stack: inet_addr :: FRAMAC_SHARE/libc/netdb.c:119 <-
+       gethostbyname :: nameserv.c:121 <-
+       DNS_Name2IPAddress :: conf.c:905 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:217:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i);
+stack: strncpy :: FRAMAC_SHARE/libc/netdb.c:123 <-
+       gethostbyname :: nameserv.c:121 <-
+       DNS_Name2IPAddress :: conf.c:905 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:218:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i);
+stack: strncpy :: FRAMAC_SHARE/libc/netdb.c:123 <-
+       gethostbyname :: nameserv.c:121 <-
+       DNS_Name2IPAddress :: conf.c:905 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/netdb.c:145:[eva:alarm] warning: function inet_addr: precondition 'valid_arg' got status unknown.
+stack: inet_addr :: FRAMAC_SHARE/libc/netdb.c:145 <-
+       gethostbyname :: nameserv.c:121 <-
+       DNS_Name2IPAddress :: conf.c:905 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+nameserv.c:127:[eva:alarm] warning: out of bounds read. assert \valid_read(host->h_addr_list + 0);
+stack: DNS_Name2IPAddress :: conf.c:905 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_3' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:906 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:906 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: array.c:116 <-
+       ARR_AppendElement :: conf.c:906 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:906 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1295 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1295 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1295 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1327:[eva:alarm] warning: function sscanf_va_53: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_53 :: conf.c:1327 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:170:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i);
+stack: strcasecmp :: conf.c:1329 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:171:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i);
+stack: strcasecmp :: conf.c:1329 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:174:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i);
+stack: strcasecmp :: conf.c:1329 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:175:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i);
+stack: strcasecmp :: conf.c:1329 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1324:[eva:alarm] warning: function sscanf_va_54: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_54 :: conf.c:1324 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1321:[eva:alarm] warning: function sscanf_va_55: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_55 :: conf.c:1321 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1318:[eva:alarm] warning: function sscanf_va_56: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_56 :: conf.c:1318 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1315:[eva:alarm] warning: function sscanf_va_57: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_57 :: conf.c:1315 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1312:[eva:alarm] warning: function sscanf_va_58: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_58 :: conf.c:1312 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1309:[eva:alarm] warning: function sscanf_va_59: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_59 :: conf.c:1309 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1305:[eva:alarm] warning: out of bounds read. assert \valid_read(p);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:482 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:482 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:482 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:948:[eva:alarm] warning: function sscanf_va_42: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_42 :: conf.c:948 <-
+       parse_fallbackdrift :: conf.c:480 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:476 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:476 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:476 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:474 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:474 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:474 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:139:[eva:alarm] warning: out of bounds read. assert \valid_read(s1 + i);
+stack: strncmp :: conf.c:1013 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:140:[eva:alarm] warning: out of bounds read. assert \valid_read((unsigned char *)s1 + i);
+stack: strncmp :: conf.c:1013 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1027:[eva:alarm] warning: function strchr: precondition 'valid_string_s' got status unknown.
+stack: strchr :: conf.c:1027 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_63 :: util.c:345 <-
+       UTI_StringToIP :: conf.c:1032 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1033:[eva:alarm] warning: function sscanf_va_46: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_46 :: conf.c:1033 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1036:[eva:alarm] warning: assertion got status unknown.
+conf.c:1043:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip_addr.family);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1050:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1051:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1052:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&c);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1053:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&d);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1079:[eva:alarm] warning: function sscanf_va_47: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_47 :: conf.c:1079 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1093:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip_addr.family);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:470 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:614:[eva:alarm] warning: function sscanf_va_23: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_23 :: conf.c:614 <-
+       parse_double :: conf.c:468 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:662:[eva:alarm] warning: function sscanf_va_24: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_24 :: conf.c:662 <-
+       parse_ratelimit :: conf.c:465 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_22 :: conf.c:601 <-
+       parse_int :: conf.c:463 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1027:[eva:alarm] warning: function strchr: precondition 'valid_string_s' got status unknown.
+stack: strchr :: conf.c:1027 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1033:[eva:alarm] warning: function sscanf_va_46: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_46 :: conf.c:1033 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1079:[eva:alarm] warning: function sscanf_va_47: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_47 :: conf.c:1079 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1027:[eva:alarm] warning: function strchr: precondition 'valid_string_s' got status unknown.
+stack: strchr :: conf.c:1027 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1033:[eva:alarm] warning: function sscanf_va_46: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_46 :: conf.c:1033 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1079:[eva:alarm] warning: function sscanf_va_47: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_47 :: conf.c:1079 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:937:[eva:alarm] warning: function sscanf_va_41: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_41 :: conf.c:937 <-
+       parse_clientloglimit :: conf.c:457 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1180:[eva:alarm] warning: function sscanf_va_48: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_48 :: conf.c:1180 <-
+       parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_63 :: util.c:345 <-
+       UTI_StringToIP :: conf.c:1188 <-
+       parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1197:[eva:alarm] warning: function sscanf_va_49: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_49 :: conf.c:1197 <-
+       parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:292:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:292 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:1151 <-
+       parse_bindcmdaddress :: conf.c:453 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:1151 <-
+       parse_bindcmdaddress :: conf.c:453 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:298:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: FRAMAC_SHARE/libc/string.c:298 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:1151 <-
+       parse_bindcmdaddress :: conf.c:453 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:130:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i);
+stack: strcmp :: conf.c:1153 <-
+       parse_bindcmdaddress :: conf.c:453 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:133:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized((unsigned char *)s1 + i);
+stack: strcmp :: conf.c:1153 <-
+       parse_bindcmdaddress :: conf.c:453 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_63 :: util.c:345 <-
+       UTI_StringToIP :: conf.c:1155 <-
+       parse_bindcmdaddress :: conf.c:453 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1156:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip.family);
+stack: parse_bindcmdaddress :: conf.c:453 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_63 :: util.c:345 <-
+       UTI_StringToIP :: conf.c:1130 <-
+       parse_bindaddress :: conf.c:451 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1131:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip.family);
+stack: parse_bindaddress :: conf.c:451 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:345:[eva:alarm] warning: function sscanf_va_63: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_63 :: util.c:345 <-
+       UTI_StringToIP :: conf.c:1112 <-
+       parse_bindacqaddress :: conf.c:449 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1113:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip.family);
+stack: parse_bindacqaddress :: conf.c:449 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1027:[eva:alarm] warning: function strchr: precondition 'valid_string_s' got status unknown.
+stack: strchr :: conf.c:1027 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1033:[eva:alarm] warning: function sscanf_va_46: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_46 :: conf.c:1033 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1079:[eva:alarm] warning: function sscanf_va_47: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_47 :: conf.c:1079 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:601:[eva:alarm] warning: function sscanf_va_22: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_22 :: conf.c:601 <-
+       parse_int :: conf.c:445 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_6' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:573 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_7' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1263 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_8' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1274 <-
+       parse_tempcomp :: conf.c:571 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_9' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: array.c:116 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_10' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:557 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_11' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:555 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_12' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:723 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_13' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:727 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_0' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:812 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: conf.c:812 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:813:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->driver_name);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:814:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->driver_parameter);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:815:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->driver_poll);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:816:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->poll);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:817:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->filter_length);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:818:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->pps_forced);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:819:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->pps_rate);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:820:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->min_samples);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:821:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->max_samples);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:822:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->sel_options);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:823:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->stratum);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:824:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->tai);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:825:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->offset);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:826:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->delay);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:827:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->precision);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:828:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->max_dispersion);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:829:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->pulse_width);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:830:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->ref_id);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:831:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->max_lock_age);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:832:[eva:alarm] warning: out of bounds write. assert \valid(&refclock->lock_ref_id);
+stack: parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_14' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_1' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: array.c:116 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_15' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:540 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_16' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:645 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_2' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: array.c:116 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_17' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:536 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_18' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:993 <-
+       parse_mailonchange :: conf.c:508 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_19' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:506 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_20' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:494 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_21' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:490 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_4' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1294 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: conf.c:1294 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_22' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:1295 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1295:[eva:alarm] warning: out of bounds write. assert \valid(&iface->name);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1296:[eva:alarm] warning: out of bounds write. assert \valid(&iface->minpoll);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1297:[eva:alarm] warning: out of bounds write. assert \valid(&iface->min_samples);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1298:[eva:alarm] warning: out of bounds write. assert \valid(&iface->max_samples);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1299:[eva:alarm] warning: out of bounds write. assert \valid(&iface->nocrossts);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1300:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rxfilter);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1301:[eva:alarm] warning: out of bounds write. assert \valid(&iface->precision);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1302:[eva:alarm] warning: out of bounds write. assert \valid(&iface->tx_comp);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1303:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rx_comp);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1339:[eva:alarm] warning: out of bounds write. assert \valid(&iface->nocrossts);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1334:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rxfilter);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1332:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rxfilter);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1330:[eva:alarm] warning: out of bounds write. assert \valid(&iface->rxfilter);
+stack: parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1324:[eva:alarm] warning: function sscanf_va_54: precondition \valid(param0) got status unknown.
+stack: sscanf_va_54 :: conf.c:1324 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1321:[eva:alarm] warning: function sscanf_va_55: precondition \valid(param0) got status unknown.
+stack: sscanf_va_55 :: conf.c:1321 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1318:[eva:alarm] warning: function sscanf_va_56: precondition \valid(param0) got status unknown.
+stack: sscanf_va_56 :: conf.c:1318 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1315:[eva:alarm] warning: function sscanf_va_57: precondition \valid(param0) got status unknown.
+stack: sscanf_va_57 :: conf.c:1315 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1312:[eva:alarm] warning: function sscanf_va_58: precondition \valid(param0) got status unknown.
+stack: sscanf_va_58 :: conf.c:1312 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1309:[eva:alarm] warning: function sscanf_va_59: precondition \valid(param0) got status unknown.
+stack: sscanf_va_59 :: conf.c:1309 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_23' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:482 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_24' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:476 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_25' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:474 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_5' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1021:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->allow);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1022:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->all);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1023:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.family);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1024:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_6' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1037 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1038:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->allow);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1039:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->all);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1042:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1046:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1048:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.family);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1057:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.addr.in4);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1058:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1061:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.addr.in4);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1062:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1065:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.addr.in4);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1066:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1069:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip.addr.in4);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1070:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1081:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_7' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1089 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1090:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->allow);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1091:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->all);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1092:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->ip);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1096:[eva:alarm] warning: out of bounds write. assert \valid(&new_node->subnet_bits);
+stack: parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_8' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_9' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1037 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_10' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1089 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_11' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_12' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1037 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_13' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1089 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_14' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1206 <-
+       parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: conf.c:1206 <-
+       parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1207:[eva:alarm] warning: out of bounds write. assert \valid(&destination->addr);
+stack: parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1208:[eva:alarm] warning: out of bounds write. assert \valid(&destination->port);
+stack: parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1209:[eva:alarm] warning: out of bounds write. assert \valid(&destination->interval);
+stack: parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:293:[eva:malloc:weak] warning: marking variable `__malloc_strdup_l293_26' as weak
+stack: malloc :: FRAMAC_SHARE/libc/string.c:293 <-
+       strdup :: memory.c:88 <-
+       Strdup :: conf.c:591 <-
+       parse_string :: conf.c:1151 <-
+       parse_bindcmdaddress :: conf.c:453 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_15' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_16' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1037 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_17' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1089 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:565 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:812 <-
+       parse_refclock :: conf.c:549 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:542 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: conf.c:646 <-
+       parse_source :: conf.c:538 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_18' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:122 <-
+       ARR_SetSize :: conf.c:893 <-
+       parse_initstepslew :: conf.c:488 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1294 <-
+       parse_hwtimestamp :: conf.c:484 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1037 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1089 <-
+       parse_allow_deny :: conf.c:472 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1037 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1089 <-
+       parse_allow_deny :: conf.c:461 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1037 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1089 <-
+       parse_allow_deny :: conf.c:459 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1206 <-
+       parse_broadcast :: conf.c:455 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1020 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1037 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: conf.c:1089 <-
+       parse_allow_deny :: conf.c:447 <-
+       CNF_ParseLine :: test/unit/ntp_core.c:317 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:126:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts.tv_sec - old_ts.tv_sec;
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:126:[eva:alarm] warning: signed overflow. assert ts.tv_sec - old_ts.tv_sec ≤ 9223372036854775807;
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:126:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts.tv_nsec - old_ts.tv_nsec;
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:126:[eva:alarm] warning: signed overflow. assert ts.tv_nsec - old_ts.tv_nsec ≤ 9223372036854775807;
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:126:[eva:alarm] warning: signed overflow.
+assert
+-9223372036854775808 ≤ 1000000000 * (long)(ts.tv_sec - old_ts.tv_sec);
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:126:[eva:alarm] warning: signed overflow.
+assert
+1000000000 * (long)(ts.tv_sec - old_ts.tv_sec) ≤ 9223372036854775807;
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:126:[eva:alarm] warning: signed overflow.
+assert
+-9223372036854775808 ≤
+(long)(1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)) +
+(long)(ts.tv_nsec - old_ts.tv_nsec);
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:126:[eva:alarm] warning: signed overflow.
+assert
+(long)(1000000000 * (long)(ts.tv_sec - old_ts.tv_sec)) +
+(long)(ts.tv_nsec - old_ts.tv_nsec) ≤ 9223372036854775807;
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:143:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ precision_log - 1;
+stack: calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:147:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: local.c:147 <-
+       calculate_sys_precision :: local.c:173 <-
+       LCL_Initialise :: test/unit/ntp_core.c:319 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: conf.c:2041 <-
+       CNF_GetHwTsInterface :: ntp_io.c:373 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_io.c:161:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&bind_address.addr.in4);
+stack: prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_21' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: sched.c:170 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: sched.c:170 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:171:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->handler);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:172:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->arg);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:173:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->events);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: sched.c:170 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: sched.c:176 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ptr->handler);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:181:[eva:alarm] warning: out of bounds read. assert \valid_read(&ptr->handler);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:183:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->handler);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:184:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->arg);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:185:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->events);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:406 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: sched.c:170 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:409 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: sched.c:170 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:409 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_22' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: sched.c:170 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:409 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: sched.c:176 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:409 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:181:[eva:alarm] warning: pointer comparison.
+assert \pointer_comparable((void (*)())0, (void (*)())ptr->handler);
+stack: SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:409 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:181:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sched.c:181 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:409 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_23' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: sched.c:170 <-
+       SCH_AddFileHandler :: ntp_io.c:273 <-
+       prepare_socket :: ntp_io.c:409 <-
+       NIO_Initialise :: test/unit/ntp_core.c:323 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:364:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:364 <-
+       do_time_checks :: ntp_core.c:392 <-
+       NCR_Initialise :: test/unit/ntp_core.c:324 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:394:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_FileOpen, generating default assigns from the prototype
+reference.c:202:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:202 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:193:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert
+(double)start->tv_nsec +
+\mul_double((double)1.0e9, \sub_double(increment, (double)int_part)) <
+9223372036854775808;
+stack: UTI_AddDoubleToTimespec :: local.c:391 <-
+       LCL_CookTime :: local.c:472 <-
+       LCL_SetAbsoluteFrequency :: reference.c:212 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:98:[eva:alarm] warning: signed overflow.
+assert
+-9223372036854775808 ≤ ts->tv_sec + (long)(ts->tv_nsec / 1000000000);
+stack: UTI_NormaliseTimespec :: util.c:194 <-
+       UTI_AddDoubleToTimespec :: local.c:391 <-
+       LCL_CookTime :: local.c:472 <-
+       LCL_SetAbsoluteFrequency :: reference.c:212 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:98:[eva:alarm] warning: signed overflow.
+assert ts->tv_sec + (long)(ts->tv_nsec / 1000000000) ≤ 9223372036854775807;
+stack: UTI_NormaliseTimespec :: util.c:194 <-
+       UTI_AddDoubleToTimespec :: local.c:391 <-
+       LCL_CookTime :: local.c:472 <-
+       LCL_SetAbsoluteFrequency :: reference.c:212 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:103:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts->tv_sec - 1;
+stack: UTI_NormaliseTimespec :: util.c:194 <-
+       UTI_AddDoubleToTimespec :: local.c:391 <-
+       LCL_CookTime :: local.c:472 <-
+       LCL_SetAbsoluteFrequency :: reference.c:212 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:181:[eva:alarm] warning: signed overflow. assert a->tv_nsec - b->tv_nsec ≤ 9223372036854775807;
+stack: UTI_DiffTimespecsToDouble :: util.c:632 <-
+       UTI_AdjustTimespec :: sched.c:602 <-
+       handle_slew_0 :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:475 <-
+       LCL_SetAbsoluteFrequency :: reference.c:212 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:232:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:232 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:207:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i);
+stack: strcpy :: reference.c:651 <-
+       get_tz_leap :: reference.c:248 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:208:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i);
+stack: strcpy :: reference.c:651 <-
+       get_tz_leap :: reference.c:248 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:659:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ t - when;
+stack: get_tz_leap :: reference.c:248 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:265:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ fb_drift_max_0 - fb_drift_min_0;
+stack: REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:266:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ fb_drift_max_0 - fb_drift_min_0;
+stack: REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:266:[eva:alarm] warning: function memset: precondition 'valid_s' got status unknown.
+stack: memset :: reference.c:266 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:466:[eva:alarm] warning: invalid RHS operand for shift. assert 0 ≤ i < 32;
+stack: schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:466:[eva:alarm] warning: signed overflow. assert 1 << i ≤ 2147483647;
+stack: schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:468:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(fb_drifts + (int)(i - fb_drift_min_0))->secs);
+stack: schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:468:[eva:alarm] warning: out of bounds read.
+assert \valid_read(&(fb_drifts + (int)(i - fb_drift_min_0))->secs);
+stack: schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:468:[eva:alarm] warning: signed overflow. assert i - fb_drift_min_0 ≤ 2147483647;
+stack: schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:191:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert increment < 9223372036854775808;
+stack: UTI_AddDoubleToTimespec :: reference.c:485 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:192:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ start->tv_sec + int_part;
+stack: UTI_AddDoubleToTimespec :: reference.c:485 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:192:[eva:alarm] warning: signed overflow. assert start->tv_sec + int_part ≤ 9223372036854775807;
+stack: UTI_AddDoubleToTimespec :: reference.c:485 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:193:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert
+-9223372036854775809 <
+(double)start->tv_nsec +
+\mul_double((double)1.0e9, \sub_double(increment, (double)int_part));
+stack: UTI_AddDoubleToTimespec :: reference.c:485 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: reference.c:278 <-
+       REF_Initialise :: test/unit/ntp_core.c:325 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:856:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_FileWrite, generating default assigns from the prototype
+test/unit/test.c:81:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_OpenFileLog, generating default assigns from the prototype
+keys.c:204:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: keys.c:204 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:213:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(p);
+stack: CPS_NormalizeLine :: keys.c:213 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:214:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(p);
+stack: CPS_NormalizeLine :: keys.c:213 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:222:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(p);
+stack: CPS_NormalizeLine :: keys.c:213 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:225:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(p);
+stack: CPS_NormalizeLine :: keys.c:213 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:230:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q + (int)(-1));
+stack: CPS_NormalizeLine :: keys.c:213 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:214:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized((char *)line);
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:244:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q);
+stack: CPS_SplitWord :: cmdparse.c:269 <-
+       CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:244:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q);
+stack: CPS_SplitWord :: cmdparse.c:269 <-
+       CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:248:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q);
+stack: CPS_SplitWord :: cmdparse.c:269 <-
+       CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:248:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q);
+stack: CPS_SplitWord :: cmdparse.c:269 <-
+       CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:249:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(tmp_1);
+(tmp_1 from q++)
+stack: CPS_SplitWord :: cmdparse.c:269 <-
+       CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:252:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q);
+stack: CPS_SplitWord :: cmdparse.c:269 <-
+       CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:252:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(q);
+stack: CPS_SplitWord :: cmdparse.c:269 <-
+       CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:274:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s2);
+stack: CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:274:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s4);
+stack: CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:277:[eva:alarm] warning: function sscanf_va_21: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_21 :: cmdparse.c:277 <-
+       CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:280:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s3);
+stack: CPS_ParseKey :: keys.c:217 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:222:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&hashname);
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:224:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key_id);
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:228:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&keyval);
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:139:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: keys.c:139 <-
+       decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:139:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(s1 + i);
+stack: strncmp :: keys.c:142 <-
+       decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:140:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized((unsigned char *)s1 + i);
+stack: strncmp :: keys.c:142 <-
+       decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:150:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(key + j);
+stack: decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:150:[eva:alarm] warning: out of bounds read. assert \valid_read(key + j);
+stack: decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:150:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(key + (int)(j + 1));
+stack: decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:150:[eva:alarm] warning: out of bounds read. assert \valid_read(key + (int)(j + 1));
+stack: decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:153:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)p, (void *)(&buf[2]));
+stack: decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:151:[eva:alarm] warning: out of bounds write. assert \valid(key + i);
+stack: decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:143:[eva:alarm] warning: function memmove: precondition 'valid_dest' got status unknown.
+stack: memmove :: keys.c:143 <-
+       decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:143:[eva:alarm] warning: function memmove: precondition 'valid_src' got status unknown.
+stack: memmove :: keys.c:143 <-
+       decode_password :: keys.c:228 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:230:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key_id);
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:234:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key_id);
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:236:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: keys.c:236 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:236:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: keys.c:236 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_KEY_Reload_l235' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: keys.c:235 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:50:[eva:malloc:weak] warning: marking variable `__realloc_realloc_array_l80_24' as weak
+stack: realloc :: memory.c:50 <-
+       Realloc :: memory.c:80 <-
+       Realloc2 :: array.c:80 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: keys.c:237 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: array.c:88 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: keys.c:237 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:116:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: array.c:116 <-
+       ARR_AppendElement :: keys.c:237 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:69:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:69 <-
+       realloc_array :: array.c:87 <-
+       ARR_GetNewElement :: array.c:115 <-
+       ARR_AppendElement :: keys.c:237 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:103:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:103 <-
+       ARR_GetElements :: keys.c:245 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'valid_dest' got status unknown.
+stack: memcpy :: fc_stubs.c:13 <-
+       qsort :: keys.c:245 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'valid_src' got status unknown.
+stack: memcpy :: fc_stubs.c:13 <-
+       qsort :: keys.c:245 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown.
+stack: memcpy :: fc_stubs.c:13 <-
+       qsort :: keys.c:245 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:249:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&tmp_5->id);
+(tmp_5 from get_key(i - (unsigned int)1))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:249:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&tmp_6->id);
+(tmp_6 from get_key(i))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:249:[eva:alarm] warning: out of bounds read.
+assert \valid_read(&tmp_5->id);
+(tmp_5 from get_key(i - (unsigned int)1))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:249:[eva:alarm] warning: out of bounds read. assert \valid_read(&tmp_6->id);
+                    (tmp_6 from get_key(i))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:250:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&tmp_4->id);
+(tmp_4 from get_key(i - (unsigned int)1))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:250:[eva:alarm] warning: out of bounds read.
+assert \valid_read(&tmp_4->id);
+(tmp_4 from get_key(i - (unsigned int)1))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:257:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&tmp_9->id);
+(tmp_9 from get_key(i))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:257:[eva:alarm] warning: out of bounds read. assert \valid_read(&tmp_9->id);
+                    (tmp_9 from get_key(i))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:272:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)where);
+stack: lookup_key :: keys.c:290 <-
+       get_key_by_id :: keys.c:390 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:275:[eva:alarm] warning: pointer subtraction. assert \base_addr(where) ≡ \base_addr(keys_ptr);
+stack: lookup_key :: keys.c:290 <-
+       get_key_by_id :: keys.c:390 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:392:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)key);
+stack: KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:395:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->len);
+stack: KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:395:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->val);
+stack: KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:395:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->hash_id);
+stack: KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:395:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->len);
+stack: KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:395:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->val);
+stack: KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:395:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->hash_id);
+stack: KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(tmp_0);
+(tmp_0 from inBuf++)
+stack: MD5Update :: hash_intmd5.c:54 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[eva:alarm] warning: out of bounds read. assert \valid_read(tmp_0);
+                    (tmp_0 from inBuf++)
+stack: MD5Update :: hash_intmd5.c:54 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ mdi + 1;
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[eva:alarm] warning: signed overflow. assert mdi + 1 ≤ 2147483647;
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ tmp;
+                               (tmp from mdi++)
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[eva:alarm] warning: accessing out of bounds index. assert tmp < 64;
+                               (tmp from mdi++)
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[eva:alarm] warning: out of bounds write. assert \valid(&mdContext->in[tmp]);
+                     (tmp from mdi++)
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: keys.c:115 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:181:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ a->tv_nsec - b->tv_nsec;
+stack: UTI_DiffTimespecsToDouble :: keys.c:119 <-
+       determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:126:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert -2147483649 < 1.0625e9 * min_diff;
+stack: determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:126:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert 1.0625e9 * min_diff < 2147483648;
+stack: determine_hash_delay :: keys.c:257 <-
+       KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:257:[eva:alarm] warning: out of bounds write.
+assert \valid(&tmp_8->auth_delay);
+(tmp_8 from get_key(i))
+stack: KEY_Reload :: keys.c:80 <-
+       KEY_Initialise :: test/unit/ntp_core.c:328 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: conf.c:1794 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1795:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->all);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1795:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->allow);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1795:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->subnet_bits);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1795:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->all);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:242:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ip_addr->family);
+stack: set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:82:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(addr + off);
+stack: get_subnet :: addrfilt.c:177 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:178:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:135:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:141:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:142:[eva:alarm] warning: out of bounds write. assert \valid(&child_node->state);
+stack: open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:178:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:112:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: close_node :: addrfilt.c:187 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:112:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended);
+stack: close_node :: addrfilt.c:187 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:115:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: close_node :: addrfilt.c:187 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:119:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: close_node :: addrfilt.c:187 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:189:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:198:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_0' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:199 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:201:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:198:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:210:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: addrfilt.c:210 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:212:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:212:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:218:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:222:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&this_node);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:218:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:218:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:112:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: close_node :: addrfilt.c:220 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:115:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: close_node :: addrfilt.c:220 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:119:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: close_node :: addrfilt.c:220 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_2' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:267 <-
+       ADF_Allow :: ntp_core.c:2520 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:189:[eva:alarm] warning: out of bounds write. assert \valid(&node->state);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:267 <-
+       ADF_Allow :: ntp_core.c:2520 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_3' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:199 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:267 <-
+       ADF_Allow :: ntp_core.c:2520 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:210:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: addrfilt.c:210 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:267 <-
+       ADF_Allow :: ntp_core.c:2520 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:222:[eva:alarm] warning: out of bounds write. assert \valid(&this_node->state);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:267 <-
+       ADF_Allow :: ntp_core.c:2520 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_5' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:298 <-
+       ADF_DenyAll :: ntp_core.c:2524 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_6' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:199 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:298 <-
+       ADF_DenyAll :: ntp_core.c:2524 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:210:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: addrfilt.c:210 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:298 <-
+       ADF_DenyAll :: ntp_core.c:2524 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_8' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:288 <-
+       ADF_Deny :: ntp_core.c:2526 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_9' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:199 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:288 <-
+       ADF_Deny :: ntp_core.c:2526 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:210:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: addrfilt.c:210 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:288 <-
+       ADF_Deny :: ntp_core.c:2526 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:389:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: is_any_allowed :: addrfilt.c:414 <-
+       ADF_IsAnyAllowed :: ntp_core.c:2538 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:291:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&addr->family);
+stack: UTI_IPToString :: conf.c:1797 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:296:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&addr->addr.in4);
+stack: UTI_IPToString :: conf.c:1797 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1797:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->subnet_bits);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1795:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->allow);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1795:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->subnet_bits);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:242:[eva:alarm] warning: out of bounds read. assert \valid_read(&ip_addr->family);
+stack: set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:82:[eva:alarm] warning: out of bounds read. assert \valid_read(addr + off);
+stack: get_subnet :: addrfilt.c:177 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:178:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:135:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:141:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: open_node :: addrfilt.c:179 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:181:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:198:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:201:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:212:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_1' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:213 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:278 <-
+       ADF_AllowAll :: ntp_core.c:2518 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_4' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:213 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:267 <-
+       ADF_Allow :: ntp_core.c:2520 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_7' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:213 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:298 <-
+       ADF_DenyAll :: ntp_core.c:2524 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_open_node_l137_10' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: memory.c:74 <-
+       Malloc2 :: addrfilt.c:137 <-
+       open_node :: addrfilt.c:213 <-
+       set_subnet :: addrfilt.c:244 <-
+       set_subnet_ :: addrfilt.c:288 <-
+       ADF_Deny :: ntp_core.c:2526 <-
+       NCR_AddAccessRestriction :: conf.c:1795 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:291:[eva:alarm] warning: out of bounds read. assert \valid_read(&addr->family);
+stack: UTI_IPToString :: conf.c:1797 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:296:[eva:alarm] warning: out of bounds read. assert \valid_read(&addr->addr.in4);
+stack: UTI_IPToString :: conf.c:1797 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1797:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->subnet_bits);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: conf.c:1802 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1803:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->all);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1803:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->allow);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1803:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->subnet_bits);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1803:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->all);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1803:[kernel:annot:missing-spec] warning: Neither code nor specification for function CAM_AddAccessRestriction, generating default assigns from the prototype
+util.c:310:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(ip6 + (unsigned long)(2 * a));
+stack: UTI_IPToString :: conf.c:1805 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(ip6 + (unsigned long)((unsigned long)(2 * a) + 1));
+stack: UTI_IPToString :: conf.c:1805 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1805:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->subnet_bits);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1803:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->allow);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1803:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->subnet_bits);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: out of bounds read. assert \valid_read(ip6 + (unsigned long)(2 * a));
+stack: UTI_IPToString :: conf.c:1805 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: out of bounds read.
+assert \valid_read(ip6 + (unsigned long)((unsigned long)(2 * a) + 1));
+stack: UTI_IPToString :: conf.c:1805 <-
+       CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:1805:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->subnet_bits);
+stack: CNF_SetupAccessRestrictions :: test/unit/ntp_core.c:331 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:156:[eva:alarm] warning: function sscanf_va_1: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_1 :: cmdparse.c:156 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:153:[eva:alarm] warning: function sscanf_va_2: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_2 :: cmdparse.c:153 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:150:[eva:alarm] warning: function sscanf_va_3: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_3 :: cmdparse.c:150 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:147:[eva:alarm] warning: function sscanf_va_4: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_4 :: cmdparse.c:147 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:144:[eva:alarm] warning: function sscanf_va_5: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_5 :: cmdparse.c:144 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:141:[eva:alarm] warning: function sscanf_va_6: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_6 :: cmdparse.c:141 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:138:[eva:alarm] warning: function sscanf_va_7: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_7 :: cmdparse.c:138 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:135:[eva:alarm] warning: function sscanf_va_8: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_8 :: cmdparse.c:135 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:132:[eva:alarm] warning: function sscanf_va_9: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_9 :: cmdparse.c:132 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:129:[eva:alarm] warning: function sscanf_va_10: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_10 :: cmdparse.c:129 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:126:[eva:alarm] warning: function sscanf_va_11: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_11 :: cmdparse.c:126 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:123:[eva:alarm] warning: function sscanf_va_12: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_12 :: cmdparse.c:123 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:120:[eva:alarm] warning: function sscanf_va_13: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_13 :: cmdparse.c:120 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:117:[eva:alarm] warning: function sscanf_va_14: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_14 :: cmdparse.c:117 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:114:[eva:alarm] warning: function sscanf_va_15: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_15 :: cmdparse.c:114 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:111:[eva:alarm] warning: function sscanf_va_16: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_16 :: cmdparse.c:111 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:108:[eva:alarm] warning: function sscanf_va_17: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_17 :: cmdparse.c:108 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+cmdparse.c:104:[eva:alarm] warning: function sscanf_va_18: precondition valid_read_string(s) got status unknown.
+stack: sscanf_va_18 :: cmdparse.c:104 <-
+       CPS_ParseNTPSourceAdd :: test/unit/ntp_core.c:333 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:308:[eva:alarm] warning: pointer comparison.
+assert \pointer_comparable((void *)tmp, (void *)0);
+(tmp from get_key_by_id(key_id))
+stack: KEY_KeyKnown :: test/unit/ntp_core.c:73 <-
+       get_random_key_id :: test/unit/ntp_core.c:345 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:351:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)key);
+stack: KEY_CheckKeyLength :: ntp_core.c:585 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:354 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->len);
+stack: KEY_CheckKeyLength :: ntp_core.c:585 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:354 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:354:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->len);
+stack: KEY_CheckKeyLength :: ntp_core.c:585 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:354 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:336:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)key);
+stack: KEY_GetAuthLength :: ntp_core.c:593 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:354 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:339:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->hash_id);
+stack: KEY_GetAuthLength :: ntp_core.c:593 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:354 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:339:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->hash_id);
+stack: KEY_GetAuthLength :: ntp_core.c:593 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:354 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:608:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_CreateInstance, generating default assigns from the prototype
+ntp_core.c:697:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_DropSamples, generating default assigns from the prototype
+reference.c:1212:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ref_time->tv_sec - 1;
+stack: REF_GetReferenceParams :: reference.c:1250 <-
+       REF_GetOurStratum :: ntp_core.c:859 <-
+       get_transmit_delay :: ntp_core.c:471 <-
+       start_initial_timeout :: ntp_core.c:666 <-
+       NCR_StartInstance :: test/unit/ntp_core.c:355 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:859:[eva:alarm] warning: signed overflow.
+assert inst->remote_stratum - tmp ≤ 2147483647;
+(tmp from REF_GetOurStratum())
+stack: get_transmit_delay :: ntp_core.c:471 <-
+       start_initial_timeout :: ntp_core.c:666 <-
+       NCR_StartInstance :: test/unit/ntp_core.c:355 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1156 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1164:[eva:alarm] warning: invalid RHS operand for shift.
+assert 0 ≤ (int)(inst->local_poll - inst->minpoll) < 32;
+stack: transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1164:[eva:alarm] warning: invalid RHS operand for shift.
+assert 0 ≤ (int)(inst->local_poll - inst->minpoll) < 32;
+stack: transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1180 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:764:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert 4.294967296 * (double)nsec < 4294967296;
+stack: UTI_TimespecToNtp64 :: ntp_core.c:1031 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:1213:[eva:alarm] warning: function fread: precondition 'valid_ptr_block' got status unknown.
+stack: fread :: util.c:1213 <-
+       UTI_GetRandomBytesUrandom :: util.c:1258 <-
+       UTI_GetRandomBytes :: util.c:650 <-
+       UTI_GetNtp64Fuzz :: ntp_core.c:1041 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:1213:[eva:alarm] warning: function fread: precondition 'valid_ptr_block' got status unknown.
+stack: fread :: util.c:1213 <-
+       UTI_GetRandomBytesUrandom :: util.c:1258 <-
+       UTI_GetRandomBytes :: util.c:650 <-
+       UTI_GetNtp64Fuzz :: ntp_core.c:1061 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:320:[eva:alarm] warning: pointer comparison. assert \pointer_comparable((void *)0, (void *)key);
+stack: KEY_GetAuthDelay :: ntp_core.c:1079 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:323:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&key->auth_delay);
+stack: KEY_GetAuthDelay :: ntp_core.c:1079 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:323:[eva:alarm] warning: out of bounds read. assert \valid_read(&key->auth_delay);
+stack: KEY_GetAuthDelay :: ntp_core.c:1079 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1078:[eva:alarm] warning: signed overflow.
+assert -9223372036854775808 ≤ local_transmit.tv_nsec + (long)tmp_10;
+(tmp_10 from
+auth_mode ==
+AUTH_SYMMETRIC?KEY_GetAuthDelay(key_id):NSD_GetAuthDelay(key_id))
+stack: transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1078:[eva:alarm] warning: signed overflow.
+assert local_transmit.tv_nsec + (long)tmp_10 ≤ 9223372036854775807;
+(tmp_10 from
+auth_mode ==
+AUTH_SYMMETRIC?KEY_GetAuthDelay(key_id):NSD_GetAuthDelay(key_id))
+stack: transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:98:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts->tv_nsec / 1000000000;
+stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:98:[eva:alarm] warning: signed overflow. assert ts->tv_nsec / 1000000000 ≤ 9223372036854775807;
+stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:99:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts->tv_nsec % 1000000000;
+stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:99:[eva:alarm] warning: signed overflow. assert ts->tv_nsec % 1000000000 ≤ 9223372036854775807;
+stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:103:[eva:alarm] warning: signed overflow. assert ts->tv_sec - 1 ≤ 9223372036854775807;
+stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:104:[eva:alarm] warning: signed overflow. assert -9223372036854775808 ≤ ts->tv_nsec + 1000000000;
+stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:104:[eva:alarm] warning: signed overflow. assert ts->tv_nsec + 1000000000 ≤ 9223372036854775807;
+stack: UTI_NormaliseTimespec :: ntp_core.c:1080 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:763:[eva:garbled-mix] warning: The specification of function htonl has generated a garbled mix for assigns clause assigns clause \result.
+util.c:764:[eva:alarm] warning: non-finite double value.
+assert \is_finite(\mul_double((double)4.294967296, (double)nsec));
+stack: UTI_TimespecToNtp64 :: ntp_core.c:1081 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:764:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert -1 < 4.294967296 * (double)nsec;
+stack: UTI_TimespecToNtp64 :: ntp_core.c:1081 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:764:[eva:garbled-mix] warning: The specification of function htonl has generated a garbled mix for assigns clause assigns clause \result.
+md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: ntp_core.c:1090 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:2351 <-
+       NCR_SetConnectivity :: ntp_core.c:1256 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/ntp_core.c:179:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: test/unit/ntp_core.c:179 <-
+       send_response :: test/unit/ntp_core.c:379 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/ntp_core.c:186:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: test/unit/ntp_core.c:186 <-
+       send_response :: test/unit/ntp_core.c:379 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: test/unit/ntp_core.c:190 <-
+       send_response :: test/unit/ntp_core.c:379 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/ntp_core.c:192:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: test/unit/ntp_core.c:192 <-
+       send_response :: test/unit/ntp_core.c:379 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1480:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_AccumulateSample, generating default assigns from the prototype
+ntp_core.c:1482:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_GetNumberOfSamples, generating default assigns from the prototype
+ntp_core.c:1484:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_GetFilteredSample, generating default assigns from the prototype
+util.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_sec);
+stack: UTI_DiffTimespecsToDouble :: ntp_core.c:1487 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_nsec);
+stack: UTI_DiffTimespecsToDouble :: ntp_core.c:1487 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1489:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ (int)(8 / 2) * filtered_samples;
+stack: process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1489:[eva:alarm] warning: signed overflow. assert (int)(8 / 2) * filtered_samples ≤ 2147483647;
+stack: process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->offset);
+stack: process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:319:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->offset);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:321:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->peer_delay);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:322:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&sample->peer_dispersion);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:323:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->root_delay);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:324:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&sample->root_dispersion);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:325:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->stratum);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:326:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->leap);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_sec);
+stack: UTI_DiffTimespecsToDouble :: sourcestats.c:372 <-
+       convert_to_intervals :: sourcestats.c:527 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:181:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_nsec);
+stack: UTI_DiffTimespecsToDouble :: sourcestats.c:372 <-
+       convert_to_intervals :: sourcestats.c:527 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:367:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + v);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:367:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:554:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&peer_distances[i]);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:492:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&delays[i]);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:492:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(offsets + i);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:397:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(times_back + i);
+stack: find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1509:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&sample->peer_dispersion);
+stack: process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1509:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&sample->peer_delay);
+stack: process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:746:[eva:alarm] warning: non-finite double value. assert \is_finite(inst->poll_score);
+stack: adjust_poll :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:746:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert inst->poll_score < 2147483648;
+stack: adjust_poll :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:746:[eva:alarm] warning: signed overflow.
+assert inst->local_poll + (int)inst->poll_score ≤ 2147483647;
+stack: adjust_poll :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:751:[eva:alarm] warning: non-finite double value.
+assert \is_finite(\sub_double(inst->poll_score, (double)1.0));
+stack: adjust_poll :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:751:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert -2147483649 < inst->poll_score - 1.0;
+stack: adjust_poll :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:751:[eva:alarm] warning: signed overflow.
+assert
+-2147483648 ≤
+inst->local_poll + (int)\sub_double(inst->poll_score, (double)1.0);
+stack: adjust_poll :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:752:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert -2147483649 < inst->poll_score - 1.0;
+stack: adjust_poll :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1846 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1859 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:329:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:326:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->state);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:327:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->state);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:329:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:331:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&node->extended);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:331:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->extended);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:326:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->state);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:332:[eva:alarm] warning: signed overflow. assert bits_consumed + 4 ≤ 2147483647;
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:326:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->state);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:327:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&node->state);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:329:[eva:alarm] warning: out of bounds read. assert \valid_read(&node->extended);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:329:[eva:alarm] warning: pointer comparison.
+assert \pointer_comparable((void *)0, (void *)node->extended);
+stack: check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:66:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&ip->addr.in6[(int)((int)(i * 4) + 0)]);
+stack: split_ip6 :: addrfilt.c:367 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:66:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&ip->addr.in6[(int)((int)(i * 4) + 1)]);
+stack: split_ip6 :: addrfilt.c:367 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:66:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&ip->addr.in6[(int)((int)(i * 4) + 2)]);
+stack: split_ip6 :: addrfilt.c:367 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:66:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&ip->addr.in6[(int)((int)(i * 4) + 3)]);
+stack: split_ip6 :: addrfilt.c:367 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:1213:[eva:alarm] warning: function fread: precondition 'valid_ptr_block' got status unknown.
+stack: fread :: util.c:1213 <-
+       UTI_GetRandomBytesUrandom :: util.c:1258 <-
+       UTI_GetRandomBytes :: util.c:650 <-
+       UTI_GetNtp64Fuzz :: ntp_core.c:1041 <-
+       transmit_packet :: ntp_core.c:2196 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:1213:[eva:alarm] warning: function fread: precondition 'valid_ptr_block' got status unknown.
+stack: fread :: util.c:1213 <-
+       UTI_GetRandomBytesUrandom :: util.c:1258 <-
+       UTI_GetRandomBytes :: util.c:650 <-
+       UTI_GetNtp64Fuzz :: ntp_core.c:1061 <-
+       transmit_packet :: ntp_core.c:2196 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:797:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->offsets[inst->last_sample]);
+stack: SST_PredictOffset :: ntp_core.c:1502 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:154:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_sec);
+stack: UTI_CompareTimespecs :: sourcestats.c:306 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:154:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_sec);
+stack: UTI_CompareTimespecs :: sourcestats.c:306 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:156:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_sec);
+stack: UTI_CompareTimespecs :: sourcestats.c:306 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:158:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_nsec);
+stack: UTI_CompareTimespecs :: sourcestats.c:306 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:158:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_nsec);
+stack: UTI_CompareTimespecs :: sourcestats.c:306 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:160:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b->tv_nsec);
+stack: UTI_CompareTimespecs :: sourcestats.c:306 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:331:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->peer_delays[inst->min_delay_sample]);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:531:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->offsets[tmp]);
+(tmp from get_runsbuf_index(inst, i))
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:536:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->peer_delays[tmp_0]);
+(tmp_0 from get_runsbuf_index(inst, i))
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:536:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->peer_dispersions[j]);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:353:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + index_0);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:555:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&peer_distances[i]);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:819:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->peer_delays[inst->min_delay_sample]);
+stack: SST_MinRoundTripDelay :: sourcestats.c:475 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:479:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->peer_delays[tmp]);
+(tmp from get_runsbuf_index(inst, i - inst->runs_samples))
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:400:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->root_dispersions[j]);
+stack: find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:400:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->root_delays[j]);
+stack: find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:669:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->offsets[i]);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:670:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->root_delays[j]);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:670:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->root_dispersions[j]);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1846 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1859 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:422:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->peer_delays[index_0]);
+stack: find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:422:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->peer_delays[inst->min_delay_sample]);
+stack: find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:156:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_sec);
+stack: UTI_CompareTimespecs :: sourcestats.c:306 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:160:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a->tv_nsec);
+stack: UTI_CompareTimespecs :: sourcestats.c:306 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:372:[eva:alarm] warning: out of bounds write. assert \valid(times_back + i);
+stack: convert_to_intervals :: sourcestats.c:527 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:531:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i + inst->runs_samples);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:359:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:362:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + v);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:363:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + v);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:374:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:374:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + pivind);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:380:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:380:[eva:alarm] warning: out of bounds read. assert \valid_read(x + r);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:382:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:386:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:368:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + v);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:368:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:371:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + index_0);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:678:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:679:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:683:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:680:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:681:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:681:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:682:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:683:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:684:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:684:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:685:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:444:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&a);
+stack: estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:254:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:254:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:255:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:262:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:263:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:263:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:264:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:264:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:265:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i - resid_start);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:183:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(resid + (int)(i - 1));
+stack: n_runs_from_residuals :: regress.c:281 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:183:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(resid + i);
+stack: n_runs_from_residuals :: regress.c:281 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:184:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(resid + i);
+stack: n_runs_from_residuals :: regress.c:281 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:184:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(resid + (int)(i - 1));
+stack: n_runs_from_residuals :: regress.c:281 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:304:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:304:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&resid[(int)(i - resid_start)]);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:575:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&est_slope);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:576:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&est_slope_sd);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:577:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&degrees_of_freedom);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:578:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&est_intercept);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:580:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&est_intercept_sd);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:582:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&nruns);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:594:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->offset_time.tv_sec);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:593:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&best_start);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:708:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&si->last_sample_ago);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:730:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->stratum);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:768:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->lo_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:772:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->hi_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown.
+stack: memcpy :: fc_stubs.c:13 <-
+       qsort :: sources.c:803 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:838:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(sort_list + i)->tag);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:841:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(sort_list + i)->index);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:847:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(sort_list + i)->offset);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:852:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(sort_list + i)->offset);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:853:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(sort_list + i)->index);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:896:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + i))->sel_info.lo_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:897:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + i))->sel_info.hi_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:898:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + i))->sel_info.lo_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:899:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + i))->sel_info.hi_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:906:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + i))->sel_info.hi_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:928:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:932:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + index_0))->sel_info.leap);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:970:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + index_0))->sel_info.stratum);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:999:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + i))->sel_info.root_distance);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:999:[eva:alarm] warning: signed overflow.
+assert -2147483648 ≤ (*(sources + i))->sel_info.stratum - min_stratum;
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:999:[eva:alarm] warning: signed overflow.
+assert (*(sources + i))->sel_info.stratum - min_stratum ≤ 2147483647;
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:724:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->root_delays[j]);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:727:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->root_dispersions[j]);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:941:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:941 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:954:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: reference.c:954 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:954:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: reference.c:954 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:586:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:586 <-
+       is_offset_ok :: reference.c:1005 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:1011:[eva:alarm] warning: signed overflow. assert stratum + 1 ≤ 2147483647;
+stack: REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:570:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:570 <-
+       is_step_limit_reached :: reference.c:1042 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:191:[eva:alarm] warning: non-finite double value. assert \is_finite(increment);
+stack: UTI_AddDoubleToTimespec :: util.c:634 <-
+       UTI_AdjustTimespec :: sched.c:602 <-
+       handle_slew_0 :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:626 <-
+       LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:191:[eva:alarm] warning: overflow in conversion from floating-point to integer.
+assert -9223372036854775809 < increment;
+stack: UTI_AddDoubleToTimespec :: util.c:634 <-
+       UTI_AdjustTimespec :: sched.c:602 <-
+       handle_slew_0 :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:626 <-
+       LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:192:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&start->tv_sec);
+stack: UTI_AddDoubleToTimespec :: util.c:634 <-
+       UTI_AdjustTimespec :: sourcestats.c:751 <-
+       SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:626 <-
+       LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:193:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&start->tv_nsec);
+stack: UTI_AddDoubleToTimespec :: util.c:634 <-
+       UTI_AdjustTimespec :: sourcestats.c:751 <-
+       SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:626 <-
+       LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:97:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ts->tv_nsec);
+stack: UTI_NormaliseTimespec :: util.c:194 <-
+       UTI_AddDoubleToTimespec :: util.c:634 <-
+       UTI_AdjustTimespec :: sourcestats.c:751 <-
+       SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:626 <-
+       LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:98:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ts->tv_sec);
+stack: UTI_NormaliseTimespec :: util.c:194 <-
+       UTI_AddDoubleToTimespec :: util.c:634 <-
+       UTI_AdjustTimespec :: sourcestats.c:751 <-
+       SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:626 <-
+       LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:752:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->offsets[i]);
+stack: SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:626 <-
+       LCL_AccumulateFrequencyAndOffset :: reference.c:1052 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:659:[eva:alarm] warning: signed overflow. assert t - when ≤ 9223372036854775807;
+stack: get_tz_leap :: reference.c:781 <-
+       update_leap_status :: reference.c:1054 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:659:[eva:alarm] warning: signed overflow. assert (long)(t - when) + 10 ≤ 9223372036854775807;
+stack: get_tz_leap :: reference.c:781 <-
+       update_leap_status :: reference.c:1054 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:757:[eva:alarm] warning: signed overflow.
+assert
+(long)((long)(now / (long)((int)(24 * 3600))) + 1) * (long)((int)(24 * 3600))
+≤ 9223372036854775807;
+stack: set_leap_timeout :: reference.c:812 <-
+       update_leap_status :: reference.c:1054 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:516:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:516 <-
+       maybe_log_offset :: reference.c:1055 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:526:[eva:alarm] warning: function popen: precondition 'valid_command' got status unknown.
+stack: popen :: reference.c:526 <-
+       maybe_log_offset :: reference.c:1055 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:533:[eva:alarm] warning: function fprintf_va_3: precondition valid_read_string(param0) got status unknown.
+stack: fprintf_va_3 :: reference.c:533 <-
+       maybe_log_offset :: reference.c:1055 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:534:[eva:alarm] warning: function fprintf_va_4: precondition valid_read_string(param0) got status unknown.
+stack: fprintf_va_4 :: reference.c:534 <-
+       maybe_log_offset :: reference.c:1055 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:541:[eva:alarm] warning: function fputs: precondition 'valid_string_s' got status unknown.
+stack: fputs :: reference.c:541 <-
+       maybe_log_offset :: reference.c:1055 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:551:[eva:alarm] warning: function pclose: precondition 'open_pipe' got status unknown.
+stack: pclose :: reference.c:551 <-
+       maybe_log_offset :: reference.c:1055 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:835 <-
+       get_root_dispersion :: reference.c:1063 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:835 <-
+       get_root_dispersion :: reference.c:853 <-
+       write_log :: reference.c:1076 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: reference.c:860 <-
+       write_log :: reference.c:1076 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:476:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: sched.c:476 <-
+       SCH_RemoveTimeout :: reference.c:409 <-
+       update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:478:[eva:alarm] warning: signed overflow. assert c - fb_drift_min_0 ≤ 2147483647;
+stack: schedule_fb_drift :: reference.c:1091 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:478:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(fb_drifts + (int)(c - fb_drift_min_0))->freq);
+stack: schedule_fb_drift :: reference.c:1091 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:478:[eva:alarm] warning: out of bounds read.
+assert \valid_read(&(fb_drifts + (int)(c - fb_drift_min_0))->freq);
+stack: schedule_fb_drift :: reference.c:1091 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1846 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1859 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:835 <-
+       get_root_dispersion :: reference.c:1179 <-
+       REF_GetReferenceParams :: reference.c:1250 <-
+       REF_GetOurStratum :: ntp_core.c:859 <-
+       get_transmit_delay :: ntp_core.c:1867 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:1324:[eva:alarm] warning: signed overflow. assert -now.tv_sec ≤ 9223372036854775807;
+stack: REF_IsLeapSecondClose :: sources.c:344 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:1325:[eva:alarm] warning: signed overflow. assert t + 5 ≤ 9223372036854775807;
+stack: REF_IsLeapSecondClose :: sources.c:344 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:1328:[eva:alarm] warning: signed overflow. assert -now_raw.tv_sec ≤ 9223372036854775807;
+stack: REF_IsLeapSecondClose :: sources.c:344 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:1329:[eva:alarm] warning: signed overflow. assert t + 5 ≤ 9223372036854775807;
+stack: REF_IsLeapSecondClose :: sources.c:344 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:379:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + l);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:382:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + l);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:375:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:386:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + index_0);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:360:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + u);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:367:[eva:alarm] warning: out of bounds read. assert \valid_read(x + v);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:664:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->stratum);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:663:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&first_sample_ago);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:663:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&si->last_sample_ago);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:666:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->root_distance);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:667:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->lo_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:668:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->hi_limit);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:672:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->root_distance);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:678:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&si->std_dev);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown.
+stack: memcpy :: fc_stubs.c:13 <-
+       qsort :: sources.c:803 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:476:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: sched.c:476 <-
+       SCH_RemoveTimeout :: reference.c:747 <-
+       set_leap_timeout :: reference.c:812 <-
+       update_leap_status :: reference.c:1147 <-
+       REF_SetUnsynchronised :: sources.c:868 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:835 <-
+       get_root_dispersion :: reference.c:1156 <-
+       REF_SetUnsynchronised :: sources.c:868 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:986:[eva:alarm] warning: accessing uninitialized left-value.
+assert
+\initialized(&(*(sources + selected_source_index))->sel_info.root_distance);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:986:[eva:alarm] warning: signed overflow.
+assert
+-2147483648 ≤
+(*(sources + selected_source_index))->sel_info.stratum - min_stratum;
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:986:[eva:alarm] warning: signed overflow.
+assert
+(*(sources + selected_source_index))->sel_info.stratum - min_stratum ≤
+2147483647;
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:941:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:941 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:954:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: reference.c:954 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:954:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: reference.c:954 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: reference.c:860 <-
+       write_log :: reference.c:1076 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:207:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(src + i);
+stack: strcpy :: reference.c:347 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:208:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(src + i);
+stack: strcpy :: reference.c:347 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:208:[eva:alarm] warning: out of bounds write. assert \valid(dest + i);
+stack: strcpy :: reference.c:347 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:209:[eva:alarm] warning: out of bounds write. assert \valid(dest + i);
+stack: strcpy :: reference.c:347 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:184:[eva:alarm] warning: out of bounds write. assert \valid(dest + (unsigned long)(n + i));
+stack: strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(src + i);
+stack: strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:186:[eva:alarm] warning: out of bounds write. assert \valid(dest + (unsigned long)(n + i));
+stack: strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&buf.st_gid);
+stack: update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&buf.st_uid);
+stack: update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:372:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&buf.st_mode);
+stack: update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:372:[kernel:annot:missing-spec] warning: Neither code nor specification for function chmod, generating default assigns from the prototype
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:415:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ fb_drift_max_0 - fb_drift_min_0;
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:415:[eva:alarm] warning: signed overflow. assert fb_drift_max_0 - fb_drift_min_0 ≤ 2147483647;
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:415:[eva:alarm] warning: signed overflow.
+assert (int)(fb_drift_max_0 - fb_drift_min_0) + 1 ≤ 2147483647;
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:416:[eva:alarm] warning: invalid RHS operand for shift. assert 0 ≤ (int)(i + fb_drift_min_0) < 32;
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:416:[eva:alarm] warning: signed overflow. assert 1 << (int)(i + fb_drift_min_0) ≤ 2147483647;
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:417:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(fb_drifts + i)->secs);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:417:[eva:alarm] warning: out of bounds read. assert \valid_read(&(fb_drifts + i)->secs);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:420:[eva:alarm] warning: out of bounds write. assert \valid(&(fb_drifts + i)->freq);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:420:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(fb_drifts + i)->freq);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:420:[eva:alarm] warning: out of bounds read. assert \valid_read(&(fb_drifts + i)->secs);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:422:[eva:alarm] warning: out of bounds write. assert \valid(&(fb_drifts + i)->secs);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:416:[eva:alarm] warning: signed overflow. assert i + fb_drift_min_0 ≤ 2147483647;
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:420:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(fb_drifts + i)->secs);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:422:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(fb_drifts + i)->secs);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:427:[eva:alarm] warning: function exp: precondition 'finite_domain' got status unknown.
+stack: exp :: reference.c:427 <-
+       update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:427:[eva:alarm] warning: out of bounds write. assert \valid(&(fb_drifts + i)->freq);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:427:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(fb_drifts + i)->freq);
+stack: update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1846 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1859 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:835:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:835 <-
+       get_root_dispersion :: reference.c:1179 <-
+       REF_GetReferenceParams :: ntp_core.c:982 <-
+       transmit_packet :: ntp_core.c:2196 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:680:[eva:alarm] warning: non-finite double value. assert \is_finite(x);
+stack: UTI_DoubleToNtp32 :: ntp_core.c:1024 <-
+       transmit_packet :: ntp_core.c:2196 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:367:[eva:alarm] warning: out of bounds read. assert \valid_read(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + (int)(i - 1));
+stack: n_runs_from_residuals :: regress.c:288 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:184:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + (int)(i - 1));
+stack: n_runs_from_residuals :: regress.c:288 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + i);
+stack: n_runs_from_residuals :: regress.c:288 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:184:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + i);
+stack: n_runs_from_residuals :: regress.c:288 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:304:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i - resid_start);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:123:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(dof - 1);
+stack: RGR_GetTCoef :: sourcestats.c:577 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:427:[eva:alarm] warning: function exp: precondition 'finite_domain' got status unknown.
+stack: exp :: reference.c:427 <-
+       update_fb_drifts :: reference.c:1090 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1846 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1859 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:363:[eva:alarm] warning: out of bounds read. assert \valid_read(flags + v);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:374:[eva:alarm] warning: out of bounds read. assert \valid_read(x + pivind);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:442 <-
+       RGR_FindMedian :: sourcestats.c:546 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:254:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:262:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:263:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:264:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:283:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(n - resid_start);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:272:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ (int)(n - start) * 2;
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:272:[eva:alarm] warning: signed overflow. assert n - (int)((int)(n - start) * 2) ≤ 2147483647;
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ i - resid_start;
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:286:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ inst->n_samples + inst->runs_samples;
+stack: prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:344:[eva:alarm] warning: signed overflow.
+assert
+(int)((int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples)
++ i ≤ 2147483647;
+stack: get_runsbuf_index :: sourcestats.c:418 <-
+       find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:344:[eva:alarm] warning: signed overflow.
+assert
+(int)((int)((int)(inst->last_sample + (int)((int)(2 * 64) * 2)) -
+            inst->n_samples)
+      + i)
++ 1 ≤ 2147483647;
+stack: get_runsbuf_index :: sourcestats.c:418 <-
+       find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:397:[eva:alarm] warning: out of bounds read. assert \valid_read(times_back + i);
+stack: find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1846 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1859 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1156 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1180 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1037:[eva:alarm] warning: out of bounds read. assert \valid_read(remote_ntp_rx);
+stack: transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:2319 <-
+       NCR_SetConnectivity :: ntp_core.c:1256 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:377 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&last_sample_ago);
+stack: check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&min_delay);
+stack: check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&skew);
+stack: check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1447:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&last_sample_ago);
+stack: check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1447:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&skew);
+stack: check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1447:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&std_dev);
+stack: check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1449:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&min_delay);
+stack: check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1454:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&predicted_offset);
+stack: check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:476:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ inst->runs_samples + inst->n_samples;
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ n * 2;
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:281:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ inst->n_samples - new_oldest;
+stack: prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:418:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647;
+stack: find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:344:[eva:alarm] warning: signed overflow.
+assert
+(int)(inst->last_sample + (int)((int)(2 * 64) * 2)) - inst->n_samples ≤
+2147483647;
+stack: get_runsbuf_index :: sourcestats.c:418 <-
+       find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:642 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:408 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:645:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:645 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:408 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:648:[kernel:annot:missing-spec] warning: Neither code nor specification for function SPF_DestroyInstance, generating default assigns from the prototype
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:586 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:410 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1156 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:421 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1180 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:421 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:2319 <-
+       NCR_SetConnectivity :: ntp_core.c:1256 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:421 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:2351 <-
+       NCR_SetConnectivity :: ntp_core.c:1256 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:421 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: test/unit/ntp_core.c:119 <-
+       process_request :: test/unit/ntp_core.c:422 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1846 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1859 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1871 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/ntp_core.c:424:[eva:alarm] warning: invalid RHS operand for shift. assert 0 ≤ inst1->local_poll < 32;
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:1156 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:421 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:1180 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:421 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: ntp_core.c:1090 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:421 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:484:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:484 <-
+       close_client_socket :: ntp_core.c:508 <-
+       take_offline :: ntp_core.c:642 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:427 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:645:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:645 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:427 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:586 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:429 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:586 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:431 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: ntp_core.c:1090 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:444 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:2319 <-
+       NCR_SetConnectivity :: ntp_core.c:1256 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:444 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1871 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1871 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1871 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/ntp_core.c:464:[eva:alarm] warning: invalid RHS operand for shift.
+assert 0 ≤ (int)(source.params.minpoll - 1) < 32;
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+test/unit/ntp_core.c:464:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ source.params.minpoll - 1;
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+test/unit/ntp_core.c:464:[eva:alarm] warning: signed overflow. assert 1 << (int)(source.params.minpoll - 1) ≤ 2147483647;
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+md5.c:157:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
+stack: MD5Update :: hash_intmd5.c:56 <-
+       HSH_Hash :: keys.c:364 <-
+       generate_ntp_auth :: keys.c:395 <-
+       KEY_GenerateAuth :: ntp_core.c:1090 <-
+       transmit_packet :: ntp_core.c:1228 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:466 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:2319 <-
+       NCR_SetConnectivity :: ntp_core.c:1256 <-
+       transmit_timeout :: test/unit/ntp_core.c:87 <-
+       send_request :: test/unit/ntp_core.c:466 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/ntp_core.c:468:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: test/unit/ntp_core.c:468 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1871 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1504:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1504 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:482 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:398:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:398 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:407:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:407 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown.
+stack: memcpy :: fc_stubs.c:13 <-
+       qsort :: sources.c:803 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:934:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + index_0))->sel_info.leap);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:949:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:955:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:973:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:974:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + index_0))->sel_info.stratum);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:986:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + selected_source_index))->sel_info.stratum);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:999:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + i))->sel_info.stratum);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1071:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:516:[eva:alarm] warning: accessing uninitialized left-value.
+assert
+\initialized(&(*(sources + selected_source_index))->sel_info.root_distance);
+stack: combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:523 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:533:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + index_0))->sel_info.root_distance);
+stack: combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sources.c:534 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:554:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + index_0))->sel_info.root_distance);
+stack: combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:522:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(sel_sources + i);
+stack: combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:574 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1094:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&(*(sources + selected_source_index))->sel_info.stratum);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:941:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:941 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:954:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: reference.c:954 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:954:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: reference.c:954 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'finite_arg' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:784:[eva:alarm] warning: function log: precondition 'arg_positive' got status unknown.
+stack: log :: ntp_core.c:784 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1871 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1883:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: ntp_core.c:1883 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1921 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+addrfilt.c:347:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: addrfilt.c:347 <-
+       check_ip_in_node :: addrfilt.c:365 <-
+       ADF_IsAllowed :: ntp_core.c:2105 <-
+       NCR_ProcessRxUnknown :: ntp_core.c:2072 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/ntp_core.c:485:[eva:alarm] warning: signed overflow. assert 1 << (int)(source.params.minpoll - 1) ≤ 2147483647;
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+test/unit/ntp_core.c:446:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: test/unit/ntp_core.c:446 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown.
+stack: memcpy :: fc_stubs.c:13 <-
+       qsort :: sources.c:803 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:523 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sources.c:534 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:574 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:307 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:523 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sources.c:534 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:574 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:523 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sources.c:534 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:574 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:523 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sources.c:534 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:574 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:523 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:534:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sources.c:534 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:574:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:574 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:576:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:576 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:578:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:578 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:579:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sources.c:579 <-
+       combine_sources :: sources.c:1091 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:1871 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+ntp_core.c:1459:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: ntp_core.c:1459 <-
+       check_delay_dev_ratio :: ntp_core.c:1719 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(sources + i);
+stack: SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+fc_stubs.c:13:[eva:alarm] warning: function memcpy: precondition 'separation' got status unknown.
+stack: memcpy :: fc_stubs.c:13 <-
+       qsort :: sources.c:803 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: sources.c:1110 <-
+       SRC_ReselectSource :: sources.c:284 <-
+       SRC_DestroyInstance :: ntp_core.c:653 <-
+       NCR_DestroyInstance :: test/unit/ntp_core.c:488 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: ntp_core.c:586 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:354 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:841:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(sources + (sort_list + i)->index);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:853:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(sources + (sort_list + i)->index);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:929:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(sources + index_0);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:932:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(sources + index_0);
+stack: SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_SST_CreateInstance_l215' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: sourcestats.c:215 <-
+       SST_CreateInstance :: sources.c:230 <-
+       SRC_CreateNewInstance :: ntp_core.c:601 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:354 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:626:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_frequency);
+stack: SST_GetFrequencyRange :: ntp_core.c:1678 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:627:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew);
+stack: SST_GetFrequencyRange :: ntp_core.c:1678 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:829:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:833:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_offset);
+stack: SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:833:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_frequency);
+stack: SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:813:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->fixed_min_delay);
+stack: SST_MinRoundTripDelay :: sourcestats.c:835 <-
+       SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:814:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->fixed_min_delay);
+stack: SST_MinRoundTripDelay :: sourcestats.c:835 <-
+       SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:816:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_MinRoundTripDelay :: sourcestats.c:835 <-
+       SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:819:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->min_delay_sample);
+stack: SST_MinRoundTripDelay :: sourcestats.c:835 <-
+       SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:836:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew);
+stack: SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:837:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->std_dev);
+stack: SST_GetDelayTestData :: ntp_core.c:1416 <-
+       check_delay_ratio :: ntp_core.c:1712 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:792:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_PredictOffset :: ntp_core.c:1502 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:796:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_PredictOffset :: ntp_core.c:1502 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:797:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample);
+stack: SST_PredictOffset :: ntp_core.c:1502 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:803:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_offset);
+stack: SST_PredictOffset :: ntp_core.c:1502 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:803:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_frequency);
+stack: SST_PredictOffset :: ntp_core.c:1502 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:299:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:300:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->max_samples);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:281:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:282:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:418:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:344:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample);
+stack: get_runsbuf_index :: sourcestats.c:418 <-
+       find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:344:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: get_runsbuf_index :: sourcestats.c:418 <-
+       find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:420:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:305:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:306:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:307:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->ip_addr);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:307:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&inst->ip_addr);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:312:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:328:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->fixed_min_delay);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:331:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:331:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->min_delay_sample);
+stack: SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:527:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:369:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample);
+stack: convert_to_intervals :: sourcestats.c:527 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:370:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: convert_to_intervals :: sourcestats.c:527 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:370:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: convert_to_intervals :: sourcestats.c:527 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:529:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:530:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample);
+stack: get_buf_index :: sourcestats.c:535 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: get_buf_index :: sourcestats.c:535 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:472:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->fixed_asymmetry);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:476:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:476:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:479:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:482:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->fixed_asymmetry);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:483:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->fixed_asymmetry);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:444:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(asymmetry_run);
+stack: estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:492:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->asymmetry);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:562:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->min_samples);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:562:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:572:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:573:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_frequency);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:579:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->last_sample);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:595:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->ip_addr);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:595:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&inst->ip_addr);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:593:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->asymmetry);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:603:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:420:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647;
+stack: find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:420:[eva:alarm] warning: signed overflow. assert (int)(-inst->runs_samples) + 1 ≤ 2147483647;
+stack: find_min_delay_sample :: sourcestats.c:288 <-
+       prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:388:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:394:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:354:[eva:alarm] warning: signed overflow.
+assert
+(int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples ≤ 2147483647;
+stack: get_buf_index :: sourcestats.c:395 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:354:[eva:alarm] warning: signed overflow.
+assert
+(int)((int)((int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples) + i)
++ 1 ≤ 2147483647;
+stack: get_buf_index :: sourcestats.c:395 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:400:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew);
+stack: find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:354:[eva:alarm] warning: signed overflow.
+assert
+(int)((int)(inst->last_sample + (int)(64 * 2)) - inst->n_samples) + i ≤
+2147483647;
+stack: get_buf_index :: sourcestats.c:395 <-
+       find_best_sample_index :: sourcestats.c:612 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:656:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:661:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->best_single_sample);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:662:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->best_single_sample);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:665:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->leap);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:666:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->std_dev);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:669:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_frequency);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:670:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:692:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:692:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ inst->n_samples - 1;
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:695:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->regression_ok);
+stack: SST_GetSelectionData :: sources.c:648 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:744:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:475 <-
+       LCL_SetAbsoluteFrequency :: reference.c:478 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: sources.c:868 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:747:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->runs_samples);
+stack: SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:475 <-
+       LCL_SetAbsoluteFrequency :: reference.c:478 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: sources.c:868 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:747:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647;
+stack: SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:475 <-
+       LCL_SetAbsoluteFrequency :: reference.c:478 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: sources.c:868 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:747:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:475 <-
+       LCL_SetAbsoluteFrequency :: reference.c:478 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: sources.c:868 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:757:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_offset);
+stack: SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:475 <-
+       LCL_SetAbsoluteFrequency :: reference.c:478 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: sources.c:868 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:758:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_frequency);
+stack: SST_SlewSamples :: sources.c:1142 <-
+       slew_sources :: local.c:295 <-
+       invoke_parameter_change_handlers :: local.c:475 <-
+       LCL_SetAbsoluteFrequency :: reference.c:478 <-
+       schedule_fb_drift :: reference.c:1144 <-
+       REF_SetUnsynchronised :: sources.c:868 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:715:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->best_single_sample);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:716:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->best_single_sample);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:719:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_offset);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:720:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_offset_sd);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:721:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_frequency);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:722:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&inst->estimated_frequency_sd);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:723:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->skew);
+stack: SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:941:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: reference.c:941 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:954:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: reference.c:954 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:954:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: reference.c:954 <-
+       get_clock_estimates :: reference.c:1002 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:986:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->n_samples);
+stack: SST_Samples :: ntp_core.c:786 <-
+       get_poll_adj :: ntp_core.c:1509 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:1037:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&inst->asymmetry);
+stack: SST_GetJitterAsymmetry :: ntp_core.c:1905 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:381 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:370:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647;
+stack: convert_to_intervals :: sourcestats.c:527 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:530:[eva:alarm] warning: signed overflow. assert -inst->runs_samples ≤ 2147483647;
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:531:[eva:alarm] warning: accessing out of bounds index.
+assert (int)(i + inst->runs_samples) < (int)(64 * 2);
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:531:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ i + inst->runs_samples;
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:479:[eva:alarm] warning: signed overflow. assert i - inst->runs_samples ≤ 2147483647;
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:479:[eva:alarm] warning: accessing out of bounds index. assert i < (int)(64 * 2);
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:273:[eva:alarm] warning: signed overflow. assert -m ≤ 2147483647;
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:288:[eva:alarm] warning: signed overflow. assert start - resid_start ≤ 2147483647;
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:603:[eva:alarm] warning: signed overflow. assert inst->runs_samples + best_start ≤ 2147483647;
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:282:[eva:alarm] warning: signed overflow. assert inst->runs_samples + new_oldest ≤ 2147483647;
+stack: prune_register :: sourcestats.c:604 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:531:[eva:alarm] warning: signed overflow. assert i + inst->runs_samples ≤ 2147483647;
+stack: SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:476:[eva:alarm] warning: signed overflow. assert inst->runs_samples + inst->n_samples ≤ 2147483647;
+stack: correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:393 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:399 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:405 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: accessing out of bounds index. assert (int)(i - resid_start) < (int)(64 * 2);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:304:[eva:alarm] warning: accessing out of bounds index. assert (int)(i - resid_start) < (int)(64 * 2);
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:386 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:283:[eva:alarm] warning: accessing out of bounds index. assert (int)(n - resid_start) < 130;
+stack: RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:391 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_SST_CreateInstance_l215_0' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: sourcestats.c:215 <-
+       SST_CreateInstance :: sources.c:230 <-
+       SRC_CreateNewInstance :: ntp_core.c:601 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:410 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:242:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:242 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: sourcestats.c:562 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: sourcestats.c:581 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:585:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: sourcestats.c:585 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:960:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:960 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:1033:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:1033 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sources.c:472 <-
+       source_to_string :: sources.c:1052 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:713:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:713 <-
+       SST_GetTrackingData :: sources.c:1086 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:1083 <-
+       REF_SetReference :: sources.c:1094 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sources.c:634:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sources.c:634 <-
+       SRC_SelectSource :: ntp_core.c:1507 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:423 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_SST_CreateInstance_l215_1' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: sourcestats.c:215 <-
+       SST_CreateInstance :: sources.c:230 <-
+       SRC_CreateNewInstance :: ntp_core.c:601 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:429 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+memory.c:38:[eva:malloc:weak] warning: marking variable `__malloc_SST_CreateInstance_l215_2' as weak
+stack: malloc :: memory.c:38 <-
+       Malloc :: sourcestats.c:215 <-
+       SST_CreateInstance :: sources.c:230 <-
+       SRC_CreateNewInstance :: ntp_core.c:601 <-
+       NCR_GetInstance :: test/unit/ntp_core.c:431 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: sourcestats.c:443 <-
+       estimate_asymmetry :: sourcestats.c:485 <-
+       correct_asymmetry :: sourcestats.c:560 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:452 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:459 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:461 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:473 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:480 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sourcestats.c:280:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sourcestats.c:280 <-
+       prune_register :: sourcestats.c:301 <-
+       SST_AccumulateSample :: sources.c:349 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+util.c:310:[eva:alarm] warning: function snprintf_va_10: precondition \valid(s + (0 .. n - 1)) ∨
+                                      \valid(s +
+                                             (0 .. format_length(format) - 1)) got status unknown.
+stack: snprintf_va_10 :: util.c:310 <-
+       UTI_IPToString :: sourcestats.c:595 <-
+       SST_DoNewRegression :: sources.c:350 <-
+       SRC_AccumulateSample :: ntp_core.c:1506 <-
+       process_sample :: ntp_core.c:1834 <-
+       receive_packet :: ntp_core.c:2070 <-
+       NCR_ProcessRxKnown :: test/unit/ntp_core.c:251 <-
+       process_response :: test/unit/ntp_core.c:292 <-
+       process_replay :: test/unit/ntp_core.c:482 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: keys.c:67 <-
+       free_keys :: keys.c:88 <-
+       KEY_Finalise :: test/unit/ntp_core.c:492 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:67:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&((Key *)tmp)->val);
+(tmp from ARR_GetElement(keys, i))
+stack: free_keys :: keys.c:88 <-
+       KEY_Finalise :: test/unit/ntp_core.c:492 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:67:[eva:alarm] warning: out of bounds read.
+assert \valid_read(&((Key *)tmp)->val);
+(tmp from ARR_GetElement(keys, i))
+stack: free_keys :: keys.c:88 <-
+       KEY_Finalise :: test/unit/ntp_core.c:492 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:67:[eva:alarm] warning: function free: precondition 'freeable' got status unknown.
+stack: free :: keys.c:67 <-
+       free_keys :: keys.c:88 <-
+       KEY_Finalise :: test/unit/ntp_core.c:492 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+keys.c:67:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&((Key *)tmp)->val);
+(tmp from ARR_GetElement(keys, i))
+stack: free_keys :: keys.c:88 <-
+       KEY_Finalise :: test/unit/ntp_core.c:492 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:341:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: reference.c:341 <-
+       update_drift_file :: reference.c:289 <-
+       REF_Finalise :: test/unit/ntp_core.c:493 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+FRAMAC_SHARE/libc/string.c:182:[eva:alarm] warning: function strlen: precondition 'valid_string_s' got status unknown.
+stack: strlen :: FRAMAC_SHARE/libc/string.c:182 <-
+       strcat :: reference.c:348 <-
+       update_drift_file :: reference.c:289 <-
+       REF_Finalise :: test/unit/ntp_core.c:493 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:350:[eva:alarm] warning: function fopen: precondition 'valid_filename' got status unknown.
+stack: fopen :: reference.c:350 <-
+       update_drift_file :: reference.c:289 <-
+       REF_Finalise :: test/unit/ntp_core.c:493 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:370:[eva:alarm] warning: function stat: precondition 'valid_pathname' got status unknown.
+stack: stat :: reference.c:370 <-
+       update_drift_file :: reference.c:289 <-
+       REF_Finalise :: test/unit/ntp_core.c:493 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:371:[eva:alarm] warning: function chown: precondition 'valid_string_path' got status unknown.
+stack: chown :: reference.c:371 <-
+       update_drift_file :: reference.c:289 <-
+       REF_Finalise :: test/unit/ntp_core.c:493 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_old_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:289 <-
+       REF_Finalise :: test/unit/ntp_core.c:493 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:380:[eva:alarm] warning: function rename: precondition 'valid_new_name' got status unknown.
+stack: rename :: reference.c:380 <-
+       update_drift_file :: reference.c:289 <-
+       REF_Finalise :: test/unit/ntp_core.c:493 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+reference.c:381:[eva:alarm] warning: function unlink: precondition 'valid_string_path' got status unknown.
+stack: unlink :: reference.c:381 <-
+       update_drift_file :: reference.c:289 <-
+       REF_Finalise :: test/unit/ntp_core.c:493 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: sched.c:201 <-
+       SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:204:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ptr->handler);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:204:[eva:alarm] warning: out of bounds read. assert \valid_read(&ptr->handler);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:204:[eva:alarm] warning: pointer comparison.
+assert \pointer_comparable((void (*)())ptr->handler, (void (*)())0);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:204:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: sched.c:204 <-
+       SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:206:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->handler);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:207:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->arg);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:208:[eva:alarm] warning: out of bounds write. assert \valid(&ptr->events);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: sched.c:212 <-
+       SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:213:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&ptr->handler);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:213:[eva:alarm] warning: out of bounds read. assert \valid_read(&ptr->handler);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+sched.c:213:[eva:alarm] warning: pointer comparison.
+assert \pointer_comparable((void (*)())0, (void (*)())ptr->handler);
+stack: SCH_RemoveFileHandler :: ntp_io.c:328 <-
+       close_socket :: ntp_io.c:447 <-
+       NIO_Finalise :: test/unit/ntp_core.c:495 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:268:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: local.c:268 <-
+       LCL_RemoveParameterChangeHandler :: local.c:189 <-
+       LCL_Finalise :: test/unit/ntp_core.c:498 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:274:[eva:alarm] warning: function free: precondition 'freeable' got status unknown.
+stack: free :: local.c:274 <-
+       LCL_RemoveParameterChangeHandler :: local.c:189 <-
+       LCL_Finalise :: test/unit/ntp_core.c:498 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:188:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&change_list.next);
+stack: LCL_Finalise :: test/unit/ntp_core.c:498 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:261:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&ptr->next);
+stack: LCL_RemoveParameterChangeHandler :: local.c:189 <-
+       LCL_Finalise :: test/unit/ntp_core.c:498 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:271:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&ptr->next);
+stack: LCL_RemoveParameterChangeHandler :: local.c:189 <-
+       LCL_Finalise :: test/unit/ntp_core.c:498 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:271:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&ptr->prev);
+stack: LCL_RemoveParameterChangeHandler :: local.c:189 <-
+       LCL_Finalise :: test/unit/ntp_core.c:498 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:272:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&ptr->prev);
+stack: LCL_RemoveParameterChangeHandler :: local.c:189 <-
+       LCL_Finalise :: test/unit/ntp_core.c:498 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+local.c:272:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&ptr->next);
+stack: LCL_RemoveParameterChangeHandler :: local.c:189 <-
+       LCL_Finalise :: test/unit/ntp_core.c:498 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:364:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&((CNF_HwTsInterface *)tmp)->name);
+(tmp from ARR_GetElement(hwts_interfaces, i))
+stack: CNF_Finalise :: test/unit/ntp_core.c:499 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:364:[eva:alarm] warning: out of bounds read.
+assert \valid_read(&((CNF_HwTsInterface *)tmp)->name);
+(tmp from ARR_GetElement(hwts_interfaces, i))
+stack: CNF_Finalise :: test/unit/ntp_core.c:499 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: conf.c:364 <-
+       CNF_Finalise :: test/unit/ntp_core.c:499 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:364:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&((CNF_HwTsInterface *)tmp)->name);
+(tmp from ARR_GetElement(hwts_interfaces, i))
+stack: CNF_Finalise :: test/unit/ntp_core.c:499 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+array.c:94:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: array.c:94 <-
+       ARR_GetElement :: conf.c:368 <-
+       CNF_Finalise :: test/unit/ntp_core.c:499 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:368:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&((NTP_Source *)tmp_1)->params.name);
+(tmp_1 from ARR_GetElement(ntp_sources, i))
+stack: CNF_Finalise :: test/unit/ntp_core.c:499 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:368:[eva:alarm] warning: out of bounds read.
+assert \valid_read(&((NTP_Source *)tmp_1)->params.name);
+(tmp_1 from ARR_GetElement(ntp_sources, i))
+stack: CNF_Finalise :: test/unit/ntp_core.c:499 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+conf.c:368:[eva:alarm] warning: accessing left-value that contains escaping addresses.
+assert ¬\dangling(&((NTP_Source *)tmp_1)->params.name);
+(tmp_1 from ARR_GetElement(ntp_sources, i))
+stack: CNF_Finalise :: test/unit/ntp_core.c:499 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/test.c:70:[eva:locals-escaping] warning: locals {conf} escaping the scope of test_unit through processed_command
+test/unit/test.c:72:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Finalise, generating default assigns from the prototype
+[eva:garbled-mix] warning: Garbled mix generated during analysis:
+{{ garbled mix of &{read_from_socket} (origin: Merge {sched.c:185}) }}
+{{ garbled mix of &{__malloc_w_KEY_Reload_l235}
+  (origin: Misaligned {array.c:116}) }}
+{{ garbled mix of &{__realloc_w_realloc_array_l80_24}
+  (origin: Misaligned {keys.c:249}) }}
+{{ garbled mix of &{__realloc_w_realloc_array_l80_24}
+  (origin: Misaligned {keys.c:250}) }}
+{{ garbled mix of &{__realloc_w_realloc_array_l80_24}
+  (origin: Misaligned {keys.c:257}) }}
+{{ garbled mix of &{__realloc_w_realloc_array_l80_24}
+  (origin: Misaligned {keys.c:115}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229}
+  (origin: Misaligned {addrfilt.c:82}) }}
+{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0;
+                    __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2;
+                    __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4;
+                    __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6;
+                    __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8;
+                    __malloc_w_open_node_l137_9;
+                    __malloc_w_open_node_l137_10}
+  (origin: Arithmetic {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0;
+                    __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2;
+                    __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4;
+                    __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6;
+                    __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8;
+                    __malloc_w_open_node_l137_9;
+                    __malloc_w_open_node_l137_10}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0;
+                    __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2;
+                    __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4;
+                    __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6;
+                    __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8;
+                    __malloc_w_open_node_l137_9;
+                    __malloc_w_open_node_l137_10}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0;
+                    __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2;
+                    __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4;
+                    __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6;
+                    __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8;
+                    __malloc_w_open_node_l137_9;
+                    __malloc_w_open_node_l137_10}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_w_open_node_l137; __malloc_w_open_node_l137_0;
+                    __malloc_w_open_node_l137_1; __malloc_w_open_node_l137_2;
+                    __malloc_w_open_node_l137_3; __malloc_w_open_node_l137_4;
+                    __malloc_w_open_node_l137_5; __malloc_w_open_node_l137_6;
+                    __malloc_w_open_node_l137_7; __malloc_w_open_node_l137_8;
+                    __malloc_w_open_node_l137_9;
+                    __malloc_w_open_node_l137_10}
+  (origin: Misaligned {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520}
+  (origin: Misaligned {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229}
+  (origin: Misaligned {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0}
+  (origin: Misaligned {addrfilt.c:82}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_0}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_0}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_0}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_0}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_0}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_0}
+  (origin: Misaligned {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_0}
+  (origin: Misaligned {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2}
+  (origin: Misaligned {addrfilt.c:82}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_2}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_2}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_2}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_2}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_2}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_2}
+  (origin: Misaligned {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_2}
+  (origin: Misaligned {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1}
+  (origin: Misaligned {addrfilt.c:82}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_1}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_1}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_1}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_w_SST_CreateInstance_l215_1}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_1}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_NCR_GetInstance_l520_1}
+  (origin: Misaligned {addrfilt.c:331}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1}
+  (origin: Misaligned {addrfilt.c:326}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1}
+  (origin: Misaligned {addrfilt.c:327}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1}
+  (origin: Misaligned {addrfilt.c:329}) }}
+{{ garbled mix of &{__malloc_SRC_CreateNewInstance_l229_1}
+  (origin: Misaligned {addrfilt.c:331}) }}
diff --git a/chrony/.frama-c/chrony-ntp-core.parse/framac.ast b/chrony/.frama-c/chrony-ntp-core.parse/framac.ast
new file mode 100644
index 0000000000000000000000000000000000000000..f9b5056686fc09953dfb2a9feba8e0b0969b3605
--- /dev/null
+++ b/chrony/.frama-c/chrony-ntp-core.parse/framac.ast
@@ -0,0 +1,19177 @@
+/* Generated by Frama-C */
+#include "__fc_builtin.h"
+#include "assert.h"
+#include "ctype.h"
+#include "errno.h"
+#include "fcntl.h"
+#include "glob.c"
+#include "glob.h"
+#include "grp.h"
+#include "inttypes.h"
+#include "math.h"
+#include "netdb.c"
+#include "netdb.h"
+#include "netinet/in.h"
+#include "pwd.h"
+#include "resolv.h"
+#include "signal.h"
+#include "stdarg.h"
+#include "stdint.h"
+#include "stdio.c"
+#include "stdio.h"
+#include "stdlib.c"
+#include "stdlib.h"
+#include "string.c"
+#include "string.h"
+#include "strings.h"
+#include "stropts.h"
+#include "sys/resource.h"
+#include "sys/select.h"
+#include "sys/socket.h"
+#include "sys/stat.h"
+#include "sys/time.h"
+#include "sys/types.h"
+#include "sys/uio.h"
+#include "sys/un.h"
+#include "sys/wait.h"
+#include "syslog.h"
+#include "time.h"
+#include "unistd.h"
+enum __anonenum_LOG_Severity_1 {
+    LOGS_INFO = 0,
+    LOGS_WARN = 1,
+    LOGS_ERR = 2,
+    LOGS_FATAL = 3,
+    LOGS_DEBUG = 4
+};
+typedef enum __anonenum_LOG_Severity_1 LOG_Severity;
+typedef int LOG_FileID;
+union __anonunion_addr_3 {
+   uint32_t in4 ;
+   uint8_t in6[16] ;
+};
+struct __anonstruct_IPAddr_2 {
+   union __anonunion_addr_3 addr ;
+   uint16_t family ;
+   uint16_t _pad ;
+};
+typedef struct __anonstruct_IPAddr_2 IPAddr;
+struct __anonstruct_NTP_Remote_Address_4 {
+   IPAddr ip_addr ;
+   unsigned short port ;
+};
+typedef struct __anonstruct_NTP_Remote_Address_4 NTP_Remote_Address;
+struct __anonstruct_NTP_Local_Address_5 {
+   IPAddr ip_addr ;
+   int if_index ;
+   int sock_fd ;
+};
+typedef struct __anonstruct_NTP_Local_Address_5 NTP_Local_Address;
+struct __anonstruct_NTP_int64_6 {
+   uint32_t hi ;
+   uint32_t lo ;
+};
+typedef struct __anonstruct_NTP_int64_6 NTP_int64;
+typedef uint32_t NTP_int32;
+enum __anonenum_NTP_Leap_7 {
+    LEAP_Normal = 0,
+    LEAP_InsertSecond = 1,
+    LEAP_DeleteSecond = 2,
+    LEAP_Unsynchronised = 3
+};
+typedef enum __anonenum_NTP_Leap_7 NTP_Leap;
+enum __anonenum_NTP_Mode_8 {
+    MODE_UNDEFINED = 0,
+    MODE_ACTIVE = 1,
+    MODE_PASSIVE = 2,
+    MODE_CLIENT = 3,
+    MODE_SERVER = 4,
+    MODE_BROADCAST = 5
+};
+typedef enum __anonenum_NTP_Mode_8 NTP_Mode;
+struct __anonstruct_NTP_Packet_9 {
+   uint8_t lvm ;
+   uint8_t stratum ;
+   int8_t poll ;
+   int8_t precision ;
+   NTP_int32 root_delay ;
+   NTP_int32 root_dispersion ;
+   NTP_int32 reference_id ;
+   NTP_int64 reference_ts ;
+   NTP_int64 originate_ts ;
+   NTP_int64 receive_ts ;
+   NTP_int64 transmit_ts ;
+   NTP_int32 auth_keyid ;
+   uint8_t auth_data[(4 + 64) - 4] ;
+};
+typedef struct __anonstruct_NTP_Packet_9 NTP_Packet;
+struct __anonstruct_NTP_Receive_Buffer_10 {
+   NTP_Packet ntp_pkt ;
+   uint8_t extensions[1024] ;
+};
+typedef struct __anonstruct_NTP_Receive_Buffer_10 NTP_Receive_Buffer;
+struct __anonstruct_NTP_Sample_11 {
+   struct timespec time ;
+   double offset ;
+   double peer_delay ;
+   double peer_dispersion ;
+   double root_delay ;
+   double root_dispersion ;
+   int stratum ;
+   NTP_Leap leap ;
+};
+typedef struct __anonstruct_NTP_Sample_11 NTP_Sample;
+struct __anonstruct_Timespec_12 {
+   uint32_t tv_sec_high ;
+   uint32_t tv_sec_low ;
+   uint32_t tv_nsec ;
+};
+typedef struct __anonstruct_Timespec_12 Timespec;
+struct __anonstruct_Float_13 {
+   int32_t f ;
+};
+typedef struct __anonstruct_Float_13 Float;
+struct ADF_AuthTableInst;
+typedef struct ADF_AuthTableInst *ADF_AuthTable;
+enum __anonenum_ADF_Status_5 {
+    ADF_SUCCESS = 0,
+    ADF_BADSUBNET = 1
+};
+typedef enum __anonenum_ADF_Status_5 ADF_Status;
+enum __anonenum_State_6 {
+    DENY = 0,
+    ALLOW = 1,
+    AS_PARENT = 2
+};
+typedef enum __anonenum_State_6 State;
+struct _TableNode {
+   State state ;
+   struct _TableNode *extended ;
+};
+typedef struct _TableNode TableNode;
+struct ADF_AuthTableInst {
+   TableNode base4 ;
+   TableNode base6 ;
+};
+struct ARR_Instance_Record;
+typedef struct ARR_Instance_Record *ARR_Instance;
+struct ARR_Instance_Record {
+   void *data ;
+   unsigned int elem_size ;
+   unsigned int used ;
+   unsigned int allocated ;
+};
+enum __anonenum_mode_12 {
+    RPT_NTP_CLIENT = 0,
+    RPT_NTP_PEER = 1,
+    RPT_LOCAL_REFERENCE = 2
+};
+enum __anonenum_state_13 {
+    RPT_SYNC = 0,
+    RPT_UNREACH = 1,
+    RPT_FALSETICKER = 2,
+    RPT_JITTERY = 3,
+    RPT_CANDIDATE = 4,
+    RPT_OUTLIER = 5
+};
+struct __anonstruct_RPT_SourceReport_11 {
+   IPAddr ip_addr ;
+   int stratum ;
+   int poll ;
+   enum __anonenum_mode_12 mode ;
+   enum __anonenum_state_13 state ;
+   int sel_options ;
+   int reachability ;
+   unsigned long latest_meas_ago ;
+   double orig_latest_meas ;
+   double latest_meas ;
+   double latest_meas_err ;
+};
+typedef struct __anonstruct_RPT_SourceReport_11 RPT_SourceReport;
+struct __anonstruct_RPT_TrackingReport_14 {
+   uint32_t ref_id ;
+   IPAddr ip_addr ;
+   int stratum ;
+   NTP_Leap leap_status ;
+   struct timespec ref_time ;
+   double current_correction ;
+   double last_offset ;
+   double rms_offset ;
+   double freq_ppm ;
+   double resid_freq_ppm ;
+   double skew_ppm ;
+   double root_delay ;
+   double root_dispersion ;
+   double last_update_interval ;
+};
+typedef struct __anonstruct_RPT_TrackingReport_14 RPT_TrackingReport;
+struct __anonstruct_RPT_SourcestatsReport_15 {
+   uint32_t ref_id ;
+   IPAddr ip_addr ;
+   unsigned long n_samples ;
+   unsigned long n_runs ;
+   unsigned long span_seconds ;
+   double resid_freq_ppm ;
+   double skew_ppm ;
+   double sd ;
+   double est_offset ;
+   double est_offset_err ;
+};
+typedef struct __anonstruct_RPT_SourcestatsReport_15 RPT_SourcestatsReport;
+struct __anonstruct_RPT_ClientAccessByIndex_Report_17 {
+   IPAddr ip_addr ;
+   uint32_t ntp_hits ;
+   uint32_t cmd_hits ;
+   uint16_t ntp_drops ;
+   uint16_t cmd_drops ;
+   int8_t ntp_interval ;
+   int8_t cmd_interval ;
+   int8_t ntp_timeout_interval ;
+   uint32_t last_ntp_hit_ago ;
+   uint32_t last_cmd_hit_ago ;
+};
+typedef struct __anonstruct_RPT_ClientAccessByIndex_Report_17 RPT_ClientAccessByIndex_Report;
+struct __anonstruct_RPT_ServerStatsReport_18 {
+   uint32_t ntp_hits ;
+   uint32_t cmd_hits ;
+   uint32_t ntp_drops ;
+   uint32_t cmd_drops ;
+   uint32_t log_drops ;
+};
+typedef struct __anonstruct_RPT_ServerStatsReport_18 RPT_ServerStatsReport;
+struct __anonstruct_RPT_SmoothingReport_21 {
+   int active ;
+   int leap_only ;
+   double offset ;
+   double freq_ppm ;
+   double wander_ppm ;
+   double last_update_ago ;
+   double remaining_time ;
+};
+typedef struct __anonstruct_RPT_SmoothingReport_21 RPT_SmoothingReport;
+struct __anonstruct_RPT_NTPReport_22 {
+   IPAddr remote_addr ;
+   IPAddr local_addr ;
+   uint16_t remote_port ;
+   uint8_t leap ;
+   uint8_t version ;
+   uint8_t mode ;
+   uint8_t stratum ;
+   int8_t poll ;
+   int8_t precision ;
+   double root_delay ;
+   double root_dispersion ;
+   uint32_t ref_id ;
+   struct timespec ref_time ;
+   double offset ;
+   double peer_delay ;
+   double peer_dispersion ;
+   double response_time ;
+   double jitter_asymmetry ;
+   uint16_t tests ;
+   int interleaved ;
+   int authenticated ;
+   char tx_tss_char ;
+   char rx_tss_char ;
+   uint32_t total_tx_count ;
+   uint32_t total_rx_count ;
+   uint32_t total_valid_count ;
+};
+typedef struct __anonstruct_RPT_NTPReport_22 RPT_NTPReport;
+enum __anonenum_REF_LeapMode_23 {
+    REF_LeapModeSystem = 0,
+    REF_LeapModeSlew = 1,
+    REF_LeapModeStep = 2,
+    REF_LeapModeIgnore = 3
+};
+typedef enum __anonenum_REF_LeapMode_23 REF_LeapMode;
+enum __anonenum_REF_Mode_24 {
+    REF_ModeNormal = 0,
+    REF_ModeInitStepSlew = 1,
+    REF_ModeUpdateOnce = 2,
+    REF_ModePrintOnce = 3,
+    REF_ModeIgnore = 4
+};
+typedef enum __anonenum_REF_Mode_24 REF_Mode;
+enum __anonenum_CNF_HwTs_RxFilter_25 {
+    CNF_HWTS_RXFILTER_ANY = 0,
+    CNF_HWTS_RXFILTER_NONE = 1,
+    CNF_HWTS_RXFILTER_NTP = 2,
+    CNF_HWTS_RXFILTER_ALL = 3
+};
+typedef enum __anonenum_CNF_HwTs_RxFilter_25 CNF_HwTs_RxFilter;
+struct __anonstruct_CNF_HwTsInterface_26 {
+   char *name ;
+   int minpoll ;
+   int min_samples ;
+   int max_samples ;
+   int nocrossts ;
+   CNF_HwTs_RxFilter rxfilter ;
+   double precision ;
+   double tx_comp ;
+   double rx_comp ;
+};
+typedef struct __anonstruct_CNF_HwTsInterface_26 CNF_HwTsInterface;
+struct __anonstruct_Record_80 {
+   IPAddr ip_addr ;
+   uint32_t last_ntp_hit ;
+   uint32_t last_cmd_hit ;
+   uint32_t ntp_hits ;
+   uint32_t cmd_hits ;
+   uint16_t ntp_drops ;
+   uint16_t cmd_drops ;
+   uint16_t ntp_tokens ;
+   uint16_t cmd_tokens ;
+   int8_t ntp_rate ;
+   int8_t cmd_rate ;
+   int8_t ntp_timeout_rate ;
+   uint8_t flags ;
+   NTP_int64 ntp_rx_ts ;
+   NTP_int64 ntp_tx_ts ;
+};
+typedef struct __anonstruct_Record_80 Record;
+typedef struct SST_Stats_Record *SST_Stats;
+typedef struct SRC_Instance_Record *SRC_Instance;
+enum __anonenum_SRC_Type_23 {
+    SRC_NTP = 0,
+    SRC_REFCLOCK = 1
+};
+typedef enum __anonenum_SRC_Type_23 SRC_Type;
+enum __anonenum_SRC_Connectivity_24 {
+    SRC_OFFLINE = 0,
+    SRC_ONLINE = 1,
+    SRC_MAYBE_ONLINE = 2
+};
+typedef enum __anonenum_SRC_Connectivity_24 SRC_Connectivity;
+struct __anonstruct_SourceParameters_25 {
+   int minpoll ;
+   int maxpoll ;
+   SRC_Connectivity connectivity ;
+   int auto_offline ;
+   int presend_minpoll ;
+   int burst ;
+   int iburst ;
+   int min_stratum ;
+   int poll_target ;
+   int version ;
+   int max_sources ;
+   int min_samples ;
+   int max_samples ;
+   int filter_length ;
+   int interleaved ;
+   int sel_options ;
+   uint32_t authkey ;
+   double max_delay ;
+   double max_delay_ratio ;
+   double max_delay_dev_ratio ;
+   double min_delay ;
+   double asymmetry ;
+   double offset ;
+};
+typedef struct __anonstruct_SourceParameters_25 SourceParameters;
+struct __anonstruct_CPS_NTP_Source_26 {
+   char *name ;
+   unsigned short port ;
+   SourceParameters params ;
+};
+typedef struct __anonstruct_CPS_NTP_Source_26 CPS_NTP_Source;
+enum __anonenum_DNS_Status_27 {
+    DNS_Success = 0,
+    DNS_TryAgain = 1,
+    DNS_Failure = 2
+};
+typedef enum __anonenum_DNS_Status_27 DNS_Status;
+enum __anonenum_NTP_Source_Type_30 {
+    NTP_SERVER = 0,
+    NTP_PEER = 1
+};
+typedef enum __anonenum_NTP_Source_Type_30 NTP_Source_Type;
+enum __anonenum_NTP_Timestamp_Source_31 {
+    NTP_TS_DAEMON = 0,
+    NTP_TS_KERNEL = 1,
+    NTP_TS_HARDWARE = 2
+};
+typedef enum __anonenum_NTP_Timestamp_Source_31 NTP_Timestamp_Source;
+struct __anonstruct_NTP_Local_Timestamp_32 {
+   struct timespec ts ;
+   double err ;
+   NTP_Timestamp_Source source ;
+};
+typedef struct __anonstruct_NTP_Local_Timestamp_32 NTP_Local_Timestamp;
+typedef struct NCR_Instance_Record *NCR_Instance;
+enum __anonenum_NSR_Status_33 {
+    NSR_Success = 0,
+    NSR_NoSuchSource = 1,
+    NSR_AlreadyInUse = 2,
+    NSR_TooManySources = 3,
+    NSR_InvalidAF = 4
+};
+typedef enum __anonenum_NSR_Status_33 NSR_Status;
+struct __anonstruct_RefclockParameters_34 {
+   char *driver_name ;
+   char *driver_parameter ;
+   int driver_poll ;
+   int poll ;
+   int filter_length ;
+   int pps_forced ;
+   int pps_rate ;
+   int min_samples ;
+   int max_samples ;
+   int sel_options ;
+   int max_lock_age ;
+   int stratum ;
+   int tai ;
+   uint32_t ref_id ;
+   uint32_t lock_ref_id ;
+   double offset ;
+   double delay ;
+   double precision ;
+   double max_dispersion ;
+   double pulse_width ;
+};
+typedef struct __anonstruct_RefclockParameters_34 RefclockParameters;
+struct __anonstruct_NTP_Source_91 {
+   NTP_Source_Type type ;
+   int pool ;
+   CPS_NTP_Source params ;
+};
+typedef struct __anonstruct_NTP_Source_91 NTP_Source;
+struct _AllowDeny {
+   IPAddr ip ;
+   int subnet_bits ;
+   int all ;
+   int allow ;
+};
+typedef struct _AllowDeny AllowDeny;
+struct __anonstruct_NTP_Broadcast_Destination_92 {
+   IPAddr addr ;
+   unsigned short port ;
+   int interval ;
+};
+typedef struct __anonstruct_NTP_Broadcast_Destination_92 NTP_Broadcast_Destination;
+typedef uint32_t UINT4;
+struct __anonstruct_MD5_CTX_63 {
+   UINT4 i[2] ;
+   UINT4 buf[4] ;
+   unsigned char in[64] ;
+   unsigned char digest[16] ;
+};
+typedef struct __anonstruct_MD5_CTX_63 MD5_CTX;
+enum __anonenum_LCL_ChangeType_83 {
+    LCL_ChangeAdjust = 0,
+    LCL_ChangeStep = 1,
+    LCL_ChangeUnknownStep = 2
+};
+typedef enum __anonenum_LCL_ChangeType_83 LCL_ChangeType;
+struct __anonstruct_Key_85 {
+   uint32_t id ;
+   char *val ;
+   int len ;
+   int hash_id ;
+   int auth_delay ;
+};
+typedef struct __anonstruct_Key_85 Key;
+struct _ChangeListEntry {
+   struct _ChangeListEntry *next ;
+   struct _ChangeListEntry *prev ;
+   void (*handler)(struct timespec *raw, struct timespec *cooked,
+                   double dfreq, double doffset, LCL_ChangeType change_type,
+                   void *anything) ;
+   void *anything ;
+};
+typedef struct _ChangeListEntry ChangeListEntry;
+struct _DispersionNotifyListEntry {
+   struct _DispersionNotifyListEntry *next ;
+   struct _DispersionNotifyListEntry *prev ;
+   void (*handler)(double dispersion, void *anything) ;
+   void *anything ;
+};
+typedef struct _DispersionNotifyListEntry DispersionNotifyListEntry;
+typedef unsigned int SCH_TimeoutID;
+enum __anonenum_SCH_TimeoutClass_30 {
+    SCH_ReservedTimeoutValue = 0,
+    SCH_NtpClientClass = 1,
+    SCH_NtpPeerClass = 2,
+    SCH_NtpBroadcastClass = 3,
+    SCH_NumberOfClasses = 4
+};
+typedef enum __anonenum_SCH_TimeoutClass_30 SCH_TimeoutClass;
+typedef void *SCH_ArbitraryArgument;
+union sockaddr_in46 {
+   struct sockaddr_in in4 ;
+   struct sockaddr u ;
+};
+struct Message {
+   union sockaddr_in46 name ;
+   struct iovec iov ;
+   NTP_Receive_Buffer buf ;
+   struct cmsghdr cmsgbuf[(unsigned long)256 / sizeof(struct cmsghdr)] ;
+};
+struct MessageHeader {
+   struct msghdr msg_hdr ;
+   unsigned int msg_len ;
+};
+struct fb_drift {
+   double freq ;
+   double secs ;
+};
+struct __anonstruct_FileHandlerEntry_66 {
+   void (*handler)(int fd, int event, SCH_ArbitraryArgument ) ;
+   SCH_ArbitraryArgument arg ;
+   int events ;
+};
+typedef struct __anonstruct_FileHandlerEntry_66 FileHandlerEntry;
+struct _TimerQueueEntry {
+   struct _TimerQueueEntry *next ;
+   struct _TimerQueueEntry *prev ;
+   struct timespec ts ;
+   SCH_TimeoutID id ;
+   SCH_TimeoutClass class ;
+   void (*handler)(SCH_ArbitraryArgument ) ;
+   SCH_ArbitraryArgument arg ;
+};
+typedef struct _TimerQueueEntry TimerQueueEntry;
+struct stage {
+   double wander ;
+   double length ;
+};
+struct SelectInfo {
+   NTP_Leap leap ;
+   int stratum ;
+   int select_ok ;
+   double std_dev ;
+   double root_distance ;
+   double lo_limit ;
+   double hi_limit ;
+   double last_sample_ago ;
+};
+enum __anonenum_SRC_Status_90 {
+    SRC_OK = 0,
+    SRC_UNSELECTABLE = 1,
+    SRC_BAD_STATS = 2,
+    SRC_BAD_DISTANCE = 3,
+    SRC_JITTERY = 4,
+    SRC_WAITS_STATS = 5,
+    SRC_STALE = 6,
+    SRC_ORPHAN = 7,
+    SRC_UNTRUSTED = 8,
+    SRC_FALSETICKER = 9,
+    SRC_WAITS_SOURCES = 10,
+    SRC_NONPREFERRED = 11,
+    SRC_WAITS_UPDATE = 12,
+    SRC_DISTANT = 13,
+    SRC_OUTLIER = 14,
+    SRC_UNSELECTED = 15,
+    SRC_SELECTED = 16
+};
+typedef enum __anonenum_SRC_Status_90 SRC_Status;
+struct SRC_Instance_Record {
+   SST_Stats stats ;
+   int index ;
+   uint32_t ref_id ;
+   IPAddr *ip_addr ;
+   int active ;
+   int reachability ;
+   int reachability_size ;
+   int updates ;
+   int distant ;
+   SRC_Status status ;
+   SRC_Type type ;
+   int sel_options ;
+   double sel_score ;
+   struct SelectInfo sel_info ;
+};
+enum __anonenum_tag_91 {
+    LOW = -1,
+    HIGH = 1
+};
+struct Sort_Element {
+   int index ;
+   double offset ;
+   enum __anonenum_tag_91 tag ;
+};
+struct SST_Stats_Record {
+   uint32_t refid ;
+   IPAddr *ip_addr ;
+   int min_samples ;
+   int max_samples ;
+   double fixed_min_delay ;
+   double fixed_asymmetry ;
+   int n_samples ;
+   int runs_samples ;
+   int last_sample ;
+   int regression_ok ;
+   int best_single_sample ;
+   int min_delay_sample ;
+   double estimated_offset ;
+   double estimated_offset_sd ;
+   struct timespec offset_time ;
+   int nruns ;
+   int asymmetry_run ;
+   double asymmetry ;
+   double estimated_frequency ;
+   double estimated_frequency_sd ;
+   double skew ;
+   double std_dev ;
+   struct timespec sample_times[64 * 2] ;
+   double offsets[64 * 2] ;
+   double orig_offsets[64] ;
+   double peer_delays[64 * 2] ;
+   double peer_dispersions[64] ;
+   double root_delays[64] ;
+   double root_dispersions[64] ;
+   int stratum ;
+   NTP_Leap leap ;
+};
+struct DNS_Async_Instance {
+   char const *name ;
+   void (*handler)(DNS_Status status, int n_addrs, IPAddr *ip_addrs,
+                   void *anything) ;
+   void *arg ;
+   int pipe[2] ;
+};
+struct SPF_Instance_Record;
+typedef struct SPF_Instance_Record *SPF_Instance;
+enum __anonenum_OperatingMode_90 {
+    MD_OFFLINE = 0,
+    MD_ONLINE = 1,
+    MD_BURST_WAS_OFFLINE = 2,
+    MD_BURST_WAS_ONLINE = 3
+};
+typedef enum __anonenum_OperatingMode_90 OperatingMode;
+enum __anonenum_AuthenticationMode_91 {
+    AUTH_NONE = 0,
+    AUTH_SYMMETRIC = 1,
+    AUTH_MSSNTP = 2,
+    AUTH_MSSNTP_EXT = 3
+};
+typedef enum __anonenum_AuthenticationMode_91 AuthenticationMode;
+struct NCR_Instance_Record {
+   NTP_Remote_Address remote_addr ;
+   NTP_Local_Address local_addr ;
+   NTP_Mode mode ;
+   int interleaved ;
+   OperatingMode opmode ;
+   SCH_TimeoutID rx_timeout_id ;
+   SCH_TimeoutID tx_timeout_id ;
+   int tx_suspended ;
+   int auto_burst ;
+   int auto_offline ;
+   int local_poll ;
+   int remote_poll ;
+   int remote_stratum ;
+   int presend_minpoll ;
+   int presend_done ;
+   int minpoll ;
+   int maxpoll ;
+   int min_stratum ;
+   int poll_target ;
+   int version ;
+   double poll_score ;
+   double max_delay ;
+   double max_delay_ratio ;
+   double max_delay_dev_ratio ;
+   double offset_correction ;
+   AuthenticationMode auth_mode ;
+   uint32_t auth_key_id ;
+   unsigned int tx_count ;
+   int valid_rx ;
+   int valid_timestamps ;
+   NTP_int64 remote_ntp_rx ;
+   NTP_int64 remote_ntp_tx ;
+   NTP_int64 local_ntp_rx ;
+   NTP_Local_Timestamp local_rx ;
+   NTP_int64 local_ntp_tx ;
+   NTP_Local_Timestamp local_tx ;
+   NTP_Local_Timestamp prev_local_tx ;
+   int prev_local_poll ;
+   unsigned int prev_tx_count ;
+   int updated_init_timestamps ;
+   NTP_int64 init_remote_ntp_tx ;
+   NTP_Local_Timestamp init_local_rx ;
+   SRC_Instance source ;
+   SPF_Instance filter ;
+   int burst_good_samples_to_go ;
+   int burst_total_samples_to_go ;
+   RPT_NTPReport report ;
+};
+struct __anonstruct_BroadcastDestination_92 {
+   NTP_Remote_Address addr ;
+   NTP_Local_Address local_addr ;
+   int interval ;
+};
+typedef struct __anonstruct_BroadcastDestination_92 BroadcastDestination;
+extern void LOG_Initialise(void);
+
+extern void LOG_Finalise(void);
+
+extern void ( /* format attribute */ LOG_Message)(LOG_Severity severity,
+                                                  char const *format,
+                                                  void * const *__va_params);
+
+extern void LOG_SetDebugLevel(int level);
+
+extern void LOG_OpenFileLog(char const *log_file);
+
+extern LOG_FileID LOG_FileOpen(char const *name, char const *banner);
+
+extern void ( /* format attribute */ LOG_FileWrite)(LOG_FileID id,
+                                                    char const *format,
+                                                    void * const *__va_params);
+
+void lcl_InvokeDispersionNotifyHandlers(double dispersion);
+
+void lcl_RegisterSystemDrivers(double (*read_freq)(void),
+                               double (*set_freq)(double freq_ppm),
+                               void (*accrue_offset_0)(double offset,
+                                                       double corr_rate),
+                               int (*apply_step_offset_0)(double offset),
+                               void (*offset_convert_0)(struct timespec *raw,
+                                                        double *corr,
+                                                        double *err),
+                               void (*set_leap)(int leap, int tai_offset),
+                               void (*set_sync_status)(int synchronised,
+                                                       double est_error,
+                                                       double max_error));
+
+void test_unit(void);
+
+void TST_Fail(int line);
+
+void TST_SuspendLogging(void);
+
+void TST_ResumeLogging(void);
+
+double TST_GetRandomDouble(double min, double max);
+
+void TST_GetRandomAddress(IPAddr *ip, int family, int bits);
+
+void TST_SwapAddressBit(IPAddr *ip, unsigned int b);
+
+void TST_RegisterDummyDrivers(void);
+
+int HSH_GetHashId(char const *name);
+
+unsigned int HSH_Hash(int id, unsigned char const *in1, unsigned int in1_len,
+                      unsigned char const *in2, unsigned int in2_len,
+                      unsigned char *out, unsigned int out_len);
+
+void HSH_Finalise(void);
+
+void UTI_ZeroTimespec(struct timespec *ts);
+
+int UTI_IsZeroTimespec(struct timespec *ts);
+
+void UTI_TimevalToTimespec(struct timeval *tv, struct timespec *ts);
+
+void UTI_TimespecToTimeval(struct timespec *ts, struct timeval *tv);
+
+double UTI_TimespecToDouble(struct timespec *ts);
+
+void UTI_DoubleToTimespec(double d, struct timespec *ts);
+
+void UTI_NormaliseTimespec(struct timespec *ts);
+
+double UTI_TimevalToDouble(struct timeval *tv);
+
+void UTI_DoubleToTimeval(double a, struct timeval *b);
+
+void UTI_NormaliseTimeval(struct timeval *x);
+
+int UTI_CompareTimespecs(struct timespec *a, struct timespec *b);
+
+void UTI_DiffTimespecs(struct timespec *result, struct timespec *a,
+                       struct timespec *b);
+
+double UTI_DiffTimespecsToDouble(struct timespec *a, struct timespec *b);
+
+void UTI_AddDoubleToTimespec(struct timespec *start, double increment,
+                             struct timespec *end);
+
+void UTI_AverageDiffTimespecs(struct timespec *earlier,
+                              struct timespec *later,
+                              struct timespec *average, double *diff);
+
+void UTI_AddDiffToTimespec(struct timespec *a, struct timespec *b,
+                           struct timespec *c, struct timespec *result);
+
+char *UTI_TimespecToString(struct timespec *ts);
+
+char *UTI_Ntp64ToString(NTP_int64 *ntp_ts);
+
+char *UTI_RefidToString(uint32_t ref_id);
+
+char *UTI_IPToString(IPAddr *addr);
+
+int UTI_StringToIP(char const *addr, IPAddr *ip);
+
+uint32_t UTI_IPToRefid(IPAddr *ip);
+
+uint32_t UTI_IPToHash(IPAddr *ip);
+
+void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest);
+
+void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest);
+
+int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask);
+
+void UTI_SockaddrToIPAndPort(struct sockaddr *sa, IPAddr *ip,
+                             unsigned short *port);
+
+int UTI_IPAndPortToSockaddr(IPAddr *ip, unsigned short port,
+                            struct sockaddr *sa);
+
+char *UTI_SockaddrToString(struct sockaddr *sa);
+
+char const *UTI_SockaddrFamilyToString(int family);
+
+char *UTI_TimeToLogForm(time_t t);
+
+void UTI_AdjustTimespec(struct timespec *old_ts, struct timespec *when,
+                        struct timespec *new_ts, double *delta_time,
+                        double dfreq, double doffset);
+
+void UTI_GetNtp64Fuzz(NTP_int64 *ts, int precision);
+
+double UTI_Ntp32ToDouble(NTP_int32 x);
+
+NTP_int32 UTI_DoubleToNtp32(double x);
+
+void UTI_ZeroNtp64(NTP_int64 *ts);
+
+int UTI_IsZeroNtp64(NTP_int64 *ts);
+
+int UTI_CompareNtp64(NTP_int64 *a, NTP_int64 *b);
+
+int UTI_IsEqualAnyNtp64(NTP_int64 *a, NTP_int64 *b1, NTP_int64 *b2,
+                        NTP_int64 *b3);
+
+void UTI_TimespecToNtp64(struct timespec *src, NTP_int64 *dest,
+                         NTP_int64 *fuzz);
+
+void UTI_Ntp64ToTimespec(NTP_int64 *src, struct timespec *dest);
+
+int UTI_IsTimeOffsetSane(struct timespec *ts, double offset);
+
+double UTI_Log2ToDouble(int l);
+
+void UTI_TimespecNetworkToHost(Timespec *src, struct timespec *dest);
+
+void UTI_TimespecHostToNetwork(struct timespec *src, Timespec *dest);
+
+double UTI_FloatNetworkToHost(Float f);
+
+Float UTI_FloatHostToNetwork(double x);
+
+int UTI_FdSetCloexec(int fd);
+
+void UTI_SetQuitSignalsHandler(void (*handler)(int ), int ignore_sigpipe);
+
+char *UTI_PathToDir(char const *path);
+
+int UTI_CreateDirAndParents(char const *path, mode_t mode_0, uid_t uid,
+                            gid_t gid);
+
+int UTI_CheckDirPermissions(char const *path, mode_t perm, uid_t uid,
+                            gid_t gid);
+
+void UTI_DropRoot(uid_t uid, gid_t gid);
+
+void UTI_GetRandomBytesUrandom(void *buf, unsigned int len);
+
+void UTI_GetRandomBytes(void *buf, unsigned int len);
+
+/*@ requires valid_read_string(format);
+    assigns \result, __fc_stdout->__fc_FILE_data;
+    assigns \result
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            (indirect: __fc_stdout->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param0);
+    assigns __fc_stdout->__fc_FILE_data
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))),
+            param0;
+ */
+int printf_va_1(char const * __restrict format, int param0);
+
+void TST_Fail(int line)
+{
+  printf_va_1("FAIL (on line %d)\n",line);
+  exit(1);
+  return;
+}
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..)));
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..)));
+ */
+int fprintf_va_1(FILE * __restrict stream, char const * __restrict format);
+
+/*@ requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, __fc_stdout->__fc_FILE_data;
+    assigns \result
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            (indirect: __fc_stdout->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..)));
+    assigns __fc_stdout->__fc_FILE_data
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))),
+            *(param0 + (0 ..));
+ */
+int printf_va_2(char const * __restrict format, char *param0);
+
+/*@ requires valid_read_string(format);
+    assigns \result, __fc_stdout->__fc_FILE_data;
+    assigns \result
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            (indirect: __fc_stdout->__fc_FILE_data),
+            (indirect: *(format + (0 ..)));
+    assigns __fc_stdout->__fc_FILE_data
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..)));
+ */
+int printf_va_3(char const * __restrict format);
+
+int main(int argc, char **argv)
+{
+  int __retres;
+  char *test_name;
+  char *s;
+  int i;
+  struct timeval tv;
+  long tmp_1;
+  int seed = 0;
+  test_name = *(argv + 0);
+  s = strrchr((char const *)test_name,'.');
+  if (s) *s = (char)'\000';
+  s = strrchr((char const *)test_name,'/');
+  if (s) test_name = s + 1;
+  i = 1;
+  while (i < argc) {
+    {
+      int tmp_0;
+      tmp_0 = strcmp((char const *)*(argv + i),"-d");
+      if (tmp_0) {
+        int tmp;
+        tmp = strcmp((char const *)*(argv + i),"-s");
+        if (tmp) {
+          _LAND: {
+                   fprintf_va_1(__fc_stderr,"Unknown option\n");
+                   exit(1);
+                 }
+        }
+        else 
+          if (i + 1 < argc) {
+            i ++;
+            ;
+            seed = atoi((char const *)*(argv + i));
+          }
+          else goto _LAND;
+      }
+      else LOG_SetDebugLevel(2);
+    }
+    i ++;
+  }
+  gettimeofday(& tv,(void *)0);
+  if (seed) tmp_1 = (long)seed;
+  else tmp_1 = tv.tv_sec ^ (long)(tv.tv_usec << 10);
+  srandom((unsigned int)tmp_1);
+  printf_va_2("Testing %-30s ",test_name);
+  fflush(__fc_stdout);
+  LOG_Initialise();
+  test_unit();
+  LOG_Finalise();
+  printf_va_3("PASS\n");
+  __retres = 0;
+  return __retres;
+}
+
+void TST_SuspendLogging(void)
+{
+  LOG_OpenFileLog("/dev/null");
+  return;
+}
+
+void TST_ResumeLogging(void)
+{
+  LOG_OpenFileLog((char const *)0);
+  return;
+}
+
+double TST_GetRandomDouble(double min, double max)
+{
+  double __retres;
+  long tmp;
+  tmp = random();
+  ;
+  __retres = min + ((double)tmp / (double)32767) * (max - min);
+  return __retres;
+}
+
+void TST_GetRandomAddress(IPAddr *ip, int family, int bits)
+{
+  if (family != 1) 
+    if (family != 2) {
+      long tmp;
+      tmp = random();
+      if (tmp % (long)2) family = 1; else family = 2;
+    }
+  ip->family = (unsigned short)family;
+  if (family == 1) {
+    if (bits < 0) bits = 32;
+    __FC_assert((bits <= 32) != 0,"test/unit/test.c",106,"bits <= 32");
+    if (bits > 16) {
+      long tmp_0;
+      long tmp_1;
+      tmp_0 = random();
+      tmp_1 = random();
+      ip->addr.in4 = ((unsigned int)tmp_0 % (1U << (bits - 16)) << 16) | 
+                     (unsigned int)tmp_1 % (1U << 16);
+    }
+    else {
+      long tmp_2;
+      tmp_2 = random();
+      ip->addr.in4 = (unsigned int)tmp_2 % (1U << bits);
+    }
+  }
+  else {
+    int i;
+    int b;
+    if (bits < 0) bits = 128;
+    __FC_assert((bits <= 128) != 0,"test/unit/test.c",118,"bits <= 128");
+    i = 0;
+    b = 120;
+    /*@ loop unroll 16; */
+    while (i < 16) {
+      if (b >= bits) ip->addr.in6[i] = (unsigned char)0;
+      else {
+        long tmp_3;
+        int tmp_4;
+        tmp_3 = random();
+        if (bits - b < 8) tmp_4 = bits - b; else tmp_4 = 8;
+        ip->addr.in6[i] = (unsigned char)(tmp_3 % (long)(1U << tmp_4));
+      }
+      i ++;
+      b -= 8;
+    }
+  }
+  return;
+}
+
+void TST_SwapAddressBit(IPAddr *ip, unsigned int b)
+{
+  if ((int)ip->family == 1) {
+    __FC_assert((b < (unsigned int)32) != 0,"test/unit/test.c",135,"b < 32");
+    ip->addr.in4 ^= 1U << ((unsigned int)31 - b);
+  }
+  else 
+    if ((int)ip->family == 2) {
+      __FC_assert((b < (unsigned int)128) != 0,"test/unit/test.c",138,
+                  "b < 128");
+      ip->addr.in6[b / (unsigned int)8] = (unsigned char)((unsigned int)ip->addr.in6[
+                                                          b / (unsigned int)8] ^ (
+                                                          1U << ((unsigned int)7 - 
+                                                                 b % (unsigned int)8)));
+    }
+    else __FC_assert(0 != 0,"test/unit/test.c",141,"0");
+  return;
+}
+
+static double read_frequency(void)
+{
+  double __retres;
+  __retres = 0.0;
+  return __retres;
+}
+
+static double set_frequency(double freq_ppm)
+{
+  double __retres;
+  __retres = 0.0;
+  return __retres;
+}
+
+static void accrue_offset(double offset, double corr_rate)
+{
+  return;
+}
+
+static int apply_step_offset(double offset)
+{
+  int __retres;
+  __retres = 0;
+  return __retres;
+}
+
+static void offset_convert(struct timespec *raw, double *corr, double *err)
+{
+  *corr = 0.0;
+  if (err) *err = 0.0;
+  return;
+}
+
+void TST_RegisterDummyDrivers(void)
+{
+  lcl_RegisterSystemDrivers(& read_frequency,& set_frequency,& accrue_offset,
+                            & apply_step_offset,& offset_convert,
+                            (void (*)(int leap, int tai_offset))0,
+                            (void (*)(int synchronised, double est_error,
+                                      double max_error))0);
+  return;
+}
+
+ADF_AuthTable ADF_CreateTable(void);
+
+ADF_Status ADF_Allow(ADF_AuthTable table, IPAddr *ip, int subnet_bits);
+
+ADF_Status ADF_AllowAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits);
+
+ADF_Status ADF_Deny(ADF_AuthTable table, IPAddr *ip, int subnet_bits);
+
+ADF_Status ADF_DenyAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits);
+
+void ADF_DestroyTable(ADF_AuthTable table);
+
+int ADF_IsAllowed(ADF_AuthTable table, IPAddr *ip_addr);
+
+int ADF_IsAnyAllowed(ADF_AuthTable table, int family);
+
+void *Malloc(size_t size);
+
+void *Realloc(void *ptr, size_t size);
+
+void *Malloc2(size_t nmemb, size_t size);
+
+void *Realloc2(void *ptr, size_t nmemb, size_t size);
+
+char *Strdup(char const *s);
+
+static void split_ip6(IPAddr *ip, uint32_t *dst)
+{
+  int i;
+  i = 0;
+  /*@ loop unroll 4; */
+  while (i < 4) {
+    *(dst + i) = ((((unsigned int)ip->addr.in6[i * 4 + 0] << 24) | (unsigned int)(
+                   (int)ip->addr.in6[i * 4 + 1] << 16)) | (unsigned int)(
+                  (int)ip->addr.in6[i * 4 + 2] << 8)) | (unsigned int)ip->addr.in6[
+                 i * 4 + 3];
+    i ++;
+  }
+  return;
+}
+
+__inline static uint32_t get_subnet(uint32_t *addr, unsigned int where)
+{
+  uint32_t __retres;
+  int off;
+  off = (int)(where / (unsigned int)32);
+  where %= (unsigned int)32;
+  __retres = (unsigned int)((unsigned long)(*(addr + off) >> ((unsigned int)(
+                                                              32 - 4) - where)) & (
+                            (1UL << 4) - (unsigned long)1));
+  return __retres;
+}
+
+ADF_AuthTable ADF_CreateTable(void)
+{
+  ADF_AuthTable result;
+  result = (ADF_AuthTable)Malloc(sizeof(struct ADF_AuthTableInst));
+  result->base4.state = DENY;
+  result->base4.extended = (struct _TableNode *)0;
+  result->base6.state = DENY;
+  result->base6.extended = (struct _TableNode *)0;
+  return result;
+}
+
+static void close_node(TableNode *node)
+{
+  int i;
+  TableNode *child_node;
+  if (node->extended != (struct _TableNode *)0) {
+    i = 0;
+    /*@ loop unroll 16; */
+    while ((unsigned long)i < 1UL << 4) {
+      child_node = node->extended + i;
+      i ++;
+    }
+    free((void *)node->extended);
+    node->extended = (struct _TableNode *)0;
+  }
+  return;
+}
+
+static void open_node(TableNode *node)
+{
+  int i;
+  TableNode *child_node;
+  if (node->extended == (struct _TableNode *)0) {
+    node->extended = (struct _TableNode *)Malloc2(1UL << 4,
+                                                  sizeof(struct _TableNode));
+    i = 0;
+    /*@ loop unroll 4; */
+    while ((unsigned long)i < 1UL << 4) {
+      child_node = node->extended + i;
+      child_node->state = AS_PARENT;
+      child_node->extended = (struct _TableNode *)0;
+      i ++;
+    }
+  }
+  return;
+}
+
+static ADF_Status set_subnet(TableNode *start_node, uint32_t *ip, int ip_len,
+                             int subnet_bits, State new_state,
+                             int delete_children)
+{
+  ADF_Status __retres;
+  int bits_to_go;
+  int bits_consumed;
+  uint32_t subnet;
+  TableNode *node;
+  bits_consumed = 0;
+  bits_to_go = subnet_bits;
+  node = start_node;
+  if (subnet_bits < 0) goto _LOR;
+  else 
+    if (subnet_bits > 32 * ip_len) {
+      _LOR: {
+              __retres = ADF_BADSUBNET;
+              goto return_label;
+            }
+    }
+    else {
+      if ((bits_to_go & (4 - 1)) == 0) {
+        /*@ loop unroll 128; */
+        while (bits_to_go > 0) {
+          subnet = get_subnet(ip,(unsigned int)bits_consumed);
+          if (! node->extended) open_node(node);
+          node = node->extended + subnet;
+          bits_to_go -= 4;
+          bits_consumed += 4;
+        }
+        if (delete_children) close_node(node);
+        node->state = new_state;
+      }
+      else {
+        int N;
+        int i;
+        int j;
+        TableNode *this_node;
+        uint32_t tmp;
+        /*@ loop unroll 124; */
+        while (bits_to_go >= 4) {
+          subnet = get_subnet(ip,(unsigned int)bits_consumed);
+          if (! node->extended) open_node(node);
+          node = node->extended + subnet;
+          bits_to_go -= 4;
+          bits_consumed += 4;
+        }
+        N = 1 << (4 - bits_to_go);
+        tmp = get_subnet(ip,(unsigned int)bits_consumed);
+        subnet = tmp & (unsigned int)(~ (N - 1));
+        __FC_assert(((unsigned long)(subnet + (uint32_t)N) <= 1UL << 4) != 0,
+                    "addrfilt.c",210,"subnet + N <= TABLE_SIZE");
+        if (! node->extended) open_node(node);
+        i = (int)subnet;
+        j = 0;
+        /*@ loop unroll 16; */
+        while (j < N) {
+          this_node = node->extended + i;
+          if (delete_children) close_node(this_node);
+          this_node->state = new_state;
+          i ++;
+          j ++;
+        }
+      }
+      __retres = ADF_SUCCESS;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+static ADF_Status set_subnet_(ADF_AuthTable table, IPAddr *ip_addr,
+                              int subnet_bits, State new_state,
+                              int delete_children)
+{
+  ADF_Status __retres;
+  uint32_t ip6[4];
+  switch ((int)ip_addr->family) {
+    ADF_Status tmp;
+    ADF_Status tmp_0;
+    ADF_Status tmp_1;
+    case 1:
+    tmp = set_subnet(& table->base4,& ip_addr->addr.in4,1,subnet_bits,
+                     new_state,delete_children);
+    __retres = tmp;
+    goto return_label;
+    case 2: split_ip6(ip_addr,ip6);
+    tmp_0 = set_subnet(& table->base6,ip6,4,subnet_bits,new_state,
+                       delete_children);
+    __retres = tmp_0;
+    goto return_label;
+    case 0: ;
+    if (subnet_bits != 0) {
+      __retres = ADF_BADSUBNET;
+      goto return_label;
+    }
+    memset((void *)(ip6),0,sizeof(ip6));
+    tmp_1 = set_subnet(& table->base4,ip6,1,0,new_state,delete_children);
+    if (tmp_1 == (unsigned int)ADF_SUCCESS) {
+      ADF_Status tmp_2;
+      tmp_2 = set_subnet(& table->base6,ip6,4,0,new_state,delete_children);
+      if (tmp_2 == (unsigned int)ADF_SUCCESS) {
+        __retres = ADF_SUCCESS;
+        goto return_label;
+      }
+    }
+    break;
+  }
+  __retres = ADF_BADSUBNET;
+  return_label: return __retres;
+}
+
+ADF_Status ADF_Allow(ADF_AuthTable table, IPAddr *ip, int subnet_bits)
+{
+  ADF_Status tmp;
+  tmp = set_subnet_(table,ip,subnet_bits,ALLOW,0);
+  return tmp;
+}
+
+ADF_Status ADF_AllowAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits)
+{
+  ADF_Status tmp;
+  tmp = set_subnet_(table,ip,subnet_bits,ALLOW,1);
+  return tmp;
+}
+
+ADF_Status ADF_Deny(ADF_AuthTable table, IPAddr *ip, int subnet_bits)
+{
+  ADF_Status tmp;
+  tmp = set_subnet_(table,ip,subnet_bits,DENY,0);
+  return tmp;
+}
+
+ADF_Status ADF_DenyAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits)
+{
+  ADF_Status tmp;
+  tmp = set_subnet_(table,ip,subnet_bits,DENY,1);
+  return tmp;
+}
+
+void ADF_DestroyTable(ADF_AuthTable table)
+{
+  close_node(& table->base4);
+  close_node(& table->base6);
+  free((void *)table);
+  return;
+}
+
+static int check_ip_in_node(TableNode *start_node, uint32_t *ip)
+{
+  uint32_t subnet;
+  TableNode *node;
+  int bits_consumed = 0;
+  int result = 0;
+  int finished = 0;
+  State state = DENY;
+  node = start_node;
+  while (1) {
+    if (node->state != (unsigned int)AS_PARENT) state = node->state;
+    if (node->extended) {
+      subnet = get_subnet(ip,(unsigned int)bits_consumed);
+      node = node->extended + subnet;
+      bits_consumed += 4;
+    }
+    else finished = 1;
+    if (! (! finished)) break;
+  }
+  switch (state) {
+    case (State)ALLOW: result = 1;
+    break;
+    case (State)DENY: result = 0;
+    break;
+    case (State)AS_PARENT: __FC_assert(0 != 0,"addrfilt.c",347,"0");
+    break;
+  }
+  return result;
+}
+
+int ADF_IsAllowed(ADF_AuthTable table, IPAddr *ip_addr)
+{
+  int __retres;
+  uint32_t ip6[4];
+  switch ((int)ip_addr->family) {
+    int tmp;
+    int tmp_0;
+    case 1: tmp = check_ip_in_node(& table->base4,& ip_addr->addr.in4);
+    __retres = tmp;
+    goto return_label;
+    case 2: split_ip6(ip_addr,ip6);
+    tmp_0 = check_ip_in_node(& table->base6,ip6);
+    __retres = tmp_0;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+int volatile nondet;
+static int is_any_allowed(TableNode *node, State parent)
+{
+  int __retres;
+  State state;
+  int i;
+  if (node->state != (unsigned int)AS_PARENT) state = node->state;
+  else state = parent;
+  __FC_assert((state != (unsigned int)AS_PARENT) != 0,"addrfilt.c",387,
+              "state != AS_PARENT");
+  if (node->extended) {
+    i = 0;
+    /*@ loop unroll 16; */
+    while ((unsigned long)i < 1UL << 4) {
+      if (nondet) {
+        __retres = 1;
+        goto return_label;
+      }
+      i ++;
+    }
+  }
+  else 
+    if (state == (unsigned int)ALLOW) {
+      __retres = 1;
+      goto return_label;
+    }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+int ADF_IsAnyAllowed(ADF_AuthTable table, int family)
+{
+  int __retres;
+  switch (family) {
+    int tmp;
+    int tmp_0;
+    case 1: tmp = is_any_allowed(& table->base4,AS_PARENT);
+    __retres = tmp;
+    goto return_label;
+    case 2: tmp_0 = is_any_allowed(& table->base6,AS_PARENT);
+    __retres = tmp_0;
+    goto return_label;
+    default: __retres = 0;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+ARR_Instance ARR_CreateInstance(unsigned int elem_size);
+
+void ARR_DestroyInstance(ARR_Instance array);
+
+void *ARR_GetNewElement(ARR_Instance array);
+
+void *ARR_GetElement(ARR_Instance array, unsigned int index_0);
+
+void *ARR_GetElements(ARR_Instance array);
+
+void ARR_AppendElement(ARR_Instance array, void *element);
+
+void ARR_SetSize(ARR_Instance array, unsigned int size);
+
+unsigned int ARR_GetSize(ARR_Instance array);
+
+ARR_Instance ARR_CreateInstance(unsigned int elem_size)
+{
+  ARR_Instance array;
+  __FC_assert((elem_size > (unsigned int)0) != 0,"array.c",47,
+              "elem_size > 0");
+  array = (ARR_Instance)Malloc(sizeof(struct ARR_Instance_Record));
+  array->data = (void *)0;
+  array->elem_size = elem_size;
+  array->used = (unsigned int)0;
+  array->allocated = (unsigned int)0;
+  return array;
+}
+
+void ARR_DestroyInstance(ARR_Instance array)
+{
+  free(array->data);
+  free((void *)array);
+  return;
+}
+
+static void realloc_array(ARR_Instance array, unsigned int min_size)
+{
+  __FC_assert((min_size <= (unsigned int)2 * min_size) != 0,"array.c",69,
+              "min_size <= 2 * min_size");
+  if (array->allocated >= min_size) 
+    if (array->allocated <= (unsigned int)2 * min_size) goto return_label;
+  if (array->allocated < min_size) 
+    while (array->allocated < min_size) 
+      if (array->allocated) array->allocated = (unsigned int)2 * array->allocated;
+      else array->allocated = (unsigned int)1;
+  else array->allocated = min_size;
+  array->data = Realloc2(array->data,(unsigned long)array->allocated,
+                         (unsigned long)array->elem_size);
+  return_label: return;
+}
+
+void *ARR_GetNewElement(ARR_Instance array)
+{
+  void *tmp;
+  (array->used) ++;
+  realloc_array(array,array->used);
+  tmp = ARR_GetElement(array,array->used - (unsigned int)1);
+  return tmp;
+}
+
+void *ARR_GetElement(ARR_Instance array, unsigned int index_0)
+{
+  void *__retres;
+  __FC_assert((index_0 < array->used) != 0,"array.c",94,
+              "index < array->used");
+  __retres = (void *)((char *)array->data + (unsigned long)index_0 * (unsigned long)array->elem_size);
+  return __retres;
+}
+
+void *ARR_GetElements(ARR_Instance array)
+{
+  void *__retres;
+  if (! array->data) {
+    __FC_assert(! array->used != 0,"array.c",103,"!array->used");
+    __retres = (void *)array;
+    goto return_label;
+  }
+  __retres = array->data;
+  return_label: return __retres;
+}
+
+void ARR_AppendElement(ARR_Instance array, void *element)
+{
+  void *e;
+  e = ARR_GetNewElement(array);
+  memcpy(e,(void const *)element,(unsigned long)array->elem_size);
+  return;
+}
+
+void ARR_SetSize(ARR_Instance array, unsigned int size)
+{
+  realloc_array(array,size);
+  array->used = size;
+  return;
+}
+
+unsigned int ARR_GetSize(ARR_Instance array)
+{
+  unsigned int __retres;
+  __retres = array->used;
+  return __retres;
+}
+
+void CLG_Initialise(void);
+
+void CLG_Finalise(void);
+
+int CLG_GetClientIndex(IPAddr *client);
+
+int CLG_LogNTPAccess(IPAddr *client, struct timespec *now);
+
+int CLG_LogCommandAccess(IPAddr *client, struct timespec *now);
+
+int CLG_LimitNTPResponseRate(int index_0);
+
+int CLG_LimitCommandResponseRate(int index_0);
+
+void CLG_GetNtpTimestamps(int index_0, NTP_int64 **rx_ts, NTP_int64 **tx_ts);
+
+int CLG_GetNtpMinPoll(void);
+
+int CLG_GetNumberOfIndices(void);
+
+int CLG_GetClientAccessReportByIndex(int index_0,
+                                     RPT_ClientAccessByIndex_Report *report,
+                                     struct timespec *now);
+
+void CLG_GetServerStatsReport(RPT_ServerStatsReport *report);
+
+void REF_Initialise(void);
+
+void REF_Finalise(void);
+
+void REF_SetMode(REF_Mode new_mode);
+
+REF_Mode REF_GetMode(void);
+
+void REF_SetModeEndHandler(void (*handler)(int result));
+
+REF_LeapMode REF_GetLeapMode(void);
+
+void REF_GetReferenceParams(struct timespec *local_time,
+                            int *is_synchronised, NTP_Leap *leap_status,
+                            int *stratum, uint32_t *ref_id,
+                            struct timespec *ref_time, double *root_delay,
+                            double *root_dispersion);
+
+void REF_SetReference(int stratum, NTP_Leap leap, int combined_sources,
+                      uint32_t ref_id, IPAddr *ref_ip,
+                      struct timespec *ref_time, double offset,
+                      double offset_sd, double frequency,
+                      double frequency_sd, double skew, double root_delay,
+                      double root_dispersion);
+
+void REF_SetManualReference(struct timespec *ref_time, double offset,
+                            double frequency, double skew);
+
+void REF_SetUnsynchronised(void);
+
+int REF_GetOurStratum(void);
+
+int REF_GetOrphanStratum(void);
+
+double REF_GetSkew(void);
+
+void REF_ModifyMaxupdateskew(double new_max_update_skew);
+
+void REF_ModifyMakestep(int limit, double threshold);
+
+void REF_EnableLocal(int stratum, double distance, int orphan);
+
+void REF_DisableLocal(void);
+
+int REF_IsLeapSecondClose(void);
+
+int REF_GetTaiOffset(struct timespec *ts);
+
+void REF_GetTrackingReport(RPT_TrackingReport *rep);
+
+void CNF_Initialise(int r, int client_only);
+
+void CNF_Finalise(void);
+
+char *CNF_GetRtcDevice(void);
+
+void CNF_ReadFile(char const *filename);
+
+void CNF_ParseLine(char const *filename, int number, char *line);
+
+void CNF_CreateDirs(uid_t uid, gid_t gid);
+
+void CNF_AddInitSources(void);
+
+void CNF_AddSources(void);
+
+void CNF_AddBroadcasts(void);
+
+void CNF_AddRefclocks(void);
+
+int CNF_GetAcquisitionPort(void);
+
+int CNF_GetNTPPort(void);
+
+char *CNF_GetDriftFile(void);
+
+char *CNF_GetLogDir(void);
+
+char *CNF_GetDumpDir(void);
+
+int CNF_GetLogBanner(void);
+
+int CNF_GetLogMeasurements(int *raw);
+
+int CNF_GetLogStatistics(void);
+
+int CNF_GetLogTracking(void);
+
+int CNF_GetLogRtc(void);
+
+int CNF_GetLogRefclocks(void);
+
+int CNF_GetLogTempComp(void);
+
+char *CNF_GetKeysFile(void);
+
+char *CNF_GetRtcFile(void);
+
+int CNF_GetManualEnabled(void);
+
+int CNF_GetCommandPort(void);
+
+int CNF_GetRtcOnUtc(void);
+
+int CNF_GetRtcSync(void);
+
+void CNF_GetMakeStep(int *limit, double *threshold);
+
+void CNF_GetMaxChange(int *delay, int *ignore, double *offset);
+
+double CNF_GetLogChange(void);
+
+void CNF_GetMailOnChange(int *enabled_0, double *threshold, char **user_0);
+
+int CNF_GetNoClientLog(void);
+
+unsigned long CNF_GetClientLogLimit(void);
+
+void CNF_GetFallbackDrifts(int *min, int *max);
+
+void CNF_GetBindAddress(int family, IPAddr *addr);
+
+void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr);
+
+void CNF_GetBindCommandAddress(int family, IPAddr *addr);
+
+char *CNF_GetBindCommandPath(void);
+
+char *CNF_GetNtpSigndSocket(void);
+
+char *CNF_GetPidFile(void);
+
+REF_LeapMode CNF_GetLeapSecMode(void);
+
+char *CNF_GetLeapSecTimezone(void);
+
+double CNF_GetMaxUpdateSkew(void);
+
+double CNF_GetMaxClockError(void);
+
+double CNF_GetMaxDrift(void);
+
+double CNF_GetCorrectionTimeRatio(void);
+
+double CNF_GetMaxSlewRate(void);
+
+double CNF_GetMaxDistance(void);
+
+double CNF_GetMaxJitter(void);
+
+double CNF_GetReselectDistance(void);
+
+double CNF_GetStratumWeight(void);
+
+double CNF_GetCombineLimit(void);
+
+int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance);
+
+void CNF_SetupAccessRestrictions(void);
+
+int CNF_GetSchedPriority(void);
+
+int CNF_GetLockMemory(void);
+
+int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak);
+
+int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak);
+
+void CNF_GetSmooth(double *max_freq_0, double *max_wander_0, int *leap_only);
+
+void CNF_GetTempComp(char **file, double *interval, char **point_file,
+                     double *T0, double *k0, double *k1, double *k2);
+
+char *CNF_GetUser(void);
+
+int CNF_GetMaxSamples(void);
+
+int CNF_GetMinSamples(void);
+
+int CNF_GetMinSources(void);
+
+double CNF_GetRtcAutotrim(void);
+
+char *CNF_GetHwclockFile(void);
+
+int CNF_GetInitSources(void);
+
+double CNF_GetInitStepThreshold(void);
+
+int CNF_GetHwTsInterface(unsigned int index_0, CNF_HwTsInterface **iface);
+
+static ARR_Instance records;
+static unsigned int slots;
+static unsigned int max_slots;
+static uint32_t ts_offset;
+static uint16_t max_ntp_tokens;
+static uint16_t max_cmd_tokens;
+static uint16_t ntp_tokens_per_packet;
+static uint16_t cmd_tokens_per_packet;
+static int ntp_token_shift;
+static int cmd_token_shift;
+static int ntp_leak_rate;
+static int cmd_leak_rate;
+static int ntp_limit_interval;
+static int active;
+static uint32_t total_ntp_hits;
+static uint32_t total_cmd_hits;
+static uint32_t total_ntp_drops;
+static uint32_t total_cmd_drops;
+static uint32_t total_record_drops;
+static int expand_hashtable(void);
+
+static int compare_ts(uint32_t x, uint32_t y)
+{
+  int __retres;
+  int tmp;
+  if (x == y) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (y == (uint32_t)0) {
+    __retres = 1;
+    goto return_label;
+  }
+  if ((int)(x - y) > 0) tmp = 1; else tmp = -1;
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+static Record *get_record(IPAddr *ip)
+{
+  Record *__retres;
+  unsigned int first;
+  unsigned int i;
+  time_t last_hit;
+  Record *record;
+  Record *oldest_record;
+  uint32_t tmp_4;
+  uint32_t tmp_5;
+  uint16_t tmp_6;
+  int8_t tmp_7;
+  time_t oldest_hit = (long)0;
+  if (! active) {
+    __retres = (Record *)0;
+    goto return_label;
+  }
+  else 
+    if ((int)ip->family != 1) 
+      if ((int)ip->family != 2) {
+        __retres = (Record *)0;
+        goto return_label;
+      }
+  while (1) {
+    {
+      uint32_t tmp;
+      int tmp_3;
+      tmp = UTI_IPToHash(ip);
+      first = (tmp % slots) * (1U << 4);
+      i = (unsigned int)0;
+      oldest_record = (Record *)0;
+      while (i < 1U << 4) {
+        {
+          int tmp_0;
+          int tmp_1;
+          record = (Record *)ARR_GetElement(records,first + i);
+          tmp_0 = UTI_CompareIPs(ip,& record->ip_addr,(IPAddr *)0);
+          if (! tmp_0) {
+            __retres = record;
+            goto return_label;
+          }
+          if ((int)record->ip_addr.family == 0) break;
+          tmp_1 = compare_ts(record->last_ntp_hit,record->last_cmd_hit);
+          if (tmp_1 > 0) last_hit = (long)record->last_ntp_hit;
+          else last_hit = (long)record->last_cmd_hit;
+          if (! oldest_record) goto _LOR;
+          else {
+            int tmp_2;
+            tmp_2 = compare_ts((unsigned int)oldest_hit,
+                               (unsigned int)last_hit);
+            if (tmp_2 > 0) goto _LOR;
+            else 
+              if (oldest_hit == last_hit) 
+                if (record->ntp_hits + record->cmd_hits < oldest_record->ntp_hits + oldest_record->cmd_hits) {
+                  _LOR: {
+                          oldest_record = record;
+                          oldest_hit = last_hit;
+                        }
+                }
+          }
+        }
+        i ++;
+      }
+      if ((int)record->ip_addr.family == 0) break;
+      tmp_3 = expand_hashtable();
+      if (tmp_3) continue;
+      record = oldest_record;
+      total_record_drops += (uint32_t)1;
+      break;
+    }
+  }
+  record->ip_addr = *ip;
+  tmp_4 = (unsigned int)0;
+  record->last_cmd_hit = tmp_4;
+  record->last_ntp_hit = tmp_4;
+  tmp_5 = (unsigned int)0;
+  record->cmd_hits = tmp_5;
+  record->ntp_hits = tmp_5;
+  tmp_6 = (unsigned short)0;
+  record->cmd_drops = tmp_6;
+  record->ntp_drops = tmp_6;
+  record->ntp_tokens = max_ntp_tokens;
+  record->cmd_tokens = max_cmd_tokens;
+  tmp_7 = (signed char)(-128);
+  record->cmd_rate = tmp_7;
+  record->ntp_rate = tmp_7;
+  record->ntp_timeout_rate = (signed char)(-128);
+  record->flags = (unsigned char)0;
+  UTI_ZeroNtp64(& record->ntp_rx_ts);
+  UTI_ZeroNtp64(& record->ntp_tx_ts);
+  __retres = record;
+  return_label: return __retres;
+}
+
+static int expand_hashtable(void)
+{
+  int __retres;
+  ARR_Instance old_records;
+  Record *old_record;
+  Record *new_record;
+  unsigned int i;
+  old_records = records;
+  if ((unsigned int)2 * slots > max_slots) {
+    __retres = 0;
+    goto return_label;
+  }
+  records = ARR_CreateInstance((unsigned int)sizeof(Record));
+  if ((unsigned int)1 > (unsigned int)2 * slots) slots = (unsigned int)1;
+  else slots = (unsigned int)2 * slots;
+  __FC_assert((slots <= max_slots) != 0,"clientlog.c",245,
+              "slots <= max_slots");
+  ARR_SetSize(records,slots * (1U << 4));
+  i = (unsigned int)0;
+  while (i < slots * (1U << 4)) {
+    new_record = (Record *)ARR_GetElement(records,i);
+    new_record->ip_addr.family = (unsigned short)0;
+    i ++;
+  }
+  if (! old_records) {
+    __retres = 1;
+    goto return_label;
+  }
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp;
+    tmp = ARR_GetSize(old_records);
+    ;
+    if (! (i < tmp)) break;
+    old_record = (Record *)ARR_GetElement(old_records,i);
+    if ((int)old_record->ip_addr.family == 0) goto __Cont;
+    new_record = get_record(& old_record->ip_addr);
+    __FC_assert(new_record != (Record *)0,"clientlog.c",266,"new_record");
+    *new_record = *old_record;
+    __Cont: i ++;
+  }
+  ARR_DestroyInstance(old_records);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static void set_bucket_params(int interval, int burst, uint16_t *max_tokens,
+                              uint16_t *tokens_per_packet, int *token_shift)
+{
+  int tmp;
+  int tmp_1;
+  if (interval < 12) tmp = interval; else tmp = 12;
+  if (-15 - 4 > tmp) interval = -15 - 4;
+  else {
+    int tmp_0;
+    if (interval < 12) tmp_0 = interval; else tmp_0 = 12;
+    interval = tmp_0;
+  }
+  if (burst < 255) tmp_1 = burst; else tmp_1 = 255;
+  if (1 > tmp_1) burst = 1;
+  else {
+    int tmp_2;
+    if (burst < 255) tmp_2 = burst; else tmp_2 = 255;
+    burst = tmp_2;
+  }
+  if (interval >= -4) {
+    *token_shift = 0;
+    while (*token_shift < interval + 4) {
+      if ((unsigned int)(burst << ((4 + interval) - *token_shift)) < 1U << 16) 
+        break;
+      (*token_shift) ++;
+    }
+  }
+  else {
+    *token_shift = interval + 4;
+    *tokens_per_packet = (unsigned short)1;
+    if (1U << - *token_shift > (unsigned int)burst) burst = (int)(1U << - *token_shift);
+    else burst = burst;
+  }
+  *tokens_per_packet = (unsigned short)(1U << ((4 + interval) - *token_shift));
+  *max_tokens = (unsigned short)((int)*tokens_per_packet * burst);
+  return;
+}
+
+void CLG_Initialise(void)
+{
+  int interval;
+  int burst;
+  int leak_rate;
+  int tmp_3;
+  int tmp_6;
+  int tmp_8;
+  int tmp_7;
+  unsigned long tmp_9;
+  unsigned int tmp_10;
+  max_cmd_tokens = (unsigned short)0;
+  max_ntp_tokens = max_cmd_tokens;
+  cmd_tokens_per_packet = (unsigned short)0;
+  ntp_tokens_per_packet = cmd_tokens_per_packet;
+  cmd_token_shift = 0;
+  ntp_token_shift = cmd_token_shift;
+  cmd_leak_rate = 0;
+  ntp_leak_rate = cmd_leak_rate;
+  ntp_limit_interval = -15 - 4;
+  tmp_3 = CNF_GetNTPRateLimit(& interval,& burst,& leak_rate);
+  if (tmp_3) {
+    int tmp;
+    int tmp_1;
+    set_bucket_params(interval,burst,& max_ntp_tokens,
+                      & ntp_tokens_per_packet,& ntp_token_shift);
+    if (leak_rate < 4) tmp = leak_rate; else tmp = 4;
+    if (1 > tmp) ntp_leak_rate = 1;
+    else {
+      int tmp_0;
+      if (leak_rate < 4) tmp_0 = leak_rate; else tmp_0 = 4;
+      ntp_leak_rate = tmp_0;
+    }
+    if (interval < 12) tmp_1 = interval; else tmp_1 = 12;
+    if (-15 - 4 > tmp_1) ntp_limit_interval = -15 - 4;
+    else {
+      int tmp_2;
+      if (interval < 12) tmp_2 = interval; else tmp_2 = 12;
+      ntp_limit_interval = tmp_2;
+    }
+  }
+  tmp_6 = CNF_GetCommandRateLimit(& interval,& burst,& leak_rate);
+  if (tmp_6) {
+    int tmp_4;
+    set_bucket_params(interval,burst,& max_cmd_tokens,
+                      & cmd_tokens_per_packet,& cmd_token_shift);
+    if (leak_rate < 4) tmp_4 = leak_rate; else tmp_4 = 4;
+    if (1 > tmp_4) cmd_leak_rate = 1;
+    else {
+      int tmp_5;
+      if (leak_rate < 4) tmp_5 = leak_rate; else tmp_5 = 4;
+      cmd_leak_rate = tmp_5;
+    }
+  }
+  tmp_7 = CNF_GetNoClientLog();
+  if (tmp_7) tmp_8 = 0; else tmp_8 = 1;
+  active = tmp_8;
+  if (! active) {
+    if (ntp_leak_rate) goto _LOR;
+    else 
+      if (cmd_leak_rate) {
+        _LOR:
+        {
+          {
+            void *__va_args[1] = {(void *)0};
+            LOG_Message(LOGS_FATAL,
+                        "ratelimit cannot be used with noclientlog",
+                        (void * const *)(__va_args));
+          }
+          exit(1);
+        }
+      }
+    goto return_label;
+  }
+  tmp_9 = CNF_GetClientLogLimit();
+  max_slots = (unsigned int)(tmp_9 / (((sizeof(Record) * (unsigned long)(
+                                        1U << 4)) * (unsigned long)3) / (unsigned long)2));
+  if (max_slots < 1U << (24 - 4)) tmp_10 = max_slots;
+  else tmp_10 = 1U << (24 - 4);
+  if ((unsigned int)1 > tmp_10) max_slots = (unsigned int)1;
+  else {
+    unsigned int tmp_11;
+    if (max_slots < 1U << (24 - 4)) tmp_11 = max_slots;
+    else tmp_11 = 1U << (24 - 4);
+    max_slots = tmp_11;
+  }
+  slots = (unsigned int)0;
+  records = (struct ARR_Instance_Record *)0;
+  expand_hashtable();
+  UTI_GetRandomBytes((void *)(& ts_offset),(unsigned int)sizeof(ts_offset));
+  ts_offset %= 1000000000U / (1U << 4);
+  return_label: return;
+}
+
+void CLG_Finalise(void)
+{
+  if (! active) goto return_label;
+  ARR_DestroyInstance(records);
+  return_label: return;
+}
+
+static uint32_t get_ts_from_timespec(struct timespec *ts)
+{
+  uint32_t __retres;
+  uint32_t sec = (unsigned int)ts->tv_sec;
+  uint32_t nsec = (unsigned int)ts->tv_nsec;
+  nsec += ts_offset;
+  if (nsec >= 1000000000U) {
+    nsec -= 1000000000U;
+    sec += (uint32_t)1;
+  }
+  __retres = (sec << 4) | (140740U * (nsec >> 15) >> (32 - 4));
+  return __retres;
+}
+
+static void update_record(struct timespec *now, uint32_t *last_hit,
+                          uint32_t *hits, uint16_t *tokens,
+                          uint32_t max_tokens, int token_shift, int8_t *rate)
+{
+  uint32_t interval;
+  uint32_t now_ts;
+  uint32_t prev_hit;
+  uint32_t new_tokens;
+  int interval2;
+  now_ts = get_ts_from_timespec(now);
+  prev_hit = *last_hit;
+  *last_hit = now_ts;
+  *hits += (uint32_t)1;
+  interval = now_ts - prev_hit;
+  if (prev_hit == (uint32_t)0) goto return_label;
+  else 
+    if ((int)interval < 0) goto return_label;
+  if (token_shift >= 0) new_tokens = (now_ts >> token_shift) - (prev_hit >> token_shift);
+  else 
+    if (now_ts - prev_hit > max_tokens) new_tokens = max_tokens;
+    else new_tokens = (now_ts - prev_hit) << - token_shift;
+  if ((uint32_t)*tokens + new_tokens < max_tokens) *tokens = (unsigned short)(
+                                                   (uint32_t)*tokens + new_tokens);
+  else *tokens = (unsigned short)max_tokens;
+  if (interval) {
+    interval += interval >> 1;
+    interval2 = -4 * 4;
+    while (interval2 < - (-14 * 4)) {
+      if (interval <= (uint32_t)1) break;
+      interval >>= 1;
+      interval2 += 4;
+    }
+  }
+  else interval2 = -4 * (4 + 1);
+  if ((int)*rate == -128) *rate = (signed char)(- interval2);
+  else 
+    if ((int)*rate < - interval2) *rate = (int8_t)((int)*rate + 1);
+    else 
+      if ((int)*rate > - interval2) 
+        if ((int)*rate > (4 * 5) / 2 - interval2) *rate = (signed char)(
+                                                  (4 * 5) / 2 - interval2);
+        else *rate = (signed char)((((int)*rate - interval2) - 1) / 2);
+  return_label: return;
+}
+
+static int get_index(Record *record)
+{
+  int __retres;
+  void *tmp;
+  tmp = ARR_GetElements(records);
+  ;
+  __retres = (int)(record - (Record *)tmp);
+  return __retres;
+}
+
+int CLG_GetClientIndex(IPAddr *client)
+{
+  int __retres;
+  Record *record;
+  int tmp;
+  record = get_record(client);
+  if (record == (Record *)0) {
+    __retres = -1;
+    goto return_label;
+  }
+  tmp = get_index(record);
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+int CLG_LogNTPAccess(IPAddr *client, struct timespec *now)
+{
+  int __retres;
+  Record *record;
+  int8_t *tmp;
+  int tmp_0;
+  total_ntp_hits += (uint32_t)1;
+  record = get_record(client);
+  if (record == (Record *)0) {
+    __retres = -1;
+    goto return_label;
+  }
+  if ((int)record->flags & 0x1) tmp = & record->ntp_timeout_rate;
+  else tmp = & record->ntp_rate;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  update_record(now,& record->last_ntp_hit,& record->ntp_hits,
+                & record->ntp_tokens,(unsigned int)max_ntp_tokens,
+                ntp_token_shift,tmp);
+  tmp_0 = get_index(record);
+  __retres = tmp_0;
+  return_label: return __retres;
+}
+
+int CLG_LogCommandAccess(IPAddr *client, struct timespec *now)
+{
+  int __retres;
+  Record *record;
+  int tmp;
+  total_cmd_hits += (uint32_t)1;
+  record = get_record(client);
+  if (record == (Record *)0) {
+    __retres = -1;
+    goto return_label;
+  }
+  update_record(now,& record->last_cmd_hit,& record->cmd_hits,
+                & record->cmd_tokens,(unsigned int)max_cmd_tokens,
+                cmd_token_shift,& record->cmd_rate);
+  tmp = get_index(record);
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+static uint32_t limit_response_random_rnd;
+static int limit_response_random(int leak_rate);
+
+static int limit_response_random_bits_left = 0;
+static int limit_response_random(int leak_rate)
+{
+  int r;
+  if (limit_response_random_bits_left < leak_rate) {
+    UTI_GetRandomBytes((void *)(& limit_response_random_rnd),
+                       (unsigned int)sizeof(limit_response_random_rnd));
+    limit_response_random_bits_left = (int)((unsigned long)8 * sizeof(limit_response_random_rnd));
+  }
+  if (limit_response_random_rnd % (1U << leak_rate)) r = 1; else r = 0;
+  limit_response_random_rnd >>= leak_rate;
+  limit_response_random_bits_left -= leak_rate;
+  return r;
+}
+
+int CLG_LimitNTPResponseRate(int index_0)
+{
+  int __retres;
+  Record *record;
+  int drop;
+  if (! ntp_tokens_per_packet) {
+    __retres = 0;
+    goto return_label;
+  }
+  record = (Record *)ARR_GetElement(records,(unsigned int)index_0);
+  record->flags = (unsigned char)((int)record->flags & ~ 0x1);
+  if ((int)record->ntp_tokens >= (int)ntp_tokens_per_packet) {
+    record->ntp_tokens = (unsigned short)((int)record->ntp_tokens - (int)ntp_tokens_per_packet);
+    __retres = 0;
+    goto return_label;
+  }
+  drop = limit_response_random(ntp_leak_rate);
+  if ((int)record->ntp_timeout_rate != -128) 
+    if ((int)record->ntp_timeout_rate > (int)record->ntp_rate + 4) drop = ! drop;
+  if (! drop) {
+    record->ntp_tokens = (unsigned short)0;
+    __retres = 0;
+    goto return_label;
+  }
+  record->flags = (unsigned char)((int)record->flags | 0x1);
+  record->ntp_drops = (uint16_t)((int)record->ntp_drops + 1);
+  total_ntp_drops += (uint32_t)1;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int CLG_LimitCommandResponseRate(int index_0)
+{
+  int __retres;
+  Record *record;
+  int tmp;
+  if (! cmd_tokens_per_packet) {
+    __retres = 0;
+    goto return_label;
+  }
+  record = (Record *)ARR_GetElement(records,(unsigned int)index_0);
+  if ((int)record->cmd_tokens >= (int)cmd_tokens_per_packet) {
+    record->cmd_tokens = (unsigned short)((int)record->cmd_tokens - (int)cmd_tokens_per_packet);
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = limit_response_random(cmd_leak_rate);
+  if (! tmp) {
+    record->cmd_tokens = (unsigned short)0;
+    __retres = 0;
+    goto return_label;
+  }
+  record->cmd_drops = (uint16_t)((int)record->cmd_drops + 1);
+  total_cmd_drops += (uint32_t)1;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void CLG_GetNtpTimestamps(int index_0, NTP_int64 **rx_ts, NTP_int64 **tx_ts)
+{
+  Record *record;
+  record = (Record *)ARR_GetElement(records,(unsigned int)index_0);
+  *rx_ts = & record->ntp_rx_ts;
+  *tx_ts = & record->ntp_tx_ts;
+  return;
+}
+
+int CLG_GetNtpMinPoll(void)
+{
+  return ntp_limit_interval;
+}
+
+int CLG_GetNumberOfIndices(void)
+{
+  int __retres;
+  unsigned int tmp;
+  if (! active) {
+    __retres = -1;
+    goto return_label;
+  }
+  tmp = ARR_GetSize(records);
+  __retres = (int)tmp;
+  return_label: return __retres;
+}
+
+static int get_interval(int rate)
+{
+  int __retres;
+  int tmp;
+  if (rate == -128) {
+    __retres = 127;
+    goto return_label;
+  }
+  if (rate > 0) tmp = 4 / 2; else tmp = -4 / 2;
+  rate += tmp;
+  __retres = rate / -4;
+  return_label: return __retres;
+}
+
+static uint32_t get_last_ago(uint32_t x, uint32_t y)
+{
+  uint32_t __retres;
+  if (y == (uint32_t)0) {
+    __retres = (unsigned int)(-1);
+    goto return_label;
+  }
+  else 
+    if ((int)(x - y) < 0) {
+      __retres = (unsigned int)(-1);
+      goto return_label;
+    }
+  __retres = (x - y) >> 4;
+  return_label: return __retres;
+}
+
+int CLG_GetClientAccessReportByIndex(int index_0,
+                                     RPT_ClientAccessByIndex_Report *report,
+                                     struct timespec *now)
+{
+  int __retres;
+  Record *record;
+  uint32_t now_ts;
+  int tmp_0;
+  int tmp_1;
+  int tmp_2;
+  if (! active) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (index_0 < 0) {
+      __retres = 0;
+      goto return_label;
+    }
+    else {
+      unsigned int tmp;
+      tmp = ARR_GetSize(records);
+      ;
+      if ((unsigned int)index_0 >= tmp) {
+        __retres = 0;
+        goto return_label;
+      }
+    }
+  record = (Record *)ARR_GetElement(records,(unsigned int)index_0);
+  if ((int)record->ip_addr.family == 0) {
+    __retres = 0;
+    goto return_label;
+  }
+  now_ts = get_ts_from_timespec(now);
+  report->ip_addr = record->ip_addr;
+  report->ntp_hits = record->ntp_hits;
+  report->cmd_hits = record->cmd_hits;
+  report->ntp_drops = record->ntp_drops;
+  report->cmd_drops = record->cmd_drops;
+  tmp_0 = get_interval((int)record->ntp_rate);
+  report->ntp_interval = (signed char)tmp_0;
+  tmp_1 = get_interval((int)record->cmd_rate);
+  report->cmd_interval = (signed char)tmp_1;
+  tmp_2 = get_interval((int)record->ntp_timeout_rate);
+  report->ntp_timeout_interval = (signed char)tmp_2;
+  report->last_ntp_hit_ago = get_last_ago(now_ts,record->last_ntp_hit);
+  report->last_cmd_hit_ago = get_last_ago(now_ts,record->last_cmd_hit);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void CLG_GetServerStatsReport(RPT_ServerStatsReport *report)
+{
+  report->ntp_hits = total_ntp_hits;
+  report->cmd_hits = total_cmd_hits;
+  report->ntp_drops = total_ntp_drops;
+  report->cmd_drops = total_cmd_drops;
+  report->log_drops = total_record_drops;
+  return;
+}
+
+void SST_Initialise(void);
+
+void SST_Finalise(void);
+
+SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr, int min_samples_0,
+                             int max_samples_0, double min_delay,
+                             double asymmetry);
+
+void SST_DeleteInstance(SST_Stats inst);
+
+void SST_ResetInstance(SST_Stats inst);
+
+void SST_SetRefid(SST_Stats inst, uint32_t refid, IPAddr *addr);
+
+void SST_AccumulateSample(SST_Stats inst, NTP_Sample *sample);
+
+void SST_DoNewRegression(SST_Stats inst);
+
+void SST_GetFrequencyRange(SST_Stats inst, double *lo, double *hi);
+
+void SST_GetSelectionData(SST_Stats inst, struct timespec *now, int *stratum,
+                          NTP_Leap *leap, double *offset_lo_limit,
+                          double *offset_hi_limit, double *root_distance,
+                          double *std_dev, double *first_sample_ago,
+                          double *last_sample_ago, int *select_ok);
+
+void SST_GetTrackingData(SST_Stats inst, struct timespec *ref_time,
+                         double *average_offset, double *offset_sd,
+                         double *frequency, double *frequency_sd,
+                         double *skew, double *root_delay,
+                         double *root_dispersion);
+
+void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq,
+                     double doffset);
+
+void SST_AddDispersion(SST_Stats inst, double dispersion);
+
+double SST_PredictOffset(SST_Stats inst, struct timespec *when);
+
+double SST_MinRoundTripDelay(SST_Stats inst);
+
+int SST_GetDelayTestData(SST_Stats inst, struct timespec *sample_time,
+                         double *last_sample_ago, double *predicted_offset,
+                         double *min_delay, double *skew, double *std_dev);
+
+void SST_SaveToFile(SST_Stats inst, FILE *out);
+
+int SST_LoadFromFile(SST_Stats inst, FILE *in);
+
+void SST_DoSourceReport(SST_Stats inst, RPT_SourceReport *report,
+                        struct timespec *now);
+
+void SST_DoSourcestatsReport(SST_Stats inst, RPT_SourcestatsReport *report,
+                             struct timespec *now);
+
+int SST_Samples(SST_Stats inst);
+
+double SST_GetJitterAsymmetry(SST_Stats inst);
+
+void SRC_Initialise(void);
+
+void SRC_Finalise(void);
+
+SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type,
+                                   int sel_options, IPAddr *addr,
+                                   int min_samples_0, int max_samples_0,
+                                   double min_delay, double asymmetry);
+
+void SRC_DestroyInstance(SRC_Instance instance);
+
+void SRC_ResetInstance(SRC_Instance instance);
+
+void SRC_SetRefid(SRC_Instance instance, uint32_t ref_id, IPAddr *addr);
+
+SST_Stats SRC_GetSourcestats(SRC_Instance instance);
+
+void SRC_AccumulateSample(SRC_Instance inst, NTP_Sample *sample);
+
+void SRC_SetActive(SRC_Instance inst);
+
+void SRC_UnsetActive(SRC_Instance inst);
+
+void SRC_UpdateReachability(SRC_Instance inst, int reachable);
+
+void SRC_ResetReachability(SRC_Instance inst);
+
+void SRC_SelectSource(SRC_Instance updated_inst);
+
+void SRC_ReselectSource(void);
+
+void SRC_SetReselectDistance(double distance);
+
+void SRC_DumpSources(void);
+
+void SRC_ReloadSources(void);
+
+void SRC_RemoveDumpFiles(void);
+
+int SRC_IsSyncPeer(SRC_Instance inst);
+
+int SRC_IsReachable(SRC_Instance inst);
+
+int SRC_ReadNumberOfSources(void);
+
+int SRC_ActiveSources(void);
+
+int SRC_ReportSource(int index_0, RPT_SourceReport *report,
+                     struct timespec *now);
+
+int SRC_ReportSourcestats(int index_0, RPT_SourcestatsReport *report,
+                          struct timespec *now);
+
+SRC_Type SRC_GetType(int index_0);
+
+int CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src);
+
+int CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance);
+
+void CPS_NormalizeLine(char *line);
+
+char *CPS_SplitWord(char *line);
+
+int CPS_ParseKey(char *line, uint32_t *id, char const **hash, char **key);
+
+void DNS_SetAddressFamily(int family);
+
+DNS_Status DNS_Name2IPAddress(char const *name, IPAddr *ip_addrs,
+                              int max_addrs);
+
+int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len);
+
+void DNS_Reload(void);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_1(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_2(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_3(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_4(char const * __restrict s, char const * __restrict format,
+                unsigned short *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_5(char const * __restrict s, char const * __restrict format,
+                double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_6(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_7(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_8(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_9(char const * __restrict s, char const * __restrict format,
+                double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_10(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_11(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_12(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_13(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_14(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_15(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_16(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_17(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_18(char const * __restrict s, char const * __restrict format,
+                 unsigned int *param0, int *param1);
+
+int CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src)
+{
+  int __retres;
+  char *hostname;
+  char *cmd;
+  int n;
+  src->port = (unsigned short)123;
+  src->params.minpoll = 6;
+  src->params.maxpoll = 10;
+  src->params.connectivity = SRC_ONLINE;
+  src->params.auto_offline = 0;
+  src->params.presend_minpoll = 100;
+  src->params.burst = 0;
+  src->params.iburst = 0;
+  src->params.min_stratum = 0;
+  src->params.poll_target = 8;
+  src->params.version = 0;
+  src->params.max_sources = 4;
+  src->params.min_samples = -1;
+  src->params.max_samples = -1;
+  src->params.filter_length = 0;
+  src->params.interleaved = 0;
+  src->params.sel_options = 0;
+  src->params.authkey = (unsigned int)0;
+  src->params.max_delay = 3.0;
+  src->params.max_delay_ratio = 0.0;
+  src->params.max_delay_dev_ratio = 10.0;
+  src->params.min_delay = 0.0;
+  src->params.asymmetry = 1.0;
+  src->params.offset = 0.0;
+  hostname = line;
+  line = CPS_SplitWord(line);
+  if (! *hostname) {
+    __retres = 0;
+    goto return_label;
+  }
+  src->name = hostname;
+  while (*line) {
+    {
+      int tmp_43;
+      cmd = line;
+      line = CPS_SplitWord(line);
+      n = 0;
+      tmp_43 = strcasecmp((char const *)cmd,"auto_offline");
+      if (tmp_43) {
+        int tmp_42;
+        tmp_42 = strcasecmp((char const *)cmd,"burst");
+        if (tmp_42) {
+          int tmp_41;
+          tmp_41 = strcasecmp((char const *)cmd,"iburst");
+          if (tmp_41) {
+            int tmp_40;
+            tmp_40 = strcasecmp((char const *)cmd,"offline");
+            if (tmp_40) {
+              int tmp_39;
+              tmp_39 = strcasecmp((char const *)cmd,"noselect");
+              if (tmp_39) {
+                int tmp_38;
+                tmp_38 = strcasecmp((char const *)cmd,"prefer");
+                if (tmp_38) {
+                  int tmp_37;
+                  tmp_37 = strcasecmp((char const *)cmd,"require");
+                  if (tmp_37) {
+                    int tmp_36;
+                    tmp_36 = strcasecmp((char const *)cmd,"trust");
+                    if (tmp_36) {
+                      int tmp_35;
+                      tmp_35 = strcasecmp((char const *)cmd,"key");
+                      if (tmp_35) {
+                        int tmp_34;
+                        tmp_34 = strcasecmp((char const *)cmd,"asymmetry");
+                        if (tmp_34) {
+                          int tmp_33;
+                          tmp_33 = strcasecmp((char const *)cmd,"filter");
+                          if (tmp_33) {
+                            int tmp_32;
+                            tmp_32 = strcasecmp((char const *)cmd,"maxdelay");
+                            if (tmp_32) {
+                              int tmp_31;
+                              tmp_31 = strcasecmp((char const *)cmd,
+                                                  "maxdelayratio");
+                              if (tmp_31) {
+                                int tmp_30;
+                                tmp_30 = strcasecmp((char const *)cmd,
+                                                    "maxdelaydevratio");
+                                if (tmp_30) {
+                                  int tmp_29;
+                                  tmp_29 = strcasecmp((char const *)cmd,
+                                                      "maxpoll");
+                                  if (tmp_29) {
+                                    int tmp_28;
+                                    tmp_28 = strcasecmp((char const *)cmd,
+                                                        "maxsamples");
+                                    if (tmp_28) {
+                                      int tmp_27;
+                                      tmp_27 = strcasecmp((char const *)cmd,
+                                                          "maxsources");
+                                      if (tmp_27) {
+                                        int tmp_26;
+                                        tmp_26 = strcasecmp((char const *)cmd,
+                                                            "mindelay");
+                                        if (tmp_26) {
+                                          int tmp_25;
+                                          tmp_25 = strcasecmp((char const *)cmd,
+                                                              "minpoll");
+                                          if (tmp_25) {
+                                            int tmp_24;
+                                            tmp_24 = strcasecmp((char const *)cmd,
+                                                                "minsamples");
+                                            if (tmp_24) {
+                                              int tmp_23;
+                                              tmp_23 = strcasecmp((char const *)cmd,
+                                                                  "minstratum");
+                                              if (tmp_23) {
+                                                int tmp_22;
+                                                tmp_22 = strcasecmp((char const *)cmd,
+                                                                    "offset");
+                                                if (tmp_22) {
+                                                  int tmp_21;
+                                                  tmp_21 = strcasecmp
+                                                  ((char const *)cmd,"port");
+                                                  if (tmp_21) {
+                                                    int tmp_20;
+                                                    tmp_20 = strcasecmp
+                                                    ((char const *)cmd,
+                                                     "polltarget");
+                                                    if (tmp_20) {
+                                                      int tmp_19;
+                                                      tmp_19 = strcasecmp
+                                                      ((char const *)cmd,
+                                                       "presend");
+                                                      if (tmp_19) {
+                                                        int tmp_18;
+                                                        tmp_18 = strcasecmp
+                                                        ((char const *)cmd,
+                                                         "version");
+                                                        if (tmp_18) {
+                                                          int tmp_17;
+                                                          tmp_17 = strcasecmp
+                                                          ((char const *)cmd,
+                                                           "xleave");
+                                                          if (tmp_17) {
+                                                            __retres = 0;
+                                                            goto return_label;
+                                                          }
+                                                          else src->params.interleaved = 1;
+                                                        }
+                                                        else {
+                                                          int tmp_16;
+                                                          tmp_16 = sscanf_va_1
+                                                          ((char const *)line,
+                                                           "%d%n",
+                                                           & src->params.version,
+                                                           & n);
+                                                          if (tmp_16 != 1) {
+                                                            __retres = 0;
+                                                            goto return_label;
+                                                          }
+                                                        }
+                                                      }
+                                                      else {
+                                                        int tmp_15;
+                                                        tmp_15 = sscanf_va_2
+                                                        ((char const *)line,
+                                                         "%d%n",
+                                                         & src->params.presend_minpoll,
+                                                         & n);
+                                                        if (tmp_15 != 1) {
+                                                          __retres = 0;
+                                                          goto return_label;
+                                                        }
+                                                      }
+                                                    }
+                                                    else {
+                                                      int tmp_14;
+                                                      tmp_14 = sscanf_va_3
+                                                      ((char const *)line,
+                                                       "%d%n",
+                                                       & src->params.poll_target,
+                                                       & n);
+                                                      if (tmp_14 != 1) {
+                                                        __retres = 0;
+                                                        goto return_label;
+                                                      }
+                                                    }
+                                                  }
+                                                  else {
+                                                    int tmp_13;
+                                                    tmp_13 = sscanf_va_4
+                                                    ((char const *)line,
+                                                     "%hu%n",& src->port,& n);
+                                                    if (tmp_13 != 1) {
+                                                      __retres = 0;
+                                                      goto return_label;
+                                                    }
+                                                  }
+                                                }
+                                                else {
+                                                  int tmp_12;
+                                                  tmp_12 = sscanf_va_5
+                                                  ((char const *)line,
+                                                   "%lf%n",
+                                                   & src->params.offset,& n);
+                                                  if (tmp_12 != 1) {
+                                                    __retres = 0;
+                                                    goto return_label;
+                                                  }
+                                                }
+                                              }
+                                              else {
+                                                int tmp_11;
+                                                tmp_11 = sscanf_va_6((char const *)line,
+                                                                    "%d%n",
+                                                                    & src->params.min_stratum,
+                                                                    & n);
+                                                if (tmp_11 != 1) {
+                                                  __retres = 0;
+                                                  goto return_label;
+                                                }
+                                              }
+                                            }
+                                            else {
+                                              int tmp_10;
+                                              tmp_10 = sscanf_va_7((char const *)line,
+                                                                   "%d%n",
+                                                                   & src->params.min_samples,
+                                                                   & n);
+                                              if (tmp_10 != 1) {
+                                                __retres = 0;
+                                                goto return_label;
+                                              }
+                                            }
+                                          }
+                                          else {
+                                            int tmp_9;
+                                            tmp_9 = sscanf_va_8((char const *)line,
+                                                                "%d%n",
+                                                                & src->params.minpoll,
+                                                                & n);
+                                            if (tmp_9 != 1) {
+                                              __retres = 0;
+                                              goto return_label;
+                                            }
+                                          }
+                                        }
+                                        else {
+                                          int tmp_8;
+                                          tmp_8 = sscanf_va_9((char const *)line,
+                                                              "%lf%n",
+                                                              & src->params.min_delay,
+                                                              & n);
+                                          if (tmp_8 != 1) {
+                                            __retres = 0;
+                                            goto return_label;
+                                          }
+                                        }
+                                      }
+                                      else {
+                                        int tmp_7;
+                                        tmp_7 = sscanf_va_10((char const *)line,
+                                                             "%d%n",
+                                                             & src->params.max_sources,
+                                                             & n);
+                                        if (tmp_7 != 1) {
+                                          __retres = 0;
+                                          goto return_label;
+                                        }
+                                      }
+                                    }
+                                    else {
+                                      int tmp_6;
+                                      tmp_6 = sscanf_va_11((char const *)line,
+                                                           "%d%n",
+                                                           & src->params.max_samples,
+                                                           & n);
+                                      if (tmp_6 != 1) {
+                                        __retres = 0;
+                                        goto return_label;
+                                      }
+                                    }
+                                  }
+                                  else {
+                                    int tmp_5;
+                                    tmp_5 = sscanf_va_12((char const *)line,
+                                                         "%d%n",
+                                                         & src->params.maxpoll,
+                                                         & n);
+                                    if (tmp_5 != 1) {
+                                      __retres = 0;
+                                      goto return_label;
+                                    }
+                                  }
+                                }
+                                else {
+                                  int tmp_4;
+                                  tmp_4 = sscanf_va_13((char const *)line,
+                                                       "%lf%n",
+                                                       & src->params.max_delay_dev_ratio,
+                                                       & n);
+                                  if (tmp_4 != 1) {
+                                    __retres = 0;
+                                    goto return_label;
+                                  }
+                                }
+                              }
+                              else {
+                                int tmp_3;
+                                tmp_3 = sscanf_va_14((char const *)line,
+                                                     "%lf%n",
+                                                     & src->params.max_delay_ratio,
+                                                     & n);
+                                if (tmp_3 != 1) {
+                                  __retres = 0;
+                                  goto return_label;
+                                }
+                              }
+                            }
+                            else {
+                              int tmp_2;
+                              tmp_2 = sscanf_va_15((char const *)line,
+                                                   "%lf%n",
+                                                   & src->params.max_delay,
+                                                   & n);
+                              if (tmp_2 != 1) {
+                                __retres = 0;
+                                goto return_label;
+                              }
+                            }
+                          }
+                          else {
+                            int tmp_1;
+                            tmp_1 = sscanf_va_16((char const *)line,"%d%n",
+                                                 & src->params.filter_length,
+                                                 & n);
+                            if (tmp_1 != 1) {
+                              __retres = 0;
+                              goto return_label;
+                            }
+                          }
+                        }
+                        else {
+                          int tmp_0;
+                          tmp_0 = sscanf_va_17((char const *)line,"%lf%n",
+                                               & src->params.asymmetry,& n);
+                          if (tmp_0 != 1) {
+                            __retres = 0;
+                            goto return_label;
+                          }
+                        }
+                      }
+                      else {
+                        int tmp;
+                        tmp = sscanf_va_18((char const *)line,"%u%n",
+                                           (unsigned int *)(& src->params.authkey),
+                                           & n);
+                        if (tmp != 1) {
+                          __retres = 0;
+                          goto return_label;
+                        }
+                        else 
+                          if (src->params.authkey == (uint32_t)0) {
+                            __retres = 0;
+                            goto return_label;
+                          }
+                      }
+                    }
+                    else src->params.sel_options |= 0x4;
+                  }
+                  else src->params.sel_options |= 0x8;
+                }
+                else src->params.sel_options |= 0x2;
+              }
+              else src->params.sel_options |= 0x1;
+            }
+            else src->params.connectivity = SRC_OFFLINE;
+          }
+          else src->params.iburst = 1;
+        }
+        else src->params.burst = 1;
+      }
+      else src->params.auto_offline = 1;
+    }
+    line += n;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_19(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_20(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+int CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance)
+{
+  int __retres;
+  int n;
+  char *cmd;
+  *stratum = 10;
+  *distance = 1.0;
+  *orphan = 0;
+  while (*line) {
+    int tmp_3;
+    cmd = line;
+    line = CPS_SplitWord(line);
+    tmp_3 = strcasecmp((char const *)cmd,"stratum");
+    if (tmp_3) {
+      int tmp_2;
+      tmp_2 = strcasecmp((char const *)cmd,"orphan");
+      if (tmp_2) {
+        int tmp_1;
+        tmp_1 = strcasecmp((char const *)cmd,"distance");
+        if (tmp_1) {
+          __retres = 0;
+          goto return_label;
+        }
+        else {
+          int tmp_0;
+          tmp_0 = sscanf_va_19((char const *)line,"%lf%n",distance,& n);
+          if (tmp_0 != 1) {
+            __retres = 0;
+            goto return_label;
+          }
+        }
+      }
+      else {
+        *orphan = 1;
+        n = 0;
+      }
+    }
+    else {
+      int tmp;
+      tmp = sscanf_va_20((char const *)line,"%d%n",stratum,& n);
+      if (tmp != 1) {
+        __retres = 0;
+        goto return_label;
+      }
+      else 
+        if (*stratum >= 16) {
+          __retres = 0;
+          goto return_label;
+        }
+        else 
+          if (*stratum <= 0) {
+            __retres = 0;
+            goto return_label;
+          }
+    }
+    line += n;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void CPS_NormalizeLine(char *line)
+{
+  char *p;
+  char *q;
+  int space = 1;
+  int first = 1;
+  q = line;
+  p = q;
+  while (*p) {
+    {
+      int tmp_0;
+      char *tmp_2;
+      tmp_0 = isspace((int)((unsigned char)*p));
+      if (tmp_0) {
+        if (! space) {
+          char *tmp;
+          tmp = q;
+          q ++;
+          *tmp = (char)' ';
+        }
+        space = 1;
+        goto __Cont;
+      }
+      if (first) {
+        char *tmp_1;
+        tmp_1 = strchr("!;#%",(int)*p);
+        if (tmp_1) break;
+      }
+      tmp_2 = q;
+      q ++;
+      *tmp_2 = *p;
+      first = 0;
+      space = first;
+    }
+    __Cont: p ++;
+  }
+  if (q > line) 
+    if ((int)*(q + -1) == ' ') q --;
+  *q = (char)'\000';
+  return;
+}
+
+char *CPS_SplitWord(char *line)
+{
+  char *p = line;
+  char *q = line;
+  while (1) {
+    if (*q) {
+      int tmp;
+      tmp = isspace((int)((unsigned char)*q));
+      if (! tmp) break;
+    }
+    else break;
+    q ++;
+  }
+  while (1) {
+    char *tmp_0;
+    char *tmp_1;
+    if (*q) {
+      int tmp_2;
+      tmp_2 = isspace((int)((unsigned char)*q));
+      if (tmp_2) break;
+    }
+    else break;
+    tmp_0 = p;
+    p ++;
+    tmp_1 = q;
+    q ++;
+    *tmp_0 = *tmp_1;
+  }
+  while (1) {
+    if (*q) {
+      int tmp_3;
+      tmp_3 = isspace((int)((unsigned char)*q));
+      if (! tmp_3) break;
+    }
+    else break;
+    q ++;
+  }
+  *p = (char)'\000';
+  return q;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_21(char const * __restrict s, char const * __restrict format,
+                 unsigned int *param0);
+
+int CPS_ParseKey(char *line, uint32_t *id, char const **hash, char **key)
+{
+  int __retres;
+  char *s1;
+  char *s2;
+  char *s3;
+  char *s4;
+  int tmp;
+  s1 = line;
+  s2 = CPS_SplitWord(s1);
+  s3 = CPS_SplitWord(s2);
+  s4 = CPS_SplitWord(s3);
+  if (! *s2) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (*s4) {
+      __retres = 0;
+      goto return_label;
+    }
+  tmp = sscanf_va_21((char const *)s1,"%u",(unsigned int *)id);
+  if (tmp != 1) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (*s3) {
+    *hash = (char const *)s2;
+    *key = s3;
+  }
+  else {
+    *hash = "MD5";
+    *key = s2;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void NCR_Initialise(void);
+
+void NCR_Finalise(void);
+
+NCR_Instance NCR_GetInstance(NTP_Remote_Address *remote_addr,
+                             NTP_Source_Type type, SourceParameters *params);
+
+void NCR_DestroyInstance(NCR_Instance instance);
+
+void NCR_StartInstance(NCR_Instance instance);
+
+void NCR_ResetInstance(NCR_Instance instance);
+
+void NCR_ResetPoll(NCR_Instance instance);
+
+void NCR_ChangeRemoteAddress(NCR_Instance inst,
+                             NTP_Remote_Address *remote_addr);
+
+int NCR_ProcessRxKnown(NCR_Instance inst, NTP_Local_Address *local_addr,
+                       NTP_Local_Timestamp *rx_ts, NTP_Packet *message,
+                       int length);
+
+void NCR_ProcessRxUnknown(NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr,
+                          NTP_Local_Timestamp *rx_ts, NTP_Packet *message,
+                          int length);
+
+void NCR_ProcessTxKnown(NCR_Instance inst, NTP_Local_Address *local_addr,
+                        NTP_Local_Timestamp *tx_ts, NTP_Packet *message,
+                        int length);
+
+void NCR_ProcessTxUnknown(NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr,
+                          NTP_Local_Timestamp *tx_ts, NTP_Packet *message,
+                          int length);
+
+void NCR_SlewTimes(NCR_Instance inst, struct timespec *when, double dfreq,
+                   double doffset);
+
+void NCR_SetConnectivity(NCR_Instance inst, SRC_Connectivity connectivity);
+
+void NCR_ModifyMinpoll(NCR_Instance inst, int new_minpoll);
+
+void NCR_ModifyMaxpoll(NCR_Instance inst, int new_maxpoll);
+
+void NCR_ModifyMaxdelay(NCR_Instance inst, double new_max_delay);
+
+void NCR_ModifyMaxdelayratio(NCR_Instance inst, double new_max_delay_ratio);
+
+void NCR_ModifyMaxdelaydevratio(NCR_Instance inst,
+                                double new_max_delay_dev_ratio);
+
+void NCR_ModifyMinstratum(NCR_Instance inst, int new_min_stratum);
+
+void NCR_ModifyPolltarget(NCR_Instance inst, int new_poll_target);
+
+void NCR_InitiateSampleBurst(NCR_Instance inst, int n_good_samples,
+                             int n_total_samples);
+
+void NCR_ReportSource(NCR_Instance inst, RPT_SourceReport *report,
+                      struct timespec *now);
+
+void NCR_GetNTPReport(NCR_Instance inst, RPT_NTPReport *report);
+
+int NCR_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits, int allow,
+                             int all);
+
+int NCR_CheckAccessRestriction(IPAddr *ip_addr);
+
+void NCR_IncrementActivityCounters(NCR_Instance inst, int *online,
+                                   int *offline, int *burst_online,
+                                   int *burst_offline);
+
+NTP_Remote_Address *NCR_GetRemoteAddress(NCR_Instance inst);
+
+uint32_t NCR_GetLocalRefid(NCR_Instance inst);
+
+int NCR_IsSyncPeer(NCR_Instance inst);
+
+void NCR_AddBroadcastDestination(IPAddr *addr, unsigned short port,
+                                 int interval);
+
+extern NSR_Status NSR_AddSource(NTP_Remote_Address *remote_addr,
+                                NTP_Source_Type type,
+                                SourceParameters *params);
+
+extern void NSR_AddSourceByName(char *name, int port, int pool,
+                                NTP_Source_Type type,
+                                SourceParameters *params);
+
+extern void NSR_HandleBadSource(IPAddr *address);
+
+extern uint32_t NSR_GetLocalRefid(IPAddr *address);
+
+extern void NSR_ProcessRx(NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr,
+                          NTP_Local_Timestamp *rx_ts, NTP_Packet *message,
+                          int length);
+
+extern int RCL_AddRefclock(RefclockParameters *params);
+
+extern int CAM_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits,
+                                    int allow, int all);
+
+static int parse_string(char *line, char **result);
+
+static int parse_int(char *line, int *result);
+
+static int parse_double(char *line, double *result);
+
+static int parse_null(char *line);
+
+static void parse_allow_deny(char *line, ARR_Instance restrictions, int allow);
+
+static void parse_bindacqaddress(char *line);
+
+static void parse_bindaddress(char *line);
+
+static void parse_bindcmdaddress(char *line);
+
+static void parse_broadcast(char *line);
+
+static void parse_clientloglimit(char *line);
+
+static void parse_fallbackdrift(char *line);
+
+static void parse_hwtimestamp(char *line);
+
+static void parse_include(char *line);
+
+static void parse_initstepslew(char *line);
+
+static void parse_leapsecmode(char *line);
+
+static void parse_local(char *line);
+
+static void parse_log(char *line);
+
+static void parse_mailonchange(char *line);
+
+static void parse_makestep(char *line);
+
+static void parse_maxchange(char *line);
+
+static void parse_ratelimit(char *line, int *enabled_0, int *interval,
+                            int *burst, int *leak);
+
+static void parse_refclock(char *line);
+
+static void parse_smoothtime(char *line);
+
+static void parse_source(char *line, NTP_Source_Type type, int pool);
+
+static void parse_tempcomp(char *line);
+
+static int restarted = 0;
+static char *rtc_device;
+static int acquisition_port = -1;
+static int ntp_port = 123;
+static char *keys_file = (char *)0;
+static char *drift_file = (char *)0;
+static char *rtc_file = (char *)0;
+static double max_update_skew = 1000.0;
+static double correction_time_ratio = 3.0;
+static double max_clock_error = 1.0;
+static double max_drift = 500000.0;
+static double max_slew_rate = 1e6 / 12.0;
+static double max_distance = 3.0;
+static double max_jitter = 1.0;
+static double reselect_distance = 1e-4;
+static double stratum_weight = 1e-3;
+static double combine_limit = 3.0;
+static int cmd_port = 323;
+static int raw_measurements = 0;
+static int do_log_measurements = 0;
+static int do_log_statistics = 0;
+static int do_log_tracking = 0;
+static int do_log_rtc = 0;
+static int do_log_refclocks = 0;
+static int do_log_tempcomp = 0;
+static int log_banner = 32;
+static char *logdir;
+static char *dumpdir;
+static int enable_local = 0;
+static int local_stratum;
+static int local_orphan;
+static double local_distance;
+static double init_slew_threshold;
+static ARR_Instance init_sources;
+static int enable_manual = 0;
+static int rtc_on_utc = 0;
+static char *hwclock_file;
+static int rtc_sync = 0;
+static int make_step_limit = 0;
+static double make_step_threshold = 0.0;
+static double rtc_autotrim_threshold = 0.0;
+static int min_sources = 1;
+static int max_offset_delay = -1;
+static int max_offset_ignore;
+static double max_offset;
+static int max_samples = 0;
+static int min_samples = 6;
+static double log_change_threshold = 1.0;
+static char *mail_user_on_change = (char *)0;
+static double mail_change_threshold = 0.0;
+static int no_client_log = 0;
+static unsigned long client_log_limit = (unsigned long)524288;
+static int fb_drift_min = 0;
+static int fb_drift_max = 0;
+static IPAddr bind_address4;
+static IPAddr bind_address6;
+static IPAddr bind_acq_address4;
+static IPAddr bind_acq_address6;
+static IPAddr bind_cmd_address4;
+static IPAddr bind_cmd_address6;
+static char *bind_cmd_path;
+static char *ntp_signd_socket = (char *)0;
+static char *pidfile;
+static int ntp_ratelimit_enabled = 0;
+static int ntp_ratelimit_interval = 3;
+static int ntp_ratelimit_burst = 8;
+static int ntp_ratelimit_leak = 2;
+static int cmd_ratelimit_enabled = 0;
+static int cmd_ratelimit_interval = -4;
+static int cmd_ratelimit_burst = 8;
+static int cmd_ratelimit_leak = 2;
+static double smooth_max_freq = 0.0;
+static double smooth_max_wander = 0.0;
+static int smooth_leap_only = 0;
+static char *tempcomp_sensor_file = (char *)0;
+static char *tempcomp_point_file = (char *)0;
+static double tempcomp_interval;
+static double tempcomp_T0;
+static double tempcomp_k0;
+static double tempcomp_k1;
+static double tempcomp_k2;
+static int sched_priority = 0;
+static int lock_memory = 0;
+static REF_LeapMode leapsec_mode = REF_LeapModeSystem;
+static char *leapsec_tz = (char *)0;
+static char *user;
+static ARR_Instance hwts_interfaces;
+static ARR_Instance ntp_sources;
+static ARR_Instance refclock_sources;
+static ARR_Instance ntp_restrictions;
+static ARR_Instance cmd_restrictions;
+static ARR_Instance broadcasts;
+static int line_number;
+static char const *processed_file;
+static char const *processed_command;
+static void command_parse_error(void)
+{
+  char const *tmp;
+  char const *tmp_0;
+  if (processed_file) tmp = processed_file; else tmp = "";
+  if (processed_file) tmp_0 = " in file "; else tmp_0 = "";
+  ;
+  ;
+  {
+    char const *__va_arg0 = processed_command;
+    int __va_arg1 = line_number;
+    char const *__va_arg2 = tmp_0;
+    char const *__va_arg3 = tmp;
+    void *__va_args[4] =
+      {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3};
+    LOG_Message(LOGS_FATAL,"Could not parse %s directive at line %d%s%s",
+                (void * const *)(__va_args));
+  }
+  exit(1);
+  return;
+}
+
+static void other_parse_error(char const *message)
+{
+  char const *tmp;
+  char const *tmp_0;
+  if (processed_file) tmp = processed_file; else tmp = "";
+  if (processed_file) tmp_0 = " in file "; else tmp_0 = "";
+  ;
+  ;
+  {
+    char const *__va_arg0 = message;
+    int __va_arg1 = line_number;
+    char const *__va_arg2 = tmp_0;
+    char const *__va_arg3 = tmp;
+    void *__va_args[4] =
+      {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3};
+    LOG_Message(LOGS_FATAL,"%s at line %d%s%s",(void * const *)(__va_args));
+  }
+  exit(1);
+  return;
+}
+
+static int get_number_of_args(char *line)
+{
+  int num = 0;
+  if ((int)*line == ' ') line ++;
+  if (*line) num ++;
+  while (*line) {
+    if ((int)*line == ' ') num ++;
+    line ++;
+  }
+  return num;
+}
+
+static void check_number_of_args(char *line, int num)
+{
+  int tmp;
+  tmp = get_number_of_args(line);
+  num -= tmp;
+  if (num) {
+    char const *tmp_0;
+    char const *tmp_1;
+    char const *tmp_2;
+    if (processed_file) tmp_0 = processed_file; else tmp_0 = "";
+    if (processed_file) tmp_1 = " in file "; else tmp_1 = "";
+    ;
+    ;
+    if (num > 0) tmp_2 = "Missing"; else tmp_2 = "Too many";
+    {
+      char const *__va_arg0 = tmp_2;
+      char const *__va_arg1 = processed_command;
+      int __va_arg2 = line_number;
+      char const *__va_arg3 = tmp_1;
+      char const *__va_arg4 = tmp_0;
+      void *__va_args[5] =
+        {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3, & __va_arg4};
+      LOG_Message(LOGS_FATAL,"%s arguments for %s directive at line %d%s%s",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  return;
+}
+
+void CNF_Initialise(int r, int client_only)
+{
+  restarted = r;
+  hwts_interfaces = ARR_CreateInstance((unsigned int)sizeof(CNF_HwTsInterface));
+  init_sources = ARR_CreateInstance((unsigned int)sizeof(IPAddr));
+  ntp_sources = ARR_CreateInstance((unsigned int)sizeof(NTP_Source));
+  refclock_sources = ARR_CreateInstance((unsigned int)sizeof(RefclockParameters));
+  broadcasts = ARR_CreateInstance((unsigned int)sizeof(NTP_Broadcast_Destination));
+  ntp_restrictions = ARR_CreateInstance((unsigned int)sizeof(AllowDeny));
+  cmd_restrictions = ARR_CreateInstance((unsigned int)sizeof(AllowDeny));
+  dumpdir = Strdup("");
+  logdir = Strdup("");
+  rtc_device = Strdup("/dev/rtc");
+  hwclock_file = Strdup("");
+  user = Strdup("root");
+  if (client_only) {
+    ntp_port = 0;
+    cmd_port = ntp_port;
+    bind_cmd_path = Strdup("");
+    pidfile = Strdup("");
+  }
+  else {
+    bind_cmd_path = Strdup("/var/run/chrony/chronyd.sock");
+    pidfile = Strdup("/var/run/chronyd.pid");
+  }
+  return;
+}
+
+void CNF_Finalise(void)
+{
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    void *tmp;
+    tmp_0 = ARR_GetSize(hwts_interfaces);
+    ;
+    if (! (i < tmp_0)) break;
+    tmp = ARR_GetElement(hwts_interfaces,i);
+    free((void *)((CNF_HwTsInterface *)tmp)->name);
+    i ++;
+  }
+  ARR_DestroyInstance(hwts_interfaces);
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_2;
+    void *tmp_1;
+    tmp_2 = ARR_GetSize(ntp_sources);
+    ;
+    if (! (i < tmp_2)) break;
+    tmp_1 = ARR_GetElement(ntp_sources,i);
+    free((void *)((NTP_Source *)tmp_1)->params.name);
+    i ++;
+  }
+  ARR_DestroyInstance(init_sources);
+  ARR_DestroyInstance(ntp_sources);
+  ARR_DestroyInstance(refclock_sources);
+  ARR_DestroyInstance(broadcasts);
+  ARR_DestroyInstance(ntp_restrictions);
+  ARR_DestroyInstance(cmd_restrictions);
+  free((void *)drift_file);
+  free((void *)dumpdir);
+  free((void *)hwclock_file);
+  free((void *)keys_file);
+  free((void *)leapsec_tz);
+  free((void *)logdir);
+  free((void *)bind_cmd_path);
+  free((void *)ntp_signd_socket);
+  free((void *)pidfile);
+  free((void *)rtc_device);
+  free((void *)rtc_file);
+  free((void *)user);
+  free((void *)mail_user_on_change);
+  free((void *)tempcomp_sensor_file);
+  free((void *)tempcomp_point_file);
+  return;
+}
+
+void CNF_ReadFile(char const *filename)
+{
+  FILE *in;
+  char line[2048];
+  int i;
+  in = fopen(filename,"r");
+  if (! in) {
+    {
+      char *tmp;
+      tmp = strerror(__fc_errno);
+      ;
+      {
+        char const *__va_arg0 = filename;
+        char *__va_arg1 = tmp;
+        void *__va_args[2] = {& __va_arg0, & __va_arg1};
+        LOG_Message(LOGS_FATAL,"Could not open configuration file %s : %s",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+    goto return_label;
+  }
+  i = 1;
+  while (1) {
+    char *tmp_0;
+    tmp_0 = fgets(line,(int)sizeof(line),in);
+    if (! tmp_0) break;
+    CNF_ParseLine(filename,i,line);
+    i ++;
+  }
+  fclose(in);
+  return_label: return;
+}
+
+void CNF_ParseLine(char const *filename, int number, char *line)
+{
+  char *p;
+  char *command;
+  int tmp_66;
+  processed_file = filename;
+  line_number = number;
+  CPS_NormalizeLine(line);
+  if (! *line) goto return_label;
+  command = line;
+  processed_command = (char const *)command;
+  p = CPS_SplitWord(line);
+  tmp_66 = strcasecmp((char const *)command,"acquisitionport");
+  if (tmp_66) {
+    int tmp_65;
+    tmp_65 = strcasecmp((char const *)command,"allow");
+    if (tmp_65) {
+      int tmp_64;
+      tmp_64 = strcasecmp((char const *)command,"bindacqaddress");
+      if (tmp_64) {
+        int tmp_63;
+        tmp_63 = strcasecmp((char const *)command,"bindaddress");
+        if (tmp_63) {
+          int tmp_62;
+          tmp_62 = strcasecmp((char const *)command,"bindcmdaddress");
+          if (tmp_62) {
+            int tmp_61;
+            tmp_61 = strcasecmp((char const *)command,"broadcast");
+            if (tmp_61) {
+              int tmp_60;
+              tmp_60 = strcasecmp((char const *)command,"clientloglimit");
+              if (tmp_60) {
+                int tmp_59;
+                tmp_59 = strcasecmp((char const *)command,"cmdallow");
+                if (tmp_59) {
+                  int tmp_58;
+                  tmp_58 = strcasecmp((char const *)command,"cmddeny");
+                  if (tmp_58) {
+                    int tmp_57;
+                    tmp_57 = strcasecmp((char const *)command,"cmdport");
+                    if (tmp_57) {
+                      int tmp_56;
+                      tmp_56 = strcasecmp((char const *)command,
+                                          "cmdratelimit");
+                      if (tmp_56) {
+                        int tmp_55;
+                        tmp_55 = strcasecmp((char const *)command,
+                                            "combinelimit");
+                        if (tmp_55) {
+                          int tmp_54;
+                          tmp_54 = strcasecmp((char const *)command,
+                                              "corrtimeratio");
+                          if (tmp_54) {
+                            int tmp_53;
+                            tmp_53 = strcasecmp((char const *)command,"deny");
+                            if (tmp_53) {
+                              int tmp_52;
+                              tmp_52 = strcasecmp((char const *)command,
+                                                  "driftfile");
+                              if (tmp_52) {
+                                int tmp_51;
+                                tmp_51 = strcasecmp((char const *)command,
+                                                    "dumpdir");
+                                if (tmp_51) {
+                                  int tmp_50;
+                                  tmp_50 = strcasecmp((char const *)command,
+                                                      "dumponexit");
+                                  if (tmp_50) {
+                                    int tmp_49;
+                                    tmp_49 = strcasecmp((char const *)command,
+                                                        "fallbackdrift");
+                                    if (tmp_49) {
+                                      int tmp_48;
+                                      tmp_48 = strcasecmp((char const *)command,
+                                                          "hwclockfile");
+                                      if (tmp_48) {
+                                        int tmp_47;
+                                        tmp_47 = strcasecmp((char const *)command,
+                                                            "hwtimestamp");
+                                        if (tmp_47) {
+                                          int tmp_46;
+                                          tmp_46 = strcasecmp((char const *)command,
+                                                              "include");
+                                          if (tmp_46) {
+                                            int tmp_45;
+                                            tmp_45 = strcasecmp((char const *)command,
+                                                                "initstepslew");
+                                            if (tmp_45) {
+                                              int tmp_44;
+                                              tmp_44 = strcasecmp((char const *)command,
+                                                                  "keyfile");
+                                              if (tmp_44) {
+                                                int tmp_43;
+                                                tmp_43 = strcasecmp((char const *)command,
+                                                                    "leapsecmode");
+                                                if (tmp_43) {
+                                                  int tmp_42;
+                                                  tmp_42 = strcasecmp
+                                                  ((char const *)command,
+                                                   "leapsectz");
+                                                  if (tmp_42) {
+                                                    int tmp_41;
+                                                    tmp_41 = strcasecmp
+                                                    ((char const *)command,
+                                                     "local");
+                                                    if (tmp_41) {
+                                                      int tmp_40;
+                                                      tmp_40 = strcasecmp
+                                                      ((char const *)command,
+                                                       "lock_all");
+                                                      if (tmp_40) {
+                                                        int tmp_39;
+                                                        tmp_39 = strcasecmp
+                                                        ((char const *)command,
+                                                         "log");
+                                                        if (tmp_39) {
+                                                          int tmp_38;
+                                                          tmp_38 = strcasecmp
+                                                          ((char const *)command,
+                                                           "logbanner");
+                                                          if (tmp_38) {
+                                                            int tmp_37;
+                                                            tmp_37 = strcasecmp
+                                                            ((char const *)command,
+                                                             "logchange");
+                                                            if (tmp_37) {
+                                                              int tmp_36;
+                                                              tmp_36 = strcasecmp
+                                                              ((char const *)command,
+                                                               "logdir");
+                                                              if (tmp_36) {
+                                                                int tmp_35;
+                                                                tmp_35 = strcasecmp
+                                                                ((char const *)command,
+                                                                 "mailonchange");
+                                                                if (tmp_35) {
+                                                                  int tmp_34;
+                                                                  tmp_34 = strcasecmp
+                                                                  ((char const *)command,
+                                                                   "makestep");
+                                                                  if (tmp_34) {
+                                                                    int tmp_33;
+                                                                    tmp_33 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "manual");
+                                                                    if (tmp_33) {
+                                                                    int tmp_32;
+                                                                    tmp_32 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxchange");
+                                                                    if (tmp_32) {
+                                                                    int tmp_31;
+                                                                    tmp_31 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxclockerror");
+                                                                    if (tmp_31) {
+                                                                    int tmp_30;
+                                                                    tmp_30 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxdistance");
+                                                                    if (tmp_30) {
+                                                                    int tmp_29;
+                                                                    tmp_29 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxdrift");
+                                                                    if (tmp_29) {
+                                                                    int tmp_28;
+                                                                    tmp_28 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxjitter");
+                                                                    if (tmp_28) {
+                                                                    int tmp_27;
+                                                                    tmp_27 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxsamples");
+                                                                    if (tmp_27) {
+                                                                    int tmp_26;
+                                                                    tmp_26 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxslewrate");
+                                                                    if (tmp_26) {
+                                                                    int tmp_25;
+                                                                    tmp_25 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxupdateskew");
+                                                                    if (tmp_25) {
+                                                                    int tmp_24;
+                                                                    tmp_24 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "minsamples");
+                                                                    if (tmp_24) {
+                                                                    int tmp_23;
+                                                                    tmp_23 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "minsources");
+                                                                    if (tmp_23) {
+                                                                    int tmp_22;
+                                                                    tmp_22 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "noclientlog");
+                                                                    if (tmp_22) {
+                                                                    int tmp_21;
+                                                                    tmp_21 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "ntpsigndsocket");
+                                                                    if (tmp_21) {
+                                                                    int tmp_20;
+                                                                    tmp_20 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "peer");
+                                                                    if (tmp_20) {
+                                                                    int tmp_19;
+                                                                    tmp_19 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "pidfile");
+                                                                    if (tmp_19) {
+                                                                    int tmp_18;
+                                                                    tmp_18 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "pool");
+                                                                    if (tmp_18) {
+                                                                    int tmp_17;
+                                                                    tmp_17 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "port");
+                                                                    if (tmp_17) {
+                                                                    int tmp_16;
+                                                                    tmp_16 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "ratelimit");
+                                                                    if (tmp_16) {
+                                                                    int tmp_15;
+                                                                    tmp_15 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "refclock");
+                                                                    if (tmp_15) {
+                                                                    int tmp_14;
+                                                                    tmp_14 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "reselectdist");
+                                                                    if (tmp_14) {
+                                                                    int tmp_13;
+                                                                    tmp_13 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtcautotrim");
+                                                                    if (tmp_13) {
+                                                                    int tmp_12;
+                                                                    tmp_12 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtcdevice");
+                                                                    if (tmp_12) {
+                                                                    int tmp_11;
+                                                                    tmp_11 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtcfile");
+                                                                    if (tmp_11) {
+                                                                    int tmp_10;
+                                                                    tmp_10 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtconutc");
+                                                                    if (tmp_10) {
+                                                                    int tmp_9;
+                                                                    tmp_9 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtcsync");
+                                                                    if (tmp_9) {
+                                                                    int tmp_8;
+                                                                    tmp_8 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "sched_priority");
+                                                                    if (tmp_8) {
+                                                                    int tmp_7;
+                                                                    tmp_7 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "server");
+                                                                    if (tmp_7) {
+                                                                    int tmp_6;
+                                                                    tmp_6 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "smoothtime");
+                                                                    if (tmp_6) {
+                                                                    int tmp_5;
+                                                                    tmp_5 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "stratumweight");
+                                                                    if (tmp_5) {
+                                                                    int tmp_4;
+                                                                    tmp_4 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "tempcomp");
+                                                                    if (tmp_4) {
+                                                                    int tmp_3;
+                                                                    tmp_3 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "user");
+                                                                    if (tmp_3) {
+                                                                    int tmp;
+                                                                    tmp = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "commandkey");
+                                                                    if (tmp) {
+                                                                    int tmp_0;
+                                                                    tmp_0 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "generatecommandkey");
+                                                                    if (tmp_0) {
+                                                                    int tmp_1;
+                                                                    tmp_1 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "linux_freq_scale");
+                                                                    if (tmp_1) {
+                                                                    int tmp_2;
+                                                                    tmp_2 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "linux_hz");
+                                                                    if (tmp_2) 
+                                                                    other_parse_error
+                                                                    ("Invalid command");
+                                                                    else {
+                                                                    _LOR:
+                                                                    {
+                                                                    char *__va_arg0 =
+                                                                    command;
+                                                                    void *__va_args[1] =
+                                                                    {& __va_arg0};
+                                                                    LOG_Message
+                                                                    (LOGS_WARN,
+                                                                    "%s directive is no longer supported",
+                                                                    (void * const *)(__va_args));
+                                                                    }
+                                                                    }
+                                                                    }
+                                                                    else 
+                                                                    goto _LOR;
+                                                                    }
+                                                                    else 
+                                                                    goto _LOR;
+                                                                    }
+                                                                    else 
+                                                                    goto _LOR;
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & user);
+                                                                    }
+                                                                    else 
+                                                                    parse_tempcomp
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & stratum_weight);
+                                                                    }
+                                                                    else 
+                                                                    parse_smoothtime
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_source
+                                                                    (p,
+                                                                    NTP_SERVER,
+                                                                    0);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & sched_priority);
+                                                                    }
+                                                                    else 
+                                                                    rtc_sync = parse_null
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    rtc_on_utc = parse_null
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & rtc_file);
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & rtc_device);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & rtc_autotrim_threshold);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & reselect_distance);
+                                                                    }
+                                                                    else 
+                                                                    parse_refclock
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_ratelimit
+                                                                    (p,
+                                                                    & ntp_ratelimit_enabled,
+                                                                    & ntp_ratelimit_interval,
+                                                                    & ntp_ratelimit_burst,
+                                                                    & ntp_ratelimit_leak);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & ntp_port);
+                                                                    }
+                                                                    else 
+                                                                    parse_source
+                                                                    (p,
+                                                                    NTP_SERVER,
+                                                                    1);
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & pidfile);
+                                                                    }
+                                                                    else 
+                                                                    parse_source
+                                                                    (p,
+                                                                    NTP_PEER,
+                                                                    0);
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & ntp_signd_socket);
+                                                                    }
+                                                                    else 
+                                                                    no_client_log = parse_null
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & min_sources);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & min_samples);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_update_skew);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_slew_rate);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & max_samples);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_jitter);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_drift);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_distance);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_clock_error);
+                                                                    }
+                                                                    else 
+                                                                    parse_maxchange
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    enable_manual = parse_null
+                                                                    (p);
+                                                                  }
+                                                                  else 
+                                                                    parse_makestep
+                                                                    (p);
+                                                                }
+                                                                else 
+                                                                  parse_mailonchange
+                                                                  (p);
+                                                              }
+                                                              else parse_string
+                                                                   (p,
+                                                                    & logdir);
+                                                            }
+                                                            else parse_double
+                                                                 (p,
+                                                                  & log_change_threshold);
+                                                          }
+                                                          else parse_int
+                                                               (p,
+                                                                & log_banner);
+                                                        }
+                                                        else parse_log(p);
+                                                      }
+                                                      else lock_memory = parse_null
+                                                           (p);
+                                                    }
+                                                    else parse_local(p);
+                                                  }
+                                                  else parse_string(p,
+                                                                    & leapsec_tz);
+                                                }
+                                                else parse_leapsecmode(p);
+                                              }
+                                              else parse_string(p,
+                                                                & keys_file);
+                                            }
+                                            else parse_initstepslew(p);
+                                          }
+                                          else parse_include(p);
+                                        }
+                                        else parse_hwtimestamp(p);
+                                      }
+                                      else parse_string(p,& hwclock_file);
+                                    }
+                                    else parse_fallbackdrift(p);
+                                  }
+                                }
+                                else parse_string(p,& dumpdir);
+                              }
+                              else parse_string(p,& drift_file);
+                            }
+                            else parse_allow_deny(p,ntp_restrictions,0);
+                          }
+                          else parse_double(p,& correction_time_ratio);
+                        }
+                        else parse_double(p,& combine_limit);
+                      }
+                      else parse_ratelimit(p,& cmd_ratelimit_enabled,
+                                           & cmd_ratelimit_interval,
+                                           & cmd_ratelimit_burst,
+                                           & cmd_ratelimit_leak);
+                    }
+                    else parse_int(p,& cmd_port);
+                  }
+                  else parse_allow_deny(p,cmd_restrictions,0);
+                }
+                else parse_allow_deny(p,cmd_restrictions,1);
+              }
+              else parse_clientloglimit(p);
+            }
+            else parse_broadcast(p);
+          }
+          else parse_bindcmdaddress(p);
+        }
+        else parse_bindaddress(p);
+      }
+      else parse_bindacqaddress(p);
+    }
+    else parse_allow_deny(p,ntp_restrictions,1);
+  }
+  else parse_int(p,& acquisition_port);
+  return_label: return;
+}
+
+static int parse_string(char *line, char **result)
+{
+  int __retres;
+  check_number_of_args(line,1);
+  free((void *)*result);
+  *result = Strdup((char const *)line);
+  __retres = 1;
+  return __retres;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_22(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+static int parse_int(char *line, int *result)
+{
+  int __retres;
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = sscanf_va_22((char const *)line,"%d",result);
+  if (tmp != 1) {
+    command_parse_error();
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_23(char const * __restrict s, char const * __restrict format,
+                 double *param0);
+
+static int parse_double(char *line, double *result)
+{
+  int __retres;
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = sscanf_va_23((char const *)line,"%lf",result);
+  if (tmp != 1) {
+    command_parse_error();
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int parse_null(char *line)
+{
+  int __retres;
+  check_number_of_args(line,0);
+  __retres = 1;
+  return __retres;
+}
+
+static void parse_source(char *line, NTP_Source_Type type, int pool)
+{
+  NTP_Source source;
+  int tmp;
+  source.type = type;
+  source.pool = pool;
+  tmp = CPS_ParseNTPSourceAdd(line,& source.params);
+  if (! tmp) {
+    command_parse_error();
+    goto return_label;
+  }
+  source.params.name = Strdup((char const *)source.params.name);
+  ARR_AppendElement(ntp_sources,(void *)(& source));
+  return_label: return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_24(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+static void parse_ratelimit(char *line, int *enabled_0, int *interval,
+                            int *burst, int *leak)
+{
+  int n;
+  int val;
+  char *opt;
+  *enabled_0 = 1;
+  while (*line) {
+    int tmp;
+    int tmp_2;
+    opt = line;
+    line = CPS_SplitWord(line);
+    tmp = sscanf_va_24((char const *)line,"%d%n",& val,& n);
+    if (tmp != 1) {
+      command_parse_error();
+      goto return_label;
+    }
+    line += n;
+    tmp_2 = strcasecmp((char const *)opt,"interval");
+    if (tmp_2) {
+      int tmp_1;
+      tmp_1 = strcasecmp((char const *)opt,"burst");
+      if (tmp_1) {
+        int tmp_0;
+        tmp_0 = strcasecmp((char const *)opt,"leak");
+        if (tmp_0) command_parse_error(); else *leak = val;
+      }
+      else *burst = val;
+    }
+    else *interval = val;
+  }
+  return_label: return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_25(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_26(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_27(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_28(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_29(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_30(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_31(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_32(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_33(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_34(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_35(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_36(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_37(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    ensures \initialized(param1);
+    assigns \result, *param1, *(param0 + (0 ..));
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *(param0 + (0 ..))
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_38(char const * __restrict s, char const * __restrict format,
+                 char *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    ensures \initialized(param1);
+    assigns \result, *param1, *(param0 + (0 ..));
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *(param0 + (0 ..))
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_39(char const * __restrict s, char const * __restrict format,
+                 char *param0, int *param1);
+
+static void parse_refclock(char *line)
+{
+  int n;
+  int poll;
+  int dpoll;
+  int filter_length;
+  int pps_rate;
+  int min_samples_0;
+  int max_samples_0;
+  int sel_options;
+  int max_lock_age;
+  int pps_forced;
+  int stratum;
+  int tai;
+  uint32_t ref_id;
+  uint32_t lock_ref_id;
+  double offset;
+  double delay;
+  double precision;
+  double max_dispersion;
+  double pulse_width;
+  char *p;
+  char *cmd;
+  char *name;
+  char *param;
+  unsigned char ref[5];
+  RefclockParameters *refclock;
+  poll = 4;
+  dpoll = 0;
+  filter_length = 64;
+  pps_forced = 0;
+  pps_rate = 0;
+  min_samples_0 = -1;
+  max_samples_0 = -1;
+  sel_options = 0;
+  offset = 0.0;
+  delay = 1e-9;
+  precision = 0.0;
+  max_dispersion = 0.0;
+  pulse_width = 0.0;
+  ref_id = (unsigned int)0;
+  max_lock_age = 2;
+  lock_ref_id = (unsigned int)0;
+  stratum = 0;
+  tai = 0;
+  if (! *line) {
+    command_parse_error();
+    goto return_label;
+  }
+  p = line;
+  line = CPS_SplitWord(line);
+  if (! *line) {
+    command_parse_error();
+    goto return_label;
+  }
+  name = Strdup((char const *)p);
+  p = line;
+  line = CPS_SplitWord(line);
+  param = Strdup((char const *)p);
+  cmd = line;
+  while (*cmd) {
+    {
+      int tmp_34;
+      line = CPS_SplitWord(line);
+      tmp_34 = strcasecmp((char const *)cmd,"refid");
+      if (tmp_34) {
+        int tmp_33;
+        tmp_33 = strcasecmp((char const *)cmd,"lock");
+        if (tmp_33) {
+          int tmp_32;
+          tmp_32 = strcasecmp((char const *)cmd,"poll");
+          if (tmp_32) {
+            int tmp_31;
+            tmp_31 = strcasecmp((char const *)cmd,"dpoll");
+            if (tmp_31) {
+              int tmp_30;
+              tmp_30 = strcasecmp((char const *)cmd,"filter");
+              if (tmp_30) {
+                int tmp_29;
+                tmp_29 = strcasecmp((char const *)cmd,"rate");
+                if (tmp_29) {
+                  int tmp_28;
+                  tmp_28 = strcasecmp((char const *)cmd,"minsamples");
+                  if (tmp_28) {
+                    int tmp_27;
+                    tmp_27 = strcasecmp((char const *)cmd,"maxlockage");
+                    if (tmp_27) {
+                      int tmp_26;
+                      tmp_26 = strcasecmp((char const *)cmd,"maxsamples");
+                      if (tmp_26) {
+                        int tmp_25;
+                        tmp_25 = strcasecmp((char const *)cmd,"offset");
+                        if (tmp_25) {
+                          int tmp_24;
+                          tmp_24 = strcasecmp((char const *)cmd,"delay");
+                          if (tmp_24) {
+                            int tmp_23;
+                            tmp_23 = strcasecmp((char const *)cmd,"pps");
+                            if (tmp_23) {
+                              int tmp_22;
+                              tmp_22 = strcasecmp((char const *)cmd,
+                                                  "precision");
+                              if (tmp_22) {
+                                int tmp_21;
+                                tmp_21 = strcasecmp((char const *)cmd,
+                                                    "maxdispersion");
+                                if (tmp_21) {
+                                  int tmp_20;
+                                  tmp_20 = strcasecmp((char const *)cmd,
+                                                      "stratum");
+                                  if (tmp_20) {
+                                    int tmp_19;
+                                    tmp_19 = strcasecmp((char const *)cmd,
+                                                        "tai");
+                                    if (tmp_19) {
+                                      int tmp_18;
+                                      tmp_18 = strcasecmp((char const *)cmd,
+                                                          "width");
+                                      if (tmp_18) {
+                                        int tmp_17;
+                                        tmp_17 = strcasecmp((char const *)cmd,
+                                                            "noselect");
+                                        if (tmp_17) {
+                                          int tmp_16;
+                                          tmp_16 = strcasecmp((char const *)cmd,
+                                                              "prefer");
+                                          if (tmp_16) {
+                                            int tmp_15;
+                                            tmp_15 = strcasecmp((char const *)cmd,
+                                                                "trust");
+                                            if (tmp_15) {
+                                              int tmp_14;
+                                              tmp_14 = strcasecmp((char const *)cmd,
+                                                                  "require");
+                                              if (tmp_14) {
+                                                other_parse_error("Invalid refclock option");
+                                                goto return_label;
+                                              }
+                                              else {
+                                                n = 0;
+                                                sel_options |= 0x8;
+                                              }
+                                            }
+                                            else {
+                                              n = 0;
+                                              sel_options |= 0x4;
+                                            }
+                                          }
+                                          else {
+                                            n = 0;
+                                            sel_options |= 0x2;
+                                          }
+                                        }
+                                        else {
+                                          n = 0;
+                                          sel_options |= 0x1;
+                                        }
+                                      }
+                                      else {
+                                        int tmp_13;
+                                        tmp_13 = sscanf_va_25((char const *)line,
+                                                              "%lf%n",
+                                                              & pulse_width,
+                                                              & n);
+                                        if (tmp_13 != 1) break;
+                                      }
+                                    }
+                                    else {
+                                      n = 0;
+                                      tai = 1;
+                                    }
+                                  }
+                                  else {
+                                    int tmp_12;
+                                    tmp_12 = sscanf_va_26((char const *)line,
+                                                          "%d%n",& stratum,
+                                                          & n);
+                                    if (tmp_12 != 1) break;
+                                    else 
+                                      if (stratum >= 16) break;
+                                      else 
+                                        if (stratum < 0) break;
+                                  }
+                                }
+                                else {
+                                  int tmp_11;
+                                  tmp_11 = sscanf_va_27((char const *)line,
+                                                        "%lf%n",
+                                                        & max_dispersion,& n);
+                                  if (tmp_11 != 1) break;
+                                }
+                              }
+                              else {
+                                int tmp_10;
+                                tmp_10 = sscanf_va_28((char const *)line,
+                                                      "%lf%n",& precision,
+                                                      & n);
+                                if (tmp_10 != 1) break;
+                              }
+                            }
+                            else {
+                              n = 0;
+                              pps_forced = 1;
+                            }
+                          }
+                          else {
+                            int tmp_9;
+                            tmp_9 = sscanf_va_29((char const *)line,"%lf%n",
+                                                 & delay,& n);
+                            if (tmp_9 != 1) break;
+                          }
+                        }
+                        else {
+                          int tmp_8;
+                          tmp_8 = sscanf_va_30((char const *)line,"%lf%n",
+                                               & offset,& n);
+                          if (tmp_8 != 1) break;
+                        }
+                      }
+                      else {
+                        int tmp_7;
+                        tmp_7 = sscanf_va_31((char const *)line,"%d%n",
+                                             & max_samples_0,& n);
+                        if (tmp_7 != 1) break;
+                      }
+                    }
+                    else {
+                      int tmp_6;
+                      tmp_6 = sscanf_va_32((char const *)line,"%d%n",
+                                           & max_lock_age,& n);
+                      if (tmp_6 != 1) break;
+                    }
+                  }
+                  else {
+                    int tmp_5;
+                    tmp_5 = sscanf_va_33((char const *)line,"%d%n",
+                                         & min_samples_0,& n);
+                    if (tmp_5 != 1) break;
+                  }
+                }
+                else {
+                  int tmp_4;
+                  tmp_4 = sscanf_va_34((char const *)line,"%d%n",& pps_rate,
+                                       & n);
+                  if (tmp_4 != 1) break;
+                }
+              }
+              else {
+                int tmp_3;
+                tmp_3 = sscanf_va_35((char const *)line,"%d%n",
+                                     & filter_length,& n);
+                if (tmp_3 != 1) break;
+              }
+            }
+            else {
+              int tmp_2;
+              tmp_2 = sscanf_va_36((char const *)line,"%d%n",& dpoll,& n);
+              if (tmp_2 != 1) break;
+            }
+          }
+          else {
+            int tmp_1;
+            tmp_1 = sscanf_va_37((char const *)line,"%d%n",& poll,& n);
+            if (tmp_1 != 1) break;
+          }
+        }
+        else {
+          int tmp_0;
+          tmp_0 = sscanf_va_38((char const *)line,"%4s%n",(char *)(ref),& n);
+          if (tmp_0 != 1) break;
+          lock_ref_id = ((((unsigned int)ref[0] << 24) | (unsigned int)(
+                          (int)ref[1] << 16)) | (unsigned int)((int)ref[2] << 8)) | (unsigned int)ref[3];
+        }
+      }
+      else {
+        int tmp;
+        tmp = sscanf_va_39((char const *)line,"%4s%n",(char *)(ref),& n);
+        if (tmp != 1) break;
+        ref_id = ((((unsigned int)ref[0] << 24) | (unsigned int)((int)ref[1] << 16)) | (unsigned int)(
+                  (int)ref[2] << 8)) | (unsigned int)ref[3];
+      }
+    }
+    line += n;
+    cmd = line;
+  }
+  if (*cmd) {
+    command_parse_error();
+    goto return_label;
+  }
+  refclock = (RefclockParameters *)ARR_GetNewElement(refclock_sources);
+  refclock->driver_name = name;
+  refclock->driver_parameter = param;
+  refclock->driver_poll = dpoll;
+  refclock->poll = poll;
+  refclock->filter_length = filter_length;
+  refclock->pps_forced = pps_forced;
+  refclock->pps_rate = pps_rate;
+  refclock->min_samples = min_samples_0;
+  refclock->max_samples = max_samples_0;
+  refclock->sel_options = sel_options;
+  refclock->stratum = stratum;
+  refclock->tai = tai;
+  refclock->offset = offset;
+  refclock->delay = delay;
+  refclock->precision = precision;
+  refclock->max_dispersion = max_dispersion;
+  refclock->pulse_width = pulse_width;
+  refclock->ref_id = ref_id;
+  refclock->max_lock_age = max_lock_age;
+  refclock->lock_ref_id = lock_ref_id;
+  return_label: return;
+}
+
+static void parse_log(char *line)
+{
+  char *log_name;
+  while (1) {
+    log_name = line;
+    line = CPS_SplitWord(line);
+    if (*log_name) {
+      int tmp_5;
+      tmp_5 = strcmp((char const *)log_name,"rawmeasurements");
+      if (tmp_5) {
+        int tmp_4;
+        tmp_4 = strcmp((char const *)log_name,"measurements");
+        if (tmp_4) {
+          int tmp_3;
+          tmp_3 = strcmp((char const *)log_name,"statistics");
+          if (tmp_3) {
+            int tmp_2;
+            tmp_2 = strcmp((char const *)log_name,"tracking");
+            if (tmp_2) {
+              int tmp_1;
+              tmp_1 = strcmp((char const *)log_name,"rtc");
+              if (tmp_1) {
+                int tmp_0;
+                tmp_0 = strcmp((char const *)log_name,"refclocks");
+                if (tmp_0) {
+                  int tmp;
+                  tmp = strcmp((char const *)log_name,"tempcomp");
+                  if (tmp) {
+                    other_parse_error("Invalid log parameter");
+                    break;
+                  }
+                  else do_log_tempcomp = 1;
+                }
+                else do_log_refclocks = 1;
+              }
+              else do_log_rtc = 1;
+            }
+            else do_log_tracking = 1;
+          }
+          else do_log_statistics = 1;
+        }
+        else do_log_measurements = 1;
+      }
+      else {
+        do_log_measurements = 1;
+        raw_measurements = 1;
+      }
+    }
+    else break;
+  }
+  return;
+}
+
+static void parse_local(char *line)
+{
+  int tmp;
+  tmp = CPS_ParseLocal(line,& local_stratum,& local_orphan,& local_distance);
+  if (! tmp) command_parse_error();
+  enable_local = 1;
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_40(char const * __restrict s, char const * __restrict format,
+                 double *param0);
+
+static void parse_initstepslew(char *line)
+{
+  char *p;
+  char *hostname;
+  IPAddr ip_addr;
+  int tmp;
+  if (restarted) goto return_label;
+  ARR_SetSize(init_sources,(unsigned int)0);
+  p = CPS_SplitWord(line);
+  tmp = sscanf_va_40((char const *)line,"%lf",& init_slew_threshold);
+  if (tmp != 1) {
+    command_parse_error();
+    goto return_label;
+  }
+  while (*p) {
+    hostname = p;
+    p = CPS_SplitWord(p);
+    if (*hostname) {
+      DNS_Status tmp_0;
+      tmp_0 = DNS_Name2IPAddress((char const *)hostname,& ip_addr,1);
+      if (tmp_0 == (unsigned int)DNS_Success) ARR_AppendElement(init_sources,
+                                                                (void *)(& ip_addr));
+      else {
+        {
+          char *__va_arg0 = hostname;
+          void *__va_args[1] = {& __va_arg0};
+          LOG_Message(LOGS_WARN,
+                      "Could not resolve address of initstepslew server %s",
+                      (void * const *)(__va_args));
+        }
+      }
+    }
+  }
+  return_label: return;
+}
+
+static void parse_leapsecmode(char *line)
+{
+  int tmp_2;
+  tmp_2 = strcasecmp((char const *)line,"system");
+  if (tmp_2) {
+    int tmp_1;
+    tmp_1 = strcasecmp((char const *)line,"slew");
+    if (tmp_1) {
+      int tmp_0;
+      tmp_0 = strcasecmp((char const *)line,"step");
+      if (tmp_0) {
+        int tmp;
+        tmp = strcasecmp((char const *)line,"ignore");
+        if (tmp) command_parse_error();
+        else leapsec_mode = REF_LeapModeIgnore;
+      }
+      else leapsec_mode = REF_LeapModeStep;
+    }
+    else leapsec_mode = REF_LeapModeSlew;
+  }
+  else leapsec_mode = REF_LeapModeSystem;
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_41(char const * __restrict s, char const * __restrict format,
+                 unsigned long *param0);
+
+static void parse_clientloglimit(char *line)
+{
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = sscanf_va_41((char const *)line,"%lu",& client_log_limit);
+  if (tmp != 1) command_parse_error();
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_42(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+static void parse_fallbackdrift(char *line)
+{
+  int tmp;
+  check_number_of_args(line,2);
+  tmp = sscanf_va_42((char const *)line,"%d %d",& fb_drift_min,
+                     & fb_drift_max);
+  if (tmp != 2) command_parse_error();
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_43(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+static void parse_makestep(char *line)
+{
+  int tmp;
+  check_number_of_args(line,2);
+  tmp = sscanf_va_43((char const *)line,"%lf %d",& make_step_threshold,
+                     & make_step_limit);
+  if (tmp != 2) {
+    make_step_limit = 0;
+    command_parse_error();
+  }
+  if (restarted) 
+    if (make_step_limit > 0) make_step_limit = 0;
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_44(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1, int *param2);
+
+static void parse_maxchange(char *line)
+{
+  int tmp;
+  check_number_of_args(line,3);
+  tmp = sscanf_va_44((char const *)line,"%lf %d %d",& max_offset,
+                     & max_offset_delay,& max_offset_ignore);
+  if (tmp != 3) {
+    max_offset_delay = -1;
+    command_parse_error();
+  }
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_45(char const * __restrict s, char const * __restrict format,
+                 double *param0);
+
+static void parse_mailonchange(char *line)
+{
+  char *address;
+  int tmp;
+  check_number_of_args(line,2);
+  address = line;
+  line = CPS_SplitWord(line);
+  free((void *)mail_user_on_change);
+  tmp = sscanf_va_45((char const *)line,"%lf",& mail_change_threshold);
+  if (tmp == 1) mail_user_on_change = Strdup((char const *)address);
+  else {
+    mail_user_on_change = (char *)0;
+    command_parse_error();
+  }
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param3);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param3);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param3, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param3
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_46(char const * __restrict s, char const * __restrict format,
+                 unsigned long *param0, unsigned long *param1,
+                 unsigned long *param2, unsigned long *param3);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_47(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+static void parse_allow_deny(char *line, ARR_Instance restrictions, int allow)
+{
+  char *p;
+  unsigned long a;
+  unsigned long b;
+  unsigned long c;
+  unsigned long d;
+  unsigned long n;
+  IPAddr ip_addr;
+  int tmp;
+  int all = 0;
+  AllowDeny *new_node = (AllowDeny *)0;
+  p = line;
+  tmp = strncmp((char const *)p,"all",(unsigned long)3);
+  if (! tmp) {
+    all = 1;
+    p = CPS_SplitWord(line);
+  }
+  if (! *p) {
+    new_node = (AllowDeny *)ARR_GetNewElement(restrictions);
+    new_node->allow = allow;
+    new_node->all = all;
+    new_node->ip.family = (unsigned short)0;
+    new_node->subnet_bits = 0;
+  }
+  else {
+    char *slashpos;
+    int tmp_4;
+    slashpos = strchr((char const *)p,'/');
+    if (slashpos) *slashpos = (char)0;
+    check_number_of_args(p,1);
+    n = (unsigned long)0;
+    tmp_4 = UTI_StringToIP((char const *)p,& ip_addr);
+    if (tmp_4) goto _LOR;
+    else {
+      int tmp_5;
+      tmp_5 = sscanf_va_46((char const *)p,"%lu.%lu.%lu.%lu",& a,& b,& c,& d);
+      n = (unsigned long)tmp_5;
+      if (n >= (unsigned long)1) {
+        _LOR:
+        {
+          /*@ assert n ≤ 4; */ ;
+          new_node = (AllowDeny *)ARR_GetNewElement(restrictions);
+          new_node->allow = allow;
+          new_node->all = all;
+          if (n == (unsigned long)0) {
+            new_node->ip = ip_addr;
+            if ((int)ip_addr.family == 2) new_node->subnet_bits = 128;
+            else new_node->subnet_bits = 32;
+          }
+          else {
+            new_node->ip.family = (unsigned short)1;
+            a &= (unsigned long)0xff;
+            b &= (unsigned long)0xff;
+            c &= (unsigned long)0xff;
+            d &= (unsigned long)0xff;
+            switch (n) {
+              case (unsigned long)1:
+              new_node->ip.addr.in4 = (unsigned int)(a << 24);
+              new_node->subnet_bits = 8;
+              break;
+              case (unsigned long)2:
+              new_node->ip.addr.in4 = (unsigned int)((a << 24) | (b << 16));
+              new_node->subnet_bits = 16;
+              break;
+              case (unsigned long)3:
+              new_node->ip.addr.in4 = (unsigned int)(((a << 24) | (b << 16)) | (
+                                                     c << 8));
+              new_node->subnet_bits = 24;
+              break;
+              case (unsigned long)4:
+              new_node->ip.addr.in4 = (unsigned int)((((a << 24) | (b << 16)) | (
+                                                      c << 8)) | d);
+              new_node->subnet_bits = 32;
+              break;
+              default: __FC_assert(0 != 0,"conf.c",1073,"0");
+            }
+          }
+          if (slashpos) {
+            int specified_subnet_bits;
+            int n_0;
+            n_0 = sscanf_va_47((char const *)(slashpos + 1),"%d",
+                               & specified_subnet_bits);
+            if (n_0 == 1) new_node->subnet_bits = specified_subnet_bits;
+            else command_parse_error();
+          }
+        }
+      }
+      else 
+        if (! slashpos) {
+          DNS_Status tmp_3;
+          tmp_3 = DNS_Name2IPAddress((char const *)p,& ip_addr,1);
+          if (tmp_3 == (unsigned int)DNS_Success) {
+            new_node = (AllowDeny *)ARR_GetNewElement(restrictions);
+            new_node->allow = allow;
+            new_node->all = all;
+            new_node->ip = ip_addr;
+            if ((int)ip_addr.family == 2) new_node->subnet_bits = 128;
+            else new_node->subnet_bits = 32;
+          }
+          else goto _LAND;
+        }
+        else _LAND: command_parse_error();
+    }
+  }
+  return;
+}
+
+static void parse_bindacqaddress(char *line)
+{
+  IPAddr ip;
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = UTI_StringToIP((char const *)line,& ip);
+  if (tmp) {
+    if ((int)ip.family == 1) bind_acq_address4 = ip;
+    else 
+      if ((int)ip.family == 2) bind_acq_address6 = ip;
+  }
+  else command_parse_error();
+  return;
+}
+
+static void parse_bindaddress(char *line)
+{
+  IPAddr ip;
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = UTI_StringToIP((char const *)line,& ip);
+  if (tmp) {
+    if ((int)ip.family == 1) bind_address4 = ip;
+    else 
+      if ((int)ip.family == 2) bind_address6 = ip;
+  }
+  else command_parse_error();
+  return;
+}
+
+static void parse_bindcmdaddress(char *line)
+{
+  IPAddr ip;
+  check_number_of_args(line,1);
+  if ((int)*(line + 0) == '/') {
+    int tmp;
+    parse_string(line,& bind_cmd_path);
+    tmp = strcmp((char const *)bind_cmd_path,"/");
+    if (! tmp) *(bind_cmd_path + 0) = (char)'\000';
+  }
+  else {
+    int tmp_0;
+    tmp_0 = UTI_StringToIP((char const *)line,& ip);
+    if (tmp_0) {
+      if ((int)ip.family == 1) bind_cmd_address4 = ip;
+      else 
+        if ((int)ip.family == 2) bind_cmd_address6 = ip;
+    }
+    else command_parse_error();
+  }
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_48(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_49(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+static void parse_broadcast(char *line)
+{
+  NTP_Broadcast_Destination *destination;
+  int port;
+  int interval;
+  char *p;
+  IPAddr ip;
+  int tmp;
+  int tmp_0;
+  p = line;
+  line = CPS_SplitWord(line);
+  tmp = sscanf_va_48((char const *)p,"%d",& interval);
+  if (tmp != 1) {
+    command_parse_error();
+    goto return_label;
+  }
+  p = line;
+  line = CPS_SplitWord(line);
+  tmp_0 = UTI_StringToIP((char const *)p,& ip);
+  if (! tmp_0) {
+    command_parse_error();
+    goto return_label;
+  }
+  p = line;
+  line = CPS_SplitWord(line);
+  if (*p) {
+    int tmp_1;
+    tmp_1 = sscanf_va_49((char const *)p,"%d",& port);
+    if (tmp_1 != 1) goto _LOR;
+    else 
+      if (*line) {
+        _LOR: {
+                command_parse_error();
+                goto return_label;
+              }
+      }
+  }
+  else port = 123;
+  destination = (NTP_Broadcast_Destination *)ARR_GetNewElement(broadcasts);
+  destination->addr = ip;
+  destination->port = (unsigned short)port;
+  destination->interval = interval;
+  return_label: return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_50(char const * __restrict s, char const * __restrict format,
+                 double *param0, double *param1);
+
+static void parse_smoothtime(char *line)
+{
+  int tmp;
+  int tmp_0;
+  char *tmp_1;
+  tmp = get_number_of_args(line);
+  if (tmp != 3) check_number_of_args(line,2);
+  tmp_0 = sscanf_va_50((char const *)line,"%lf %lf",& smooth_max_freq,
+                       & smooth_max_wander);
+  if (tmp_0 != 2) {
+    smooth_max_freq = 0.0;
+    command_parse_error();
+  }
+  tmp_1 = CPS_SplitWord(line);
+  line = CPS_SplitWord(tmp_1);
+  smooth_leap_only = 0;
+  if (*line) {
+    int tmp_2;
+    tmp_2 = strcasecmp((char const *)line,"leaponly");
+    if (tmp_2) command_parse_error(); else smooth_leap_only = 1;
+  }
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_51(char const * __restrict s, char const * __restrict format,
+                 double *param0);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param4);
+    requires \valid(param3);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param4);
+    ensures \initialized(param3);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param4, *param3, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param4
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param3
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_52(char const * __restrict s, char const * __restrict format,
+                 double *param0, double *param1, double *param2,
+                 double *param3, double *param4);
+
+static void parse_tempcomp(char *line)
+{
+  char *p;
+  int point_form;
+  int tmp;
+  tmp = get_number_of_args(line);
+  point_form = tmp == 3;
+  if (! point_form) check_number_of_args(line,6);
+  p = line;
+  line = CPS_SplitWord(line);
+  if (! *p) {
+    command_parse_error();
+    goto return_label;
+  }
+  free((void *)tempcomp_point_file);
+  if (point_form) {
+    int tmp_0;
+    char *tmp_1;
+    tmp_0 = sscanf_va_51((char const *)line,"%lf",& tempcomp_interval);
+    if (tmp_0 != 1) {
+      command_parse_error();
+      goto return_label;
+    }
+    tmp_1 = CPS_SplitWord(line);
+    tempcomp_point_file = Strdup((char const *)tmp_1);
+  }
+  else {
+    int tmp_2;
+    tmp_2 = sscanf_va_52((char const *)line,"%lf %lf %lf %lf %lf",
+                         & tempcomp_interval,& tempcomp_T0,& tempcomp_k0,
+                         & tempcomp_k1,& tempcomp_k2);
+    if (tmp_2 != 5) {
+      command_parse_error();
+      goto return_label;
+    }
+    tempcomp_point_file = (char *)0;
+  }
+  free((void *)tempcomp_sensor_file);
+  tempcomp_sensor_file = Strdup((char const *)p);
+  return_label: return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    ensures \initialized(param1);
+    assigns \result, *param1, *(param0 + (0 ..));
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *(param0 + (0 ..))
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_53(char const * __restrict s, char const * __restrict format,
+                 char *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_54(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_55(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_56(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_57(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_58(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_59(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+static void parse_hwtimestamp(char *line)
+{
+  CNF_HwTsInterface *iface;
+  char *p;
+  char filter[5];
+  int n;
+  if (! *line) {
+    command_parse_error();
+    goto return_label;
+  }
+  p = line;
+  line = CPS_SplitWord(line);
+  iface = (CNF_HwTsInterface *)ARR_GetNewElement(hwts_interfaces);
+  iface->name = Strdup((char const *)p);
+  iface->minpoll = 0;
+  iface->min_samples = 2;
+  iface->max_samples = 16;
+  iface->nocrossts = 0;
+  iface->rxfilter = CNF_HWTS_RXFILTER_ANY;
+  iface->precision = 100.0e-9;
+  iface->tx_comp = 0.0;
+  iface->rx_comp = 0.0;
+  p = line;
+  while (*p) {
+    {
+      int tmp_16;
+      line = CPS_SplitWord(line);
+      tmp_16 = strcasecmp((char const *)p,"maxsamples");
+      if (tmp_16) {
+        int tmp_15;
+        tmp_15 = strcasecmp((char const *)p,"minpoll");
+        if (tmp_15) {
+          int tmp_14;
+          tmp_14 = strcasecmp((char const *)p,"minsamples");
+          if (tmp_14) {
+            int tmp_13;
+            tmp_13 = strcasecmp((char const *)p,"precision");
+            if (tmp_13) {
+              int tmp_12;
+              tmp_12 = strcasecmp((char const *)p,"rxcomp");
+              if (tmp_12) {
+                int tmp_11;
+                tmp_11 = strcasecmp((char const *)p,"txcomp");
+                if (tmp_11) {
+                  int tmp_10;
+                  tmp_10 = strcasecmp((char const *)p,"rxfilter");
+                  if (tmp_10) {
+                    int tmp_9;
+                    tmp_9 = strcasecmp((char const *)p,"nocrossts");
+                    if (tmp_9) break;
+                    else {
+                      n = 0;
+                      iface->nocrossts = 1;
+                    }
+                  }
+                  else {
+                    int tmp_5;
+                    int tmp_8;
+                    tmp_5 = sscanf_va_53((char const *)line,"%4s%n",filter,
+                                         & n);
+                    if (tmp_5 != 1) break;
+                    tmp_8 = strcasecmp((char const *)(filter),"none");
+                    if (tmp_8) {
+                      int tmp_7;
+                      tmp_7 = strcasecmp((char const *)(filter),"ntp");
+                      if (tmp_7) {
+                        int tmp_6;
+                        tmp_6 = strcasecmp((char const *)(filter),"all");
+                        if (tmp_6) break;
+                        else iface->rxfilter = CNF_HWTS_RXFILTER_ALL;
+                      }
+                      else iface->rxfilter = CNF_HWTS_RXFILTER_NTP;
+                    }
+                    else iface->rxfilter = CNF_HWTS_RXFILTER_NONE;
+                  }
+                }
+                else {
+                  int tmp_4;
+                  tmp_4 = sscanf_va_54((char const *)line,"%lf%n",
+                                       & iface->tx_comp,& n);
+                  if (tmp_4 != 1) break;
+                }
+              }
+              else {
+                int tmp_3;
+                tmp_3 = sscanf_va_55((char const *)line,"%lf%n",
+                                     & iface->rx_comp,& n);
+                if (tmp_3 != 1) break;
+              }
+            }
+            else {
+              int tmp_2;
+              tmp_2 = sscanf_va_56((char const *)line,"%lf%n",
+                                   & iface->precision,& n);
+              if (tmp_2 != 1) break;
+            }
+          }
+          else {
+            int tmp_1;
+            tmp_1 = sscanf_va_57((char const *)line,"%d%n",
+                                 & iface->min_samples,& n);
+            if (tmp_1 != 1) break;
+          }
+        }
+        else {
+          int tmp_0;
+          tmp_0 = sscanf_va_58((char const *)line,"%d%n",& iface->minpoll,
+                               & n);
+          if (tmp_0 != 1) break;
+        }
+      }
+      else {
+        int tmp;
+        tmp = sscanf_va_59((char const *)line,"%d%n",& iface->max_samples,
+                           & n);
+        if (tmp != 1) break;
+      }
+    }
+    line += n;
+    p = line;
+  }
+  if (*p) command_parse_error();
+  return_label: return;
+}
+
+/*@ assigns \nothing; */
+static void parse_include(char *line)
+{
+  glob_t gl;
+  size_t i;
+  int r;
+  check_number_of_args(line,1);
+  r = glob((char const *)line,1 << 0,
+           (int (*)(char const *epath, int eerrno))0,& gl);
+  if (r != 0) {
+    if (r != 3) {
+      {
+        char *__va_arg0 = line;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_FATAL,"Could not search for files matching %s",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+    goto return_label;
+  }
+  i = (unsigned long)0;
+  while (i < gl.gl_pathc) {
+    CNF_ReadFile((char const *)*(gl.gl_pathv + i));
+    i += (size_t)1;
+  }
+  globfree(& gl);
+  return_label: return;
+}
+
+void CNF_CreateDirs(uid_t uid, gid_t gid)
+{
+  char *dir;
+  if (*(bind_cmd_path + 0)) {
+    int tmp;
+    dir = UTI_PathToDir((char const *)bind_cmd_path);
+    UTI_CreateDirAndParents((char const *)dir,(unsigned int)0770,uid,gid);
+    tmp = UTI_CheckDirPermissions((char const *)dir,(unsigned int)0770,uid,
+                                  gid);
+    if (! tmp) {
+      {
+        char *__va_arg0 = bind_cmd_path;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_WARN,"Disabled command socket %s",
+                    (void * const *)(__va_args));
+      }
+      *(bind_cmd_path + 0) = (char)'\000';
+    }
+    free((void *)dir);
+  }
+  if (*(logdir + 0)) UTI_CreateDirAndParents((char const *)logdir,
+                                             (unsigned int)0755,uid,gid);
+  if (*(dumpdir + 0)) UTI_CreateDirAndParents((char const *)dumpdir,
+                                              (unsigned int)0755,uid,gid);
+  return;
+}
+
+void CNF_AddInitSources(void)
+{
+  CPS_NTP_Source cps_source;
+  NTP_Remote_Address ntp_addr;
+  unsigned int i;
+  char dummy_hostname[2] = {(char)'H', (char)'\000'};
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(init_sources);
+    ;
+    if (! (i < tmp_0)) break;
+    {
+      void *tmp;
+      CPS_ParseNTPSourceAdd(dummy_hostname,& cps_source);
+      tmp = ARR_GetElement(init_sources,i);
+      ntp_addr.ip_addr = *((IPAddr *)tmp);
+      ntp_addr.port = cps_source.port;
+      cps_source.params.iburst = 1;
+      cps_source.params.connectivity = SRC_OFFLINE;
+      NSR_AddSource(& ntp_addr,NTP_SERVER,& cps_source.params);
+    }
+    i ++;
+  }
+  ARR_SetSize(init_sources,(unsigned int)0);
+  return;
+}
+
+void CNF_AddSources(void)
+{
+  NTP_Source *source;
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(ntp_sources);
+    ;
+    if (! (i < tmp_0)) break;
+    source = (NTP_Source *)ARR_GetElement(ntp_sources,i);
+    NSR_AddSourceByName(source->params.name,(int)source->params.port,
+                        source->pool,source->type,& source->params.params);
+    free((void *)source->params.name);
+    i ++;
+  }
+  ARR_SetSize(ntp_sources,(unsigned int)0);
+  return;
+}
+
+void CNF_AddRefclocks(void)
+{
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(refclock_sources);
+    ;
+    if (! (i < tmp_0)) break;
+    {
+      void *tmp;
+      tmp = ARR_GetElement(refclock_sources,i);
+      RCL_AddRefclock((RefclockParameters *)tmp);
+    }
+    i ++;
+  }
+  ARR_SetSize(refclock_sources,(unsigned int)0);
+  return;
+}
+
+void CNF_AddBroadcasts(void)
+{
+  unsigned int i;
+  NTP_Broadcast_Destination *destination;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(broadcasts);
+    ;
+    if (! (i < tmp_0)) break;
+    destination = (NTP_Broadcast_Destination *)ARR_GetElement(broadcasts,i);
+    NCR_AddBroadcastDestination(& destination->addr,destination->port,
+                                destination->interval);
+    i ++;
+  }
+  ARR_SetSize(broadcasts,(unsigned int)0);
+  return;
+}
+
+int CNF_GetNTPPort(void)
+{
+  return ntp_port;
+}
+
+int CNF_GetAcquisitionPort(void)
+{
+  return acquisition_port;
+}
+
+char *CNF_GetDriftFile(void)
+{
+  return drift_file;
+}
+
+int CNF_GetLogBanner(void)
+{
+  return log_banner;
+}
+
+char *CNF_GetLogDir(void)
+{
+  return logdir;
+}
+
+char *CNF_GetDumpDir(void)
+{
+  return dumpdir;
+}
+
+int CNF_GetLogMeasurements(int *raw)
+{
+  *raw = raw_measurements;
+  return do_log_measurements;
+}
+
+int CNF_GetLogStatistics(void)
+{
+  return do_log_statistics;
+}
+
+int CNF_GetLogTracking(void)
+{
+  return do_log_tracking;
+}
+
+int CNF_GetLogRtc(void)
+{
+  return do_log_rtc;
+}
+
+int CNF_GetLogRefclocks(void)
+{
+  return do_log_refclocks;
+}
+
+int CNF_GetLogTempComp(void)
+{
+  return do_log_tempcomp;
+}
+
+char *CNF_GetKeysFile(void)
+{
+  return keys_file;
+}
+
+double CNF_GetRtcAutotrim(void)
+{
+  return rtc_autotrim_threshold;
+}
+
+char *CNF_GetRtcFile(void)
+{
+  return rtc_file;
+}
+
+char *CNF_GetRtcDevice(void)
+{
+  return rtc_device;
+}
+
+double CNF_GetMaxUpdateSkew(void)
+{
+  return max_update_skew;
+}
+
+double CNF_GetMaxDrift(void)
+{
+  return max_drift;
+}
+
+double CNF_GetMaxClockError(void)
+{
+  return max_clock_error;
+}
+
+double CNF_GetCorrectionTimeRatio(void)
+{
+  return correction_time_ratio;
+}
+
+double CNF_GetMaxSlewRate(void)
+{
+  return max_slew_rate;
+}
+
+double CNF_GetMaxDistance(void)
+{
+  return max_distance;
+}
+
+double CNF_GetMaxJitter(void)
+{
+  return max_jitter;
+}
+
+double CNF_GetReselectDistance(void)
+{
+  return reselect_distance;
+}
+
+double CNF_GetStratumWeight(void)
+{
+  return stratum_weight;
+}
+
+double CNF_GetCombineLimit(void)
+{
+  return combine_limit;
+}
+
+int CNF_GetManualEnabled(void)
+{
+  return enable_manual;
+}
+
+int CNF_GetCommandPort(void)
+{
+  return cmd_port;
+}
+
+int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance)
+{
+  int __retres;
+  if (enable_local) {
+    *stratum = local_stratum;
+    *orphan = local_orphan;
+    *distance = local_distance;
+    __retres = 1;
+    goto return_label;
+  }
+  else {
+    __retres = 0;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+int CNF_GetRtcOnUtc(void)
+{
+  return rtc_on_utc;
+}
+
+int CNF_GetRtcSync(void)
+{
+  return rtc_sync;
+}
+
+void CNF_GetMakeStep(int *limit, double *threshold)
+{
+  *limit = make_step_limit;
+  *threshold = make_step_threshold;
+  return;
+}
+
+void CNF_GetMaxChange(int *delay, int *ignore, double *offset)
+{
+  *delay = max_offset_delay;
+  *ignore = max_offset_ignore;
+  *offset = max_offset;
+  return;
+}
+
+double CNF_GetLogChange(void)
+{
+  return log_change_threshold;
+}
+
+void CNF_GetMailOnChange(int *enabled_0, double *threshold, char **user_0)
+{
+  if (mail_user_on_change) {
+    *enabled_0 = 1;
+    *threshold = mail_change_threshold;
+    *user_0 = mail_user_on_change;
+  }
+  else {
+    *enabled_0 = 0;
+    *threshold = 0.0;
+    *user_0 = (char *)0;
+  }
+  return;
+}
+
+void CNF_SetupAccessRestrictions(void)
+{
+  AllowDeny *node;
+  int status;
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(ntp_restrictions);
+    ;
+    if (! (i < tmp_0)) break;
+    node = (AllowDeny *)ARR_GetElement(ntp_restrictions,i);
+    status = NCR_AddAccessRestriction(& node->ip,node->subnet_bits,
+                                      node->allow,node->all);
+    if (! status) {
+      char *tmp;
+      ;
+      tmp = UTI_IPToString(& node->ip);
+      {
+        char *__va_arg0 = tmp;
+        int __va_arg1 = node->subnet_bits;
+        void *__va_args[2] = {& __va_arg0, & __va_arg1};
+        LOG_Message(LOGS_FATAL,"Bad subnet in %s/%d",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+    i ++;
+  }
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_2;
+    tmp_2 = ARR_GetSize(cmd_restrictions);
+    ;
+    if (! (i < tmp_2)) break;
+    node = (AllowDeny *)ARR_GetElement(cmd_restrictions,i);
+    status = CAM_AddAccessRestriction(& node->ip,node->subnet_bits,
+                                      node->allow,node->all);
+    if (! status) {
+      char *tmp_1;
+      ;
+      tmp_1 = UTI_IPToString(& node->ip);
+      {
+        char *__va_arg0_12 = tmp_1;
+        int __va_arg1_14 = node->subnet_bits;
+        void *__va_args_16[2] = {& __va_arg0_12, & __va_arg1_14};
+        LOG_Message(LOGS_FATAL,"Bad subnet in %s/%d",
+                    (void * const *)(__va_args_16));
+      }
+      exit(1);
+    }
+    i ++;
+  }
+  ARR_SetSize(ntp_restrictions,(unsigned int)0);
+  ARR_SetSize(cmd_restrictions,(unsigned int)0);
+  return;
+}
+
+int CNF_GetNoClientLog(void)
+{
+  return no_client_log;
+}
+
+unsigned long CNF_GetClientLogLimit(void)
+{
+  return client_log_limit;
+}
+
+void CNF_GetFallbackDrifts(int *min, int *max)
+{
+  *min = fb_drift_min;
+  *max = fb_drift_max;
+  return;
+}
+
+void CNF_GetBindAddress(int family, IPAddr *addr)
+{
+  if (family == 1) *addr = bind_address4;
+  else 
+    if (family == 2) *addr = bind_address6;
+    else addr->family = (unsigned short)0;
+  return;
+}
+
+void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr)
+{
+  if (family == 1) *addr = bind_acq_address4;
+  else 
+    if (family == 2) *addr = bind_acq_address6;
+    else addr->family = (unsigned short)0;
+  return;
+}
+
+char *CNF_GetBindCommandPath(void)
+{
+  return bind_cmd_path;
+}
+
+void CNF_GetBindCommandAddress(int family, IPAddr *addr)
+{
+  if (family == 1) *addr = bind_cmd_address4;
+  else 
+    if (family == 2) *addr = bind_cmd_address6;
+    else addr->family = (unsigned short)0;
+  return;
+}
+
+char *CNF_GetNtpSigndSocket(void)
+{
+  return ntp_signd_socket;
+}
+
+char *CNF_GetPidFile(void)
+{
+  return pidfile;
+}
+
+REF_LeapMode CNF_GetLeapSecMode(void)
+{
+  return leapsec_mode;
+}
+
+char *CNF_GetLeapSecTimezone(void)
+{
+  return leapsec_tz;
+}
+
+int CNF_GetSchedPriority(void)
+{
+  return sched_priority;
+}
+
+int CNF_GetLockMemory(void)
+{
+  return lock_memory;
+}
+
+int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak)
+{
+  *interval = ntp_ratelimit_interval;
+  *burst = ntp_ratelimit_burst;
+  *leak = ntp_ratelimit_leak;
+  return ntp_ratelimit_enabled;
+}
+
+int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak)
+{
+  *interval = cmd_ratelimit_interval;
+  *burst = cmd_ratelimit_burst;
+  *leak = cmd_ratelimit_leak;
+  return cmd_ratelimit_enabled;
+}
+
+void CNF_GetSmooth(double *max_freq_0, double *max_wander_0, int *leap_only)
+{
+  *max_freq_0 = smooth_max_freq;
+  *max_wander_0 = smooth_max_wander;
+  *leap_only = smooth_leap_only;
+  return;
+}
+
+void CNF_GetTempComp(char **file, double *interval, char **point_file,
+                     double *T0, double *k0, double *k1, double *k2)
+{
+  *file = tempcomp_sensor_file;
+  *point_file = tempcomp_point_file;
+  *interval = tempcomp_interval;
+  *T0 = tempcomp_T0;
+  *k0 = tempcomp_k0;
+  *k1 = tempcomp_k1;
+  *k2 = tempcomp_k2;
+  return;
+}
+
+char *CNF_GetUser(void)
+{
+  return user;
+}
+
+int CNF_GetMaxSamples(void)
+{
+  return max_samples;
+}
+
+int CNF_GetMinSamples(void)
+{
+  return min_samples;
+}
+
+int CNF_GetMinSources(void)
+{
+  return min_sources;
+}
+
+char *CNF_GetHwclockFile(void)
+{
+  return hwclock_file;
+}
+
+int CNF_GetInitSources(void)
+{
+  int __retres;
+  unsigned int tmp;
+  tmp = ARR_GetSize(init_sources);
+  __retres = (int)tmp;
+  return __retres;
+}
+
+double CNF_GetInitStepThreshold(void)
+{
+  return init_slew_threshold;
+}
+
+int CNF_GetHwTsInterface(unsigned int index_0, CNF_HwTsInterface **iface)
+{
+  int __retres;
+  unsigned int tmp;
+  tmp = ARR_GetSize(hwts_interfaces);
+  ;
+  if (index_0 >= tmp) {
+    __retres = 0;
+    goto return_label;
+  }
+  *iface = (CNF_HwTsInterface *)ARR_GetElement(hwts_interfaces,index_0);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void MD5Init(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__));
+
+void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf,
+               unsigned int inLen) __attribute__((__FC_OLDSTYLEPROTO__));
+
+void MD5Final(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__));
+
+static void Transform(UINT4 *buf, UINT4 *in) __attribute__((__FC_OLDSTYLEPROTO__));
+
+static unsigned char const PADDING[64] =
+  {(unsigned char)0x80,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00};
+void MD5Init(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__));
+void MD5Init(MD5_CTX *mdContext)
+{
+  UINT4 tmp;
+  tmp = (unsigned int)0;
+  mdContext->i[1] = tmp;
+  mdContext->i[0] = tmp;
+  mdContext->buf[0] = (unsigned int)0x67452301;
+  mdContext->buf[1] = 0xefcdab89;
+  mdContext->buf[2] = 0x98badcfe;
+  mdContext->buf[3] = (unsigned int)0x10325476;
+  return;
+}
+
+void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf,
+               unsigned int inLen) __attribute__((__FC_OLDSTYLEPROTO__));
+void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf,
+               unsigned int inLen)
+{
+  UINT4 in[16];
+  int mdi;
+  unsigned int i;
+  unsigned int ii;
+  mdi = (int)((mdContext->i[0] >> 3) & (unsigned int)0x3F);
+  if (mdContext->i[0] + (inLen << 3) < mdContext->i[0]) mdContext->i[1] += (UINT4)1;
+  mdContext->i[0] += inLen << 3;
+  mdContext->i[1] += inLen >> 29;
+  while (1) {
+    unsigned int tmp_1;
+    tmp_1 = inLen;
+    inLen --;
+    ;
+    if (! tmp_1) break;
+    {
+      int tmp;
+      unsigned char const *tmp_0;
+      tmp = mdi;
+      mdi ++;
+      tmp_0 = inBuf;
+      inBuf ++;
+      mdContext->in[tmp] = *tmp_0;
+      if (mdi == 0x40) {
+        i = (unsigned int)0;
+        ii = (unsigned int)0;
+        /*@ loop unroll 16; */
+        while (i < (unsigned int)16) {
+          in[i] = ((((unsigned int)mdContext->in[ii + (unsigned int)3] << 24) | (
+                    (unsigned int)mdContext->in[ii + (unsigned int)2] << 16)) | (
+                   (unsigned int)mdContext->in[ii + (unsigned int)1] << 8)) | (unsigned int)mdContext->in[ii];
+          i ++;
+          ii += (unsigned int)4;
+        }
+        Transform(mdContext->buf,in);
+        mdi = 0;
+      }
+    }
+  }
+  return;
+}
+
+void MD5Final(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__));
+void MD5Final(MD5_CTX *mdContext)
+{
+  UINT4 in[16];
+  int mdi;
+  unsigned int i;
+  unsigned int ii;
+  unsigned int padLen;
+  in[14] = mdContext->i[0];
+  in[15] = mdContext->i[1];
+  mdi = (int)((mdContext->i[0] >> 3) & (unsigned int)0x3F);
+  if (mdi < 56) padLen = (unsigned int)(56 - mdi);
+  else padLen = (unsigned int)(120 - mdi);
+  MD5Update(mdContext,PADDING,padLen);
+  i = (unsigned int)0;
+  ii = (unsigned int)0;
+  /*@ loop unroll 14; */
+  while (i < (unsigned int)14) {
+    in[i] = ((((unsigned int)mdContext->in[ii + (unsigned int)3] << 24) | (
+              (unsigned int)mdContext->in[ii + (unsigned int)2] << 16)) | (
+             (unsigned int)mdContext->in[ii + (unsigned int)1] << 8)) | (unsigned int)mdContext->in[ii];
+    i ++;
+    ii += (unsigned int)4;
+  }
+  Transform(mdContext->buf,in);
+  i = (unsigned int)0;
+  ii = (unsigned int)0;
+  /*@ loop unroll 4; */
+  while (i < (unsigned int)4) {
+    mdContext->digest[ii] = (unsigned char)(mdContext->buf[i] & (unsigned int)0xFF);
+    mdContext->digest[ii + (unsigned int)1] = (unsigned char)((mdContext->buf[i] >> 8) & (unsigned int)0xFF);
+    mdContext->digest[ii + (unsigned int)2] = (unsigned char)((mdContext->buf[i] >> 16) & (unsigned int)0xFF);
+    mdContext->digest[ii + (unsigned int)3] = (unsigned char)((mdContext->buf[i] >> 24) & (unsigned int)0xFF);
+    i ++;
+    ii += (unsigned int)4;
+  }
+  return;
+}
+
+/*@ requires \initialized(in + (0 .. 15));
+    assigns *(buf + (0 .. 3));
+    assigns *(buf + (0 .. 3)) \from (indirect: in), *(in + (0 .. 15));
+ */
+static void Transform(UINT4 *buf, UINT4 *in) __attribute__((__FC_OLDSTYLEPROTO__));
+static void Transform(UINT4 *buf, UINT4 *in)
+{
+  UINT4 a = *(buf + 0);
+  UINT4 b = *(buf + 1);
+  UINT4 c = *(buf + 2);
+  UINT4 d = *(buf + 3);
+  a += (((b & c) | (~ b & d)) + *(in + 0)) + 0xd76aa478;
+  a = (a << 7) | (a >> (32 - 7));
+  a += b;
+  d += (((a & b) | (~ a & c)) + *(in + 1)) + 0xe8c7b756;
+  d = (d << 12) | (d >> (32 - 12));
+  d += a;
+  c += (((d & a) | (~ d & b)) + *(in + 2)) + (unsigned int)0x242070db;
+  c = (c << 17) | (c >> (32 - 17));
+  c += d;
+  b += (((c & d) | (~ c & a)) + *(in + 3)) + 0xc1bdceee;
+  b = (b << 22) | (b >> (32 - 22));
+  b += c;
+  a += (((b & c) | (~ b & d)) + *(in + 4)) + 0xf57c0faf;
+  a = (a << 7) | (a >> (32 - 7));
+  a += b;
+  d += (((a & b) | (~ a & c)) + *(in + 5)) + (unsigned int)0x4787c62a;
+  d = (d << 12) | (d >> (32 - 12));
+  d += a;
+  c += (((d & a) | (~ d & b)) + *(in + 6)) + 0xa8304613;
+  c = (c << 17) | (c >> (32 - 17));
+  c += d;
+  b += (((c & d) | (~ c & a)) + *(in + 7)) + 0xfd469501;
+  b = (b << 22) | (b >> (32 - 22));
+  b += c;
+  a += (((b & c) | (~ b & d)) + *(in + 8)) + (unsigned int)0x698098d8;
+  a = (a << 7) | (a >> (32 - 7));
+  a += b;
+  d += (((a & b) | (~ a & c)) + *(in + 9)) + 0x8b44f7af;
+  d = (d << 12) | (d >> (32 - 12));
+  d += a;
+  c += (((d & a) | (~ d & b)) + *(in + 10)) + 0xffff5bb1;
+  c = (c << 17) | (c >> (32 - 17));
+  c += d;
+  b += (((c & d) | (~ c & a)) + *(in + 11)) + 0x895cd7be;
+  b = (b << 22) | (b >> (32 - 22));
+  b += c;
+  a += (((b & c) | (~ b & d)) + *(in + 12)) + (unsigned int)0x6b901122;
+  a = (a << 7) | (a >> (32 - 7));
+  a += b;
+  d += (((a & b) | (~ a & c)) + *(in + 13)) + 0xfd987193;
+  d = (d << 12) | (d >> (32 - 12));
+  d += a;
+  c += (((d & a) | (~ d & b)) + *(in + 14)) + 0xa679438e;
+  c = (c << 17) | (c >> (32 - 17));
+  c += d;
+  b += (((c & d) | (~ c & a)) + *(in + 15)) + (unsigned int)0x49b40821;
+  b = (b << 22) | (b >> (32 - 22));
+  b += c;
+  a += (((b & d) | (c & ~ d)) + *(in + 1)) + 0xf61e2562;
+  a = (a << 5) | (a >> (32 - 5));
+  a += b;
+  d += (((a & c) | (b & ~ c)) + *(in + 6)) + 0xc040b340;
+  d = (d << 9) | (d >> (32 - 9));
+  d += a;
+  c += (((d & b) | (a & ~ b)) + *(in + 11)) + (unsigned int)0x265e5a51;
+  c = (c << 14) | (c >> (32 - 14));
+  c += d;
+  b += (((c & a) | (d & ~ a)) + *(in + 0)) + 0xe9b6c7aa;
+  b = (b << 20) | (b >> (32 - 20));
+  b += c;
+  a += (((b & d) | (c & ~ d)) + *(in + 5)) + 0xd62f105d;
+  a = (a << 5) | (a >> (32 - 5));
+  a += b;
+  d += (((a & c) | (b & ~ c)) + *(in + 10)) + (unsigned int)0x2441453;
+  d = (d << 9) | (d >> (32 - 9));
+  d += a;
+  c += (((d & b) | (a & ~ b)) + *(in + 15)) + 0xd8a1e681;
+  c = (c << 14) | (c >> (32 - 14));
+  c += d;
+  b += (((c & a) | (d & ~ a)) + *(in + 4)) + 0xe7d3fbc8;
+  b = (b << 20) | (b >> (32 - 20));
+  b += c;
+  a += (((b & d) | (c & ~ d)) + *(in + 9)) + (unsigned int)0x21e1cde6;
+  a = (a << 5) | (a >> (32 - 5));
+  a += b;
+  d += (((a & c) | (b & ~ c)) + *(in + 14)) + 0xc33707d6;
+  d = (d << 9) | (d >> (32 - 9));
+  d += a;
+  c += (((d & b) | (a & ~ b)) + *(in + 3)) + 0xf4d50d87;
+  c = (c << 14) | (c >> (32 - 14));
+  c += d;
+  b += (((c & a) | (d & ~ a)) + *(in + 8)) + (unsigned int)0x455a14ed;
+  b = (b << 20) | (b >> (32 - 20));
+  b += c;
+  a += (((b & d) | (c & ~ d)) + *(in + 13)) + 0xa9e3e905;
+  a = (a << 5) | (a >> (32 - 5));
+  a += b;
+  d += (((a & c) | (b & ~ c)) + *(in + 2)) + 0xfcefa3f8;
+  d = (d << 9) | (d >> (32 - 9));
+  d += a;
+  c += (((d & b) | (a & ~ b)) + *(in + 7)) + (unsigned int)0x676f02d9;
+  c = (c << 14) | (c >> (32 - 14));
+  c += d;
+  b += (((c & a) | (d & ~ a)) + *(in + 12)) + 0x8d2a4c8a;
+  b = (b << 20) | (b >> (32 - 20));
+  b += c;
+  a += (((b ^ c) ^ d) + *(in + 5)) + 0xfffa3942;
+  a = (a << 4) | (a >> (32 - 4));
+  a += b;
+  d += (((a ^ b) ^ c) + *(in + 8)) + 0x8771f681;
+  d = (d << 11) | (d >> (32 - 11));
+  d += a;
+  c += (((d ^ a) ^ b) + *(in + 11)) + (unsigned int)0x6d9d6122;
+  c = (c << 16) | (c >> (32 - 16));
+  c += d;
+  b += (((c ^ d) ^ a) + *(in + 14)) + 0xfde5380c;
+  b = (b << 23) | (b >> (32 - 23));
+  b += c;
+  a += (((b ^ c) ^ d) + *(in + 1)) + 0xa4beea44;
+  a = (a << 4) | (a >> (32 - 4));
+  a += b;
+  d += (((a ^ b) ^ c) + *(in + 4)) + (unsigned int)0x4bdecfa9;
+  d = (d << 11) | (d >> (32 - 11));
+  d += a;
+  c += (((d ^ a) ^ b) + *(in + 7)) + 0xf6bb4b60;
+  c = (c << 16) | (c >> (32 - 16));
+  c += d;
+  b += (((c ^ d) ^ a) + *(in + 10)) + 0xbebfbc70;
+  b = (b << 23) | (b >> (32 - 23));
+  b += c;
+  a += (((b ^ c) ^ d) + *(in + 13)) + (unsigned int)0x289b7ec6;
+  a = (a << 4) | (a >> (32 - 4));
+  a += b;
+  d += (((a ^ b) ^ c) + *(in + 0)) + 0xeaa127fa;
+  d = (d << 11) | (d >> (32 - 11));
+  d += a;
+  c += (((d ^ a) ^ b) + *(in + 3)) + 0xd4ef3085;
+  c = (c << 16) | (c >> (32 - 16));
+  c += d;
+  b += (((c ^ d) ^ a) + *(in + 6)) + (unsigned int)0x4881d05;
+  b = (b << 23) | (b >> (32 - 23));
+  b += c;
+  a += (((b ^ c) ^ d) + *(in + 9)) + 0xd9d4d039;
+  a = (a << 4) | (a >> (32 - 4));
+  a += b;
+  d += (((a ^ b) ^ c) + *(in + 12)) + 0xe6db99e5;
+  d = (d << 11) | (d >> (32 - 11));
+  d += a;
+  c += (((d ^ a) ^ b) + *(in + 15)) + (unsigned int)0x1fa27cf8;
+  c = (c << 16) | (c >> (32 - 16));
+  c += d;
+  b += (((c ^ d) ^ a) + *(in + 2)) + 0xc4ac5665;
+  b = (b << 23) | (b >> (32 - 23));
+  b += c;
+  a += ((c ^ (b | ~ d)) + *(in + 0)) + 0xf4292244;
+  a = (a << 6) | (a >> (32 - 6));
+  a += b;
+  d += ((b ^ (a | ~ c)) + *(in + 7)) + (unsigned int)0x432aff97;
+  d = (d << 10) | (d >> (32 - 10));
+  d += a;
+  c += ((a ^ (d | ~ b)) + *(in + 14)) + 0xab9423a7;
+  c = (c << 15) | (c >> (32 - 15));
+  c += d;
+  b += ((d ^ (c | ~ a)) + *(in + 5)) + 0xfc93a039;
+  b = (b << 21) | (b >> (32 - 21));
+  b += c;
+  a += ((c ^ (b | ~ d)) + *(in + 12)) + (unsigned int)0x655b59c3;
+  a = (a << 6) | (a >> (32 - 6));
+  a += b;
+  d += ((b ^ (a | ~ c)) + *(in + 3)) + 0x8f0ccc92;
+  d = (d << 10) | (d >> (32 - 10));
+  d += a;
+  c += ((a ^ (d | ~ b)) + *(in + 10)) + 0xffeff47d;
+  c = (c << 15) | (c >> (32 - 15));
+  c += d;
+  b += ((d ^ (c | ~ a)) + *(in + 1)) + 0x85845dd1;
+  b = (b << 21) | (b >> (32 - 21));
+  b += c;
+  a += ((c ^ (b | ~ d)) + *(in + 8)) + (unsigned int)0x6fa87e4f;
+  a = (a << 6) | (a >> (32 - 6));
+  a += b;
+  d += ((b ^ (a | ~ c)) + *(in + 15)) + 0xfe2ce6e0;
+  d = (d << 10) | (d >> (32 - 10));
+  d += a;
+  c += ((a ^ (d | ~ b)) + *(in + 6)) + 0xa3014314;
+  c = (c << 15) | (c >> (32 - 15));
+  c += d;
+  b += ((d ^ (c | ~ a)) + *(in + 13)) + (unsigned int)0x4e0811a1;
+  b = (b << 21) | (b >> (32 - 21));
+  b += c;
+  a += ((c ^ (b | ~ d)) + *(in + 4)) + 0xf7537e82;
+  a = (a << 6) | (a >> (32 - 6));
+  a += b;
+  d += ((b ^ (a | ~ c)) + *(in + 11)) + 0xbd3af235;
+  d = (d << 10) | (d >> (32 - 10));
+  d += a;
+  c += ((a ^ (d | ~ b)) + *(in + 2)) + (unsigned int)0x2ad7d2bb;
+  c = (c << 15) | (c >> (32 - 15));
+  c += d;
+  b += ((d ^ (c | ~ a)) + *(in + 9)) + 0xeb86d391;
+  b = (b << 21) | (b >> (32 - 21));
+  b += c;
+  *(buf + 0) += a;
+  *(buf + 1) += b;
+  *(buf + 2) += c;
+  *(buf + 3) += d;
+  return;
+}
+
+static MD5_CTX ctx;
+int HSH_GetHashId(char const *name)
+{
+  int __retres;
+  int tmp;
+  tmp = strcmp(name,"MD5");
+  if (tmp) {
+    __retres = -1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+unsigned int HSH_Hash(int id, unsigned char const *in1, unsigned int in1_len,
+                      unsigned char const *in2, unsigned int in2_len,
+                      unsigned char *out, unsigned int out_len)
+{
+  MD5Init(& ctx);
+  MD5Update(& ctx,in1,in1_len);
+  if (in2) MD5Update(& ctx,in2,in2_len);
+  MD5Final(& ctx);
+  if (out_len < (unsigned int)16) out_len = out_len;
+  else out_len = (unsigned int)16;
+  memcpy((void *)out,(void const *)(ctx.digest),(unsigned long)out_len);
+  return out_len;
+}
+
+void HSH_Finalise(void)
+{
+  return;
+}
+
+void KEY_Initialise(void);
+
+void KEY_Finalise(void);
+
+void KEY_Reload(void);
+
+int KEY_KeyKnown(uint32_t key_id);
+
+int KEY_GetAuthDelay(uint32_t key_id);
+
+int KEY_GetAuthLength(uint32_t key_id);
+
+int KEY_CheckKeyLength(uint32_t key_id);
+
+int KEY_GenerateAuth(uint32_t key_id, unsigned char const *data,
+                     int data_len, unsigned char *auth, int auth_len);
+
+int KEY_CheckAuth(uint32_t key_id, unsigned char const *data, int data_len,
+                  unsigned char const *auth, int auth_len, int trunc_len);
+
+void LCL_ReadRawTime(struct timespec *ts);
+
+void LCL_ReadCookedTime(struct timespec *result, double *err);
+
+void LCL_CookTime(struct timespec *raw, struct timespec *cooked, double *err);
+
+void LCL_GetOffsetCorrection(struct timespec *raw, double *correction,
+                             double *err);
+
+void LCL_AddParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                   struct timespec *cooked,
+                                                   double dfreq,
+                                                   double doffset,
+                                                   LCL_ChangeType change_type,
+                                                   void *anything),
+                                   void *anything);
+
+void LCL_RemoveParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                      struct timespec *cooked,
+                                                      double dfreq,
+                                                      double doffset,
+                                                      LCL_ChangeType change_type,
+                                                      void *anything),
+                                      void *anything);
+
+int LCL_IsFirstParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                      struct timespec *cooked,
+                                                      double dfreq,
+                                                      double doffset,
+                                                      LCL_ChangeType change_type,
+                                                      void *anything));
+
+void LCL_AddDispersionNotifyHandler(void (*handler)(double dispersion,
+                                                    void *anything),
+                                    void *anything);
+
+extern void LCL_RemoveDispersionNotifyHandler(void (*handler)(double dispersion,
+                                                              void *anything),
+                                              void *anything);
+
+double LCL_ReadAbsoluteFrequency(void);
+
+void LCL_SetAbsoluteFrequency(double afreq_ppm);
+
+void LCL_AccumulateDeltaFrequency(double dfreq);
+
+void LCL_AccumulateOffset(double offset, double corr_rate);
+
+int LCL_ApplyStepOffset(double offset);
+
+void LCL_NotifyExternalTimeStep(struct timespec *raw,
+                                struct timespec *cooked, double offset,
+                                double dispersion);
+
+void LCL_NotifyLeap(int leap);
+
+void LCL_AccumulateFrequencyAndOffset(double dfreq, double doffset,
+                                      double corr_rate);
+
+int LCL_GetSysPrecisionAsLog(void);
+
+double LCL_GetSysPrecisionAsQuantum(void);
+
+double LCL_GetMaxClockError(void);
+
+void LCL_Initialise(void);
+
+void LCL_Finalise(void);
+
+int LCL_MakeStep(void);
+
+int LCL_CanSystemLeap(void);
+
+void LCL_SetSystemLeap(int leap, int tai_offset);
+
+double LCL_SetTempComp(double comp);
+
+void LCL_SetSyncStatus(int synchronised, double est_error, double max_error);
+
+static ARR_Instance keys;
+static int cache_valid;
+static uint32_t cache_key_id;
+static int cache_key_pos;
+static void free_keys(void)
+{
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    void *tmp;
+    tmp_0 = ARR_GetSize(keys);
+    ;
+    if (! (i < tmp_0)) break;
+    tmp = ARR_GetElement(keys,i);
+    free((void *)((Key *)tmp)->val);
+    i ++;
+  }
+  ARR_SetSize(keys,(unsigned int)0);
+  cache_valid = 0;
+  return;
+}
+
+void KEY_Initialise(void)
+{
+  keys = ARR_CreateInstance((unsigned int)sizeof(Key));
+  cache_valid = 0;
+  KEY_Reload();
+  return;
+}
+
+void KEY_Finalise(void)
+{
+  free_keys();
+  ARR_DestroyInstance(keys);
+  return;
+}
+
+static Key *get_key(unsigned int index_0)
+{
+  Key *__retres;
+  void *tmp;
+  tmp = ARR_GetElements(keys);
+  ;
+  __retres = (Key *)tmp + index_0;
+  return __retres;
+}
+
+static int determine_hash_delay(uint32_t key_id)
+{
+  NTP_Packet pkt;
+  struct timespec before;
+  struct timespec after;
+  double diff;
+  double min_diff;
+  int i;
+  int nsecs;
+  memset((void *)(& pkt),0,sizeof(pkt));
+  i = 0;
+  /*@ loop unroll 10; */
+  while (i < 10) {
+    LCL_ReadRawTime(& before);
+    KEY_GenerateAuth(key_id,(unsigned char const *)(& pkt),48,
+                     (unsigned char *)(& pkt.auth_data),
+                     (int)sizeof(pkt.auth_data));
+    LCL_ReadRawTime(& after);
+    diff = UTI_DiffTimespecsToDouble(& after,& before);
+    if (i == 0) min_diff = diff;
+    else 
+      if (min_diff > diff) min_diff = diff;
+    i ++;
+  }
+  nsecs = (int)(1.0625e9 * min_diff);
+  return nsecs;
+}
+
+static int decode_password(char *key)
+{
+  int __retres;
+  int i;
+  int j;
+  size_t tmp;
+  char buf[3];
+  char *p;
+  int tmp_2;
+  tmp = strlen((char const *)key);
+  int len = (int)tmp;
+  tmp_2 = strncmp((char const *)key,"ASCII:",(unsigned long)6);
+  if (tmp_2) {
+    int tmp_1;
+    tmp_1 = strncmp((char const *)key,"HEX:",(unsigned long)4);
+    if (tmp_1) {
+      __retres = len;
+      goto return_label;
+    }
+    else {
+      if ((len - 4) % 2) {
+        __retres = 0;
+        goto return_label;
+      }
+      i = 0;
+      j = 4;
+      while (j + 1 < len) {
+        {
+          long tmp_0;
+          buf[0] = *(key + j);
+          buf[1] = *(key + (j + 1));
+          buf[2] = (char)'\000';
+          tmp_0 = strtol((char const *)(buf),& p,16);
+          *(key + i) = (char)tmp_0;
+          if (p != & buf[2]) {
+            __retres = 0;
+            goto return_label;
+          }
+        }
+        i ++;
+        j += 2;
+      }
+      __retres = i;
+      goto return_label;
+    }
+  }
+  else {
+    memmove((void *)key,(void const *)(key + 6),(unsigned long)(len - 6));
+    __retres = len - 6;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static int compare_keys_by_id(void const *a, void const *b)
+{
+  int __retres;
+  Key const *c = (Key const *)a;
+  Key const *d = (Key const *)b;
+  if (c->id < d->id) {
+    __retres = -1;
+    goto return_label;
+  }
+  else 
+    if (c->id > d->id) {
+      __retres = 1;
+      goto return_label;
+    }
+    else {
+      __retres = 0;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+void KEY_Reload(void)
+{
+  unsigned int i;
+  unsigned int line_number_0;
+  FILE *in;
+  uint32_t key_id;
+  char line[2048];
+  char *keyval;
+  char *key_file;
+  char const *hashname;
+  Key key;
+  unsigned int tmp_2;
+  void *tmp_3;
+  free_keys();
+  key_file = CNF_GetKeysFile();
+  line_number_0 = (unsigned int)0;
+  if (! key_file) goto return_label;
+  in = fopen((char const *)key_file,"r");
+  if (! in) {
+    {
+      char *__va_arg0 = key_file;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_WARN,"Could not open keyfile %s",
+                  (void * const *)(__va_args));
+    }
+    goto return_label;
+  }
+  while (1) {
+    char *tmp_1;
+    tmp_1 = fgets(line,(int)sizeof(line),in);
+    if (! tmp_1) break;
+    {
+      int tmp;
+      line_number_0 ++;
+      CPS_NormalizeLine(line);
+      if (! line[0]) continue;
+      tmp = CPS_ParseKey(line,& key_id,& hashname,& keyval);
+      if (! tmp) {
+        {
+          unsigned int __va_arg0_25 = line_number_0;
+          char *__va_arg1 = key_file;
+          void *__va_args_28[2] = {& __va_arg0_25, & __va_arg1};
+          LOG_Message(LOGS_WARN,"Could not parse key at line %u in file %s",
+                      (void * const *)(__va_args_28));
+        }
+        continue;
+      }
+      key.hash_id = HSH_GetHashId(hashname);
+      if (key.hash_id < 0) {
+        {
+          uint32_t __va_arg0_30 = key_id;
+          void *__va_args_32[1] = {& __va_arg0_30};
+          LOG_Message(LOGS_WARN,"Unknown hash function in key %u",
+                      (void * const *)(__va_args_32));
+        }
+        continue;
+      }
+      key.len = decode_password(keyval);
+      if (! key.len) {
+        {
+          uint32_t __va_arg0_34 = key_id;
+          void *__va_args_36[1] = {& __va_arg0_34};
+          LOG_Message(LOGS_WARN,"Could not decode password in key %u",
+                      (void * const *)(__va_args_36));
+        }
+        continue;
+      }
+      key.id = key_id;
+      key.val = (char *)Malloc2((unsigned long)key.len,sizeof(char));
+      memcpy((void *)key.val,(void const *)keyval,(unsigned long)key.len);
+      ARR_AppendElement(keys,(void *)(& key));
+    }
+  }
+  fclose(in);
+  tmp_2 = ARR_GetSize(keys);
+  tmp_3 = ARR_GetElements(keys);
+  qsort(tmp_3,(unsigned long)tmp_2,sizeof(Key),& compare_keys_by_id);
+  i = (unsigned int)1;
+  while (1) {
+    unsigned int tmp_7;
+    tmp_7 = ARR_GetSize(keys);
+    ;
+    if (! (i < tmp_7)) break;
+    {
+      Key *tmp_5;
+      Key *tmp_6;
+      tmp_5 = get_key(i - (unsigned int)1);
+      tmp_6 = get_key(i);
+      ;
+      if (tmp_5->id == tmp_6->id) {
+        Key *tmp_4;
+        tmp_4 = get_key(i - (unsigned int)1);
+        {
+          uint32_t __va_arg0_38 = tmp_4->id;
+          void *__va_args_40[1] = {& __va_arg0_38};
+          LOG_Message(LOGS_WARN,"Detected duplicate key %u",
+                      (void * const *)(__va_args_40));
+        }
+      }
+    }
+    i ++;
+  }
+  memset((void *)(line),0,sizeof(line));
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_10;
+    Key *tmp_8;
+    Key *tmp_9;
+    tmp_10 = ARR_GetSize(keys);
+    ;
+    if (! (i < tmp_10)) break;
+    tmp_8 = get_key(i);
+    tmp_9 = get_key(i);
+    tmp_8->auth_delay = determine_hash_delay(tmp_9->id);
+    i ++;
+  }
+  return_label: return;
+}
+
+static int lookup_key(uint32_t id)
+{
+  int __retres;
+  Key specimen;
+  Key *where;
+  Key *keys_ptr;
+  int pos;
+  void *tmp_0;
+  unsigned int tmp;
+  keys_ptr = (Key *)ARR_GetElements(keys);
+  specimen.id = id;
+  tmp = ARR_GetSize(keys);
+  ;
+  tmp_0 = bsearch((void const *)(& specimen),(void const *)keys_ptr,
+                  (unsigned long)tmp,sizeof(Key),& compare_keys_by_id);
+  where = (Key *)tmp_0;
+  if (! where) {
+    __retres = -1;
+    goto return_label;
+  }
+  else {
+    pos = (int)(where - keys_ptr);
+    __retres = pos;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static Key *get_key_by_id(uint32_t key_id)
+{
+  Key *__retres;
+  int position;
+  if (cache_valid) 
+    if (key_id == cache_key_id) {
+      Key *tmp;
+      tmp = get_key((unsigned int)cache_key_pos);
+      __retres = tmp;
+      goto return_label;
+    }
+  position = lookup_key(key_id);
+  if (position >= 0) {
+    Key *tmp_0;
+    cache_valid = 1;
+    cache_key_pos = position;
+    cache_key_id = key_id;
+    tmp_0 = get_key((unsigned int)position);
+    __retres = tmp_0;
+    goto return_label;
+  }
+  __retres = (Key *)0;
+  return_label: return __retres;
+}
+
+int KEY_KeyKnown(uint32_t key_id)
+{
+  int __retres;
+  Key *tmp;
+  tmp = get_key_by_id(key_id);
+  __retres = tmp != (Key *)0;
+  return __retres;
+}
+
+int KEY_GetAuthDelay(uint32_t key_id)
+{
+  int __retres;
+  Key *key;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = key->auth_delay;
+  return_label: return __retres;
+}
+
+int KEY_GetAuthLength(uint32_t key_id)
+{
+  int __retres;
+  unsigned char buf[64];
+  Key *key;
+  unsigned int tmp;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = HSH_Hash(key->hash_id,(unsigned char const *)(buf),(unsigned int)0,
+                 (unsigned char const *)(buf),(unsigned int)0,buf,
+                 (unsigned int)sizeof(buf));
+  __retres = (int)tmp;
+  return_label: return __retres;
+}
+
+int KEY_CheckKeyLength(uint32_t key_id)
+{
+  int __retres;
+  Key *key;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = key->len >= 10;
+  return_label: return __retres;
+}
+
+static int generate_ntp_auth(int hash_id, unsigned char const *key,
+                             int key_len, unsigned char const *data,
+                             int data_len, unsigned char *auth, int auth_len)
+{
+  int __retres;
+  unsigned int tmp;
+  tmp = HSH_Hash(hash_id,key,(unsigned int)key_len,data,
+                 (unsigned int)data_len,auth,(unsigned int)auth_len);
+  __retres = (int)tmp;
+  return __retres;
+}
+
+static int check_ntp_auth(int hash_id, unsigned char const *key, int key_len,
+                          unsigned char const *data, int data_len,
+                          unsigned char const *auth, int auth_len,
+                          int trunc_len)
+{
+  unsigned char buf[64];
+  int hash_len;
+  int tmp_1;
+  int tmp;
+  hash_len = generate_ntp_auth(hash_id,key,key_len,data,data_len,buf,
+                               (int)sizeof(buf));
+  if (hash_len < trunc_len) tmp = hash_len; else tmp = trunc_len;
+  ;
+  if (tmp == auth_len) {
+    int tmp_0;
+    tmp_0 = memcmp((void const *)(buf),(void const *)auth,
+                   (unsigned long)auth_len);
+    if (tmp_0) tmp_1 = 0; else tmp_1 = 1;
+  }
+  else tmp_1 = 0;
+  return tmp_1;
+}
+
+int KEY_GenerateAuth(uint32_t key_id, unsigned char const *data,
+                     int data_len, unsigned char *auth, int auth_len)
+{
+  int __retres;
+  Key *key;
+  int tmp;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = generate_ntp_auth(key->hash_id,(unsigned char const *)key->val,
+                          key->len,data,data_len,auth,auth_len);
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+int KEY_CheckAuth(uint32_t key_id, unsigned char const *data, int data_len,
+                  unsigned char const *auth, int auth_len, int trunc_len)
+{
+  int __retres;
+  Key *key;
+  int tmp;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = check_ntp_auth(key->hash_id,(unsigned char const *)key->val,key->len,
+                       data,data_len,auth,auth_len,trunc_len);
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+void SMT_Initialise(void);
+
+void SMT_Finalise(void);
+
+int SMT_IsEnabled(void);
+
+double SMT_GetOffset(struct timespec *now);
+
+void SMT_Activate(struct timespec *now);
+
+void SMT_Reset(struct timespec *now);
+
+void SMT_Leap(struct timespec *now, int leap);
+
+int SMT_GetSmoothingReport(RPT_SmoothingReport *report, struct timespec *now);
+
+static double current_freq_ppm;
+static double max_freq_ppm;
+static double temp_comp_ppm;
+static double (*drv_read_freq)(void);
+static double (*drv_set_freq)(double freq_ppm);
+static void (*drv_accrue_offset)(double offset, double corr_rate);
+static int (*drv_apply_step_offset)(double offset);
+static void (*drv_offset_convert)(struct timespec *raw, double *corr,
+                                  double *err);
+static void (*drv_set_leap)(int leap, int tai_offset);
+static void (*drv_set_sync_status)(int synchronised, double est_error,
+                                   double max_error);
+static ChangeListEntry change_list;
+static DispersionNotifyListEntry dispersion_notify_list;
+static int precision_log;
+static double precision_quantum;
+static double max_clock_error_0;
+static void calculate_sys_precision(void)
+{
+  struct timespec ts;
+  struct timespec old_ts;
+  int iters;
+  int diff;
+  int best;
+  LCL_ReadRawTime(& old_ts);
+  best = 1000000000;
+  iters = 0;
+  while (1) {
+    LCL_ReadRawTime(& ts);
+    diff = (int)((long)1000000000 * (ts.tv_sec - old_ts.tv_sec) + (ts.tv_nsec - old_ts.tv_nsec));
+    old_ts = ts;
+    if (diff > 0) {
+      if (diff < best) best = diff;
+      iters ++;
+    }
+    if (! (iters < 100)) break;
+  }
+  __FC_assert((best > 0) != 0,"local.c",136,"best > 0");
+  precision_quantum = 1.0e-9 * (double)best;
+  precision_log = 0;
+  while (best < 707106781) {
+    precision_log --;
+    best *= 2;
+  }
+  __FC_assert((precision_log >= -30) != 0,"local.c",147,
+              "precision_log >= -30");
+  return;
+}
+
+void LCL_Initialise(void)
+{
+  double tmp;
+  double tmp_1;
+  change_list.prev = & change_list;
+  change_list.next = change_list.prev;
+  dispersion_notify_list.prev = & dispersion_notify_list;
+  dispersion_notify_list.next = dispersion_notify_list.prev;
+  drv_read_freq = (double (*)(void))0;
+  drv_set_freq = (double (*)(double freq_ppm))0;
+  drv_accrue_offset = (void (*)(double offset, double corr_rate))0;
+  drv_offset_convert = (void (*)(struct timespec *raw, double *corr,
+                                 double *err))0;
+  current_freq_ppm = 0.0;
+  temp_comp_ppm = 0.0;
+  calculate_sys_precision();
+  max_freq_ppm = CNF_GetMaxDrift();
+  if (max_freq_ppm < 500000.0) tmp = max_freq_ppm; else tmp = 500000.0;
+  if (0.0 > tmp) max_freq_ppm = 0.0;
+  else {
+    double tmp_0;
+    if (max_freq_ppm < 500000.0) tmp_0 = max_freq_ppm; else tmp_0 = 500000.0;
+    max_freq_ppm = tmp_0;
+  }
+  tmp_1 = CNF_GetMaxClockError();
+  max_clock_error_0 = tmp_1 * 1e-6;
+  return;
+}
+
+void LCL_Finalise(void)
+{
+  while (change_list.next != & change_list) LCL_RemoveParameterChangeHandler
+                                            ((change_list.next)->handler,
+                                             (change_list.next)->anything);
+  while (dispersion_notify_list.next != & dispersion_notify_list) LCL_RemoveDispersionNotifyHandler
+                                                                  ((dispersion_notify_list.next)->handler,
+                                                                   (dispersion_notify_list.next)->anything);
+  return;
+}
+
+int LCL_GetSysPrecisionAsLog(void)
+{
+  return precision_log;
+}
+
+double LCL_GetSysPrecisionAsQuantum(void)
+{
+  return precision_quantum;
+}
+
+double LCL_GetMaxClockError(void)
+{
+  return max_clock_error_0;
+}
+
+void LCL_AddParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                   struct timespec *cooked,
+                                                   double dfreq,
+                                                   double doffset,
+                                                   LCL_ChangeType change_type,
+                                                   void *anything),
+                                   void *anything)
+{
+  ChangeListEntry *ptr;
+  ChangeListEntry *new_entry;
+  ptr = change_list.next;
+  while (ptr != & change_list) {
+    if (! (ptr->handler != handler)) 
+      if (! (ptr->anything != anything)) __FC_assert(0 != 0,"local.c",233,
+                                                     "0");
+    ptr = ptr->next;
+  }
+  new_entry = (ChangeListEntry *)Malloc(sizeof(ChangeListEntry));
+  new_entry->handler = handler;
+  new_entry->anything = anything;
+  new_entry->next = & change_list;
+  new_entry->prev = change_list.prev;
+  (change_list.prev)->next = new_entry;
+  change_list.prev = new_entry;
+  return;
+}
+
+void LCL_RemoveParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                      struct timespec *cooked,
+                                                      double dfreq,
+                                                      double doffset,
+                                                      LCL_ChangeType change_type,
+                                                      void *anything),
+                                      void *anything)
+{
+  ChangeListEntry *ptr;
+  int ok;
+  ptr = (ChangeListEntry *)0;
+  ok = 0;
+  ptr = change_list.next;
+  while (ptr != & change_list) {
+    if (ptr->handler == handler) 
+      if (ptr->anything == anything) {
+        ok = 1;
+        break;
+      }
+    ptr = ptr->next;
+  }
+  __FC_assert(ok != 0,"local.c",268,"ok");
+  (ptr->next)->prev = ptr->prev;
+  (ptr->prev)->next = ptr->next;
+  free((void *)ptr);
+  return;
+}
+
+int LCL_IsFirstParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                      struct timespec *cooked,
+                                                      double dfreq,
+                                                      double doffset,
+                                                      LCL_ChangeType change_type,
+                                                      void *anything))
+{
+  int __retres;
+  __retres = (change_list.next)->handler == handler;
+  return __retres;
+}
+
+static void invoke_parameter_change_handlers(struct timespec *raw,
+                                             struct timespec *cooked,
+                                             double dfreq, double doffset,
+                                             LCL_ChangeType change_type)
+{
+  ChangeListEntry *ptr;
+  ptr = change_list.next;
+  while (ptr != & change_list) {
+    (*(ptr->handler))(raw,cooked,dfreq,doffset,change_type,ptr->anything);
+    ptr = ptr->next;
+  }
+  return;
+}
+
+void LCL_AddDispersionNotifyHandler(void (*handler)(double dispersion,
+                                                    void *anything),
+                                    void *anything)
+{
+  DispersionNotifyListEntry *ptr;
+  DispersionNotifyListEntry *new_entry;
+  ptr = dispersion_notify_list.next;
+  while (ptr != & dispersion_notify_list) {
+    if (! (ptr->handler != handler)) 
+      if (! (ptr->anything != anything)) __FC_assert(0 != 0,"local.c",309,
+                                                     "0");
+    ptr = ptr->next;
+  }
+  new_entry = (DispersionNotifyListEntry *)Malloc(sizeof(DispersionNotifyListEntry));
+  new_entry->handler = handler;
+  new_entry->anything = anything;
+  new_entry->next = & dispersion_notify_list;
+  new_entry->prev = dispersion_notify_list.prev;
+  (dispersion_notify_list.prev)->next = new_entry;
+  dispersion_notify_list.prev = new_entry;
+  return;
+}
+
+extern void LCL_RemoveDispersionNotifyHandler(void (*handler)(double dispersion,
+                                                              void *anything),
+                                              void *anything)
+{
+  DispersionNotifyListEntry *ptr;
+  int ok;
+  ptr = (DispersionNotifyListEntry *)0;
+  ok = 0;
+  ptr = dispersion_notify_list.next;
+  while (ptr != & dispersion_notify_list) {
+    if (ptr->handler == handler) 
+      if (ptr->anything == anything) {
+        ok = 1;
+        break;
+      }
+    ptr = ptr->next;
+  }
+  __FC_assert(ok != 0,"local.c",345,"ok");
+  (ptr->next)->prev = ptr->prev;
+  (ptr->prev)->next = ptr->next;
+  free((void *)ptr);
+  return;
+}
+
+void LCL_ReadRawTime(struct timespec *ts)
+{
+  int tmp_0;
+  tmp_0 = clock_gettime(666,ts);
+  if (tmp_0 < 0) {
+    char *tmp;
+    tmp = strerror(__fc_errno);
+    {
+      char *__va_arg0 = tmp;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_FATAL,"clock_gettime() failed : %s",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  return;
+}
+
+void LCL_ReadCookedTime(struct timespec *result, double *err)
+{
+  struct timespec raw;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,result,err);
+  return;
+}
+
+void LCL_CookTime(struct timespec *raw, struct timespec *cooked, double *err)
+{
+  double correction;
+  LCL_GetOffsetCorrection(raw,& correction,err);
+  UTI_AddDoubleToTimespec(raw,correction,cooked);
+  return;
+}
+
+void LCL_GetOffsetCorrection(struct timespec *raw, double *correction,
+                             double *err)
+{
+  (*drv_offset_convert)(raw,correction,err);
+  return;
+}
+
+double LCL_ReadAbsoluteFrequency(void)
+{
+  double freq;
+  freq = current_freq_ppm;
+  if (temp_comp_ppm != 0.0) freq = (freq + temp_comp_ppm) / (1.0 - 1.0e-6 * temp_comp_ppm);
+  return freq;
+}
+
+static double clamp_freq(double freq)
+{
+  double __retres;
+  double tmp_1;
+  double tmp;
+  if (freq <= max_freq_ppm) 
+    if (freq >= - max_freq_ppm) {
+      __retres = freq;
+      goto return_label;
+    }
+  {
+    double __va_arg0 = freq;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_WARN,"Frequency %.1f ppm exceeds allowed maximum",
+                (void * const *)(__va_args));
+  }
+  if (freq < max_freq_ppm) tmp = freq; else tmp = max_freq_ppm;
+  ;
+  if (- max_freq_ppm > tmp) tmp_1 = - max_freq_ppm;
+  else {
+    double tmp_0;
+    if (freq < max_freq_ppm) tmp_0 = freq; else tmp_0 = max_freq_ppm;
+    tmp_1 = tmp_0;
+  }
+  __retres = tmp_1;
+  return_label: return __retres;
+}
+
+static int check_offset(struct timespec *now, double offset)
+{
+  int __retres;
+  int tmp;
+  tmp = UTI_IsTimeOffsetSane(now,- offset);
+  if (tmp) {
+    __retres = 1;
+    goto return_label;
+  }
+  {
+    double __va_arg0 = - offset;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_WARN,"Adjustment of %.1f seconds is invalid",
+                (void * const *)(__va_args));
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void LCL_SetAbsoluteFrequency(double afreq_ppm)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  double dfreq;
+  afreq_ppm = clamp_freq(afreq_ppm);
+  if (temp_comp_ppm != 0.0) afreq_ppm = afreq_ppm * (1.0 - 1.0e-6 * temp_comp_ppm) - temp_comp_ppm;
+  afreq_ppm = (*drv_set_freq)(afreq_ppm);
+  dfreq = (afreq_ppm - current_freq_ppm) / (1.0e6 - current_freq_ppm);
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  invoke_parameter_change_handlers(& raw,& cooked,dfreq,0.0,LCL_ChangeAdjust);
+  current_freq_ppm = afreq_ppm;
+  return;
+}
+
+void LCL_AccumulateDeltaFrequency(double dfreq)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  double old_freq_ppm;
+  old_freq_ppm = current_freq_ppm;
+  current_freq_ppm += dfreq * (1.0e6 - current_freq_ppm);
+  current_freq_ppm = clamp_freq(current_freq_ppm);
+  current_freq_ppm = (*drv_set_freq)(current_freq_ppm);
+  dfreq = (current_freq_ppm - old_freq_ppm) / (1.0e6 - old_freq_ppm);
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  invoke_parameter_change_handlers(& raw,& cooked,dfreq,0.0,LCL_ChangeAdjust);
+  return;
+}
+
+void LCL_AccumulateOffset(double offset, double corr_rate)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  int tmp;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  tmp = check_offset(& cooked,offset);
+  if (! tmp) goto return_label;
+  (*drv_accrue_offset)(offset,corr_rate);
+  invoke_parameter_change_handlers(& raw,& cooked,0.0,offset,
+                                   LCL_ChangeAdjust);
+  return_label: return;
+}
+
+int LCL_ApplyStepOffset(double offset)
+{
+  int __retres;
+  struct timespec raw;
+  struct timespec cooked;
+  int tmp;
+  int tmp_0;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  tmp = check_offset(& raw,offset);
+  if (! tmp) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp_0 = (*drv_apply_step_offset)(offset);
+  if (! tmp_0) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_ERR,"Could not step system clock",
+                  (void * const *)(__va_args));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  SMT_Reset(& cooked);
+  invoke_parameter_change_handlers(& raw,& cooked,0.0,offset,LCL_ChangeStep);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void LCL_NotifyExternalTimeStep(struct timespec *raw,
+                                struct timespec *cooked, double offset,
+                                double dispersion)
+{
+  invoke_parameter_change_handlers(raw,cooked,0.0,offset,
+                                   LCL_ChangeUnknownStep);
+  lcl_InvokeDispersionNotifyHandlers(dispersion);
+  return;
+}
+
+void LCL_NotifyLeap(int leap)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  SMT_Leap(& cooked,leap);
+  invoke_parameter_change_handlers(& raw,& cooked,0.0,(double)(- leap),
+                                   LCL_ChangeStep);
+  return;
+}
+
+void LCL_AccumulateFrequencyAndOffset(double dfreq, double doffset,
+                                      double corr_rate)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  double old_freq_ppm;
+  int tmp;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  tmp = check_offset(& cooked,doffset);
+  if (! tmp) goto return_label;
+  old_freq_ppm = current_freq_ppm;
+  current_freq_ppm += dfreq * (1.0e6 - current_freq_ppm);
+  current_freq_ppm = clamp_freq(current_freq_ppm);
+  current_freq_ppm = (*drv_set_freq)(current_freq_ppm);
+  dfreq = (current_freq_ppm - old_freq_ppm) / (1.0e6 - old_freq_ppm);
+  (*drv_accrue_offset)(doffset,corr_rate);
+  invoke_parameter_change_handlers(& raw,& cooked,dfreq,doffset,
+                                   LCL_ChangeAdjust);
+  return_label: return;
+}
+
+void lcl_InvokeDispersionNotifyHandlers(double dispersion)
+{
+  DispersionNotifyListEntry *ptr;
+  ptr = dispersion_notify_list.next;
+  while (ptr != & dispersion_notify_list) {
+    (*(ptr->handler))(dispersion,ptr->anything);
+    ptr = ptr->next;
+  }
+  return;
+}
+
+void lcl_RegisterSystemDrivers(double (*read_freq)(void),
+                               double (*set_freq)(double freq_ppm),
+                               void (*accrue_offset_0)(double offset,
+                                                       double corr_rate),
+                               int (*apply_step_offset_0)(double offset),
+                               void (*offset_convert_0)(struct timespec *raw,
+                                                        double *corr,
+                                                        double *err),
+                               void (*set_leap)(int leap, int tai_offset),
+                               void (*set_sync_status)(int synchronised,
+                                                       double est_error,
+                                                       double max_error))
+{
+  drv_read_freq = read_freq;
+  drv_set_freq = set_freq;
+  drv_accrue_offset = accrue_offset_0;
+  drv_apply_step_offset = apply_step_offset_0;
+  drv_offset_convert = offset_convert_0;
+  drv_set_leap = set_leap;
+  drv_set_sync_status = set_sync_status;
+  current_freq_ppm = (*drv_read_freq)();
+  return;
+}
+
+int LCL_MakeStep(void)
+{
+  int __retres;
+  struct timespec raw;
+  double correction;
+  int tmp;
+  int tmp_0;
+  LCL_ReadRawTime(& raw);
+  LCL_GetOffsetCorrection(& raw,& correction,(double *)0);
+  tmp = check_offset(& raw,- correction);
+  if (! tmp) {
+    __retres = 0;
+    goto return_label;
+  }
+  LCL_AccumulateOffset(correction,0.0);
+  tmp_0 = LCL_ApplyStepOffset(- correction);
+  if (! tmp_0) {
+    __retres = 0;
+    goto return_label;
+  }
+  {
+    double __va_arg0 = correction;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_WARN,"System clock was stepped by %.6f seconds",
+                (void * const *)(__va_args));
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int LCL_CanSystemLeap(void)
+{
+  int tmp;
+  if (drv_set_leap) tmp = 1; else tmp = 0;
+  return tmp;
+}
+
+void LCL_SetSystemLeap(int leap, int tai_offset)
+{
+  if (drv_set_leap) (*drv_set_leap)(leap,tai_offset);
+  return;
+}
+
+double LCL_SetTempComp(double comp)
+{
+  double __retres;
+  double uncomp_freq_ppm;
+  if (temp_comp_ppm == comp) {
+    __retres = comp;
+    goto return_label;
+  }
+  current_freq_ppm = (current_freq_ppm + temp_comp_ppm) / (1.0 - 1.0e-6 * temp_comp_ppm);
+  uncomp_freq_ppm = current_freq_ppm;
+  current_freq_ppm = current_freq_ppm * (1.0 - 1.0e-6 * comp) - comp;
+  current_freq_ppm = (*drv_set_freq)(current_freq_ppm);
+  temp_comp_ppm = (uncomp_freq_ppm - current_freq_ppm) / (1.0e-6 * uncomp_freq_ppm + 1.0);
+  __retres = temp_comp_ppm;
+  return_label: return __retres;
+}
+
+void LCL_SetSyncStatus(int synchronised, double est_error, double max_error)
+{
+  if (drv_set_sync_status) (*drv_set_sync_status)(synchronised,est_error,
+                                                  max_error);
+  return;
+}
+
+void *Malloc(size_t size)
+{
+  void *r;
+  r = malloc(size);
+  if (! r) 
+    if (size) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_FATAL,"Could not allocate memory",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+  return r;
+}
+
+void *Realloc(void *ptr, size_t size)
+{
+  void *r;
+  r = realloc(ptr,size);
+  if (! r) 
+    if (size) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_FATAL,"Could not allocate memory",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+  return r;
+}
+
+static size_t get_array_size(size_t nmemb, size_t size)
+{
+  size_t array_size;
+  array_size = nmemb * size;
+  if (nmemb > (size_t)0) 
+    if (array_size / nmemb != size) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_FATAL,"Could not allocate memory",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+  return array_size;
+}
+
+void *Malloc2(size_t nmemb, size_t size)
+{
+  void *tmp_0;
+  size_t tmp;
+  tmp = get_array_size(nmemb,size);
+  tmp_0 = Malloc(tmp);
+  return tmp_0;
+}
+
+void *Realloc2(void *ptr, size_t nmemb, size_t size)
+{
+  void *tmp_0;
+  size_t tmp;
+  tmp = get_array_size(nmemb,size);
+  ;
+  tmp_0 = Realloc(ptr,tmp);
+  return tmp_0;
+}
+
+char *Strdup(char const *s)
+{
+  char *__retres;
+  void *r;
+  r = (void *)strdup(s);
+  if (! r) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"Could not allocate memory",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  __retres = (char *)r;
+  return __retres;
+}
+
+static int address_family = 0;
+void DNS_SetAddressFamily(int family)
+{
+  address_family = family;
+  return;
+}
+
+DNS_Status DNS_Name2IPAddress(char const *name, IPAddr *ip_addrs,
+                              int max_addrs)
+{
+  DNS_Status __retres;
+  struct hostent *host;
+  int i;
+  if (address_family != 0) 
+    if (address_family != 1) {
+      __retres = DNS_Failure;
+      goto return_label;
+    }
+  if (max_addrs < 16) max_addrs = max_addrs; else max_addrs = 16;
+  host = gethostbyname(name);
+  if (host == (struct hostent *)0) {
+    if (h_errno == 2) {
+      __retres = DNS_TryAgain;
+      goto return_label;
+    }
+  }
+  else {
+    if (host->h_addrtype != 2) {
+      __retres = DNS_Failure;
+      goto return_label;
+    }
+    else 
+      if (! *(host->h_addr_list + 0)) {
+        __retres = DNS_Failure;
+        goto return_label;
+      }
+    i = 0;
+    while (1) {
+      if (*(host->h_addr_list + i)) {
+        if (! (i < max_addrs)) break;
+      }
+      else break;
+      (ip_addrs + i)->family = (unsigned short)1;
+      (ip_addrs + i)->addr.in4 = ntohl(*((uint32_t *)*(host->h_addr_list + i)));
+      i ++;
+    }
+    while (i < max_addrs) {
+      (ip_addrs + i)->family = (unsigned short)0;
+      i ++;
+    }
+    __retres = DNS_Success;
+    goto return_label;
+  }
+  __retres = DNS_TryAgain;
+  return_label: return __retres;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_1(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0);
+
+int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len)
+{
+  int __retres;
+  struct hostent *host;
+  uint32_t addr;
+  int tmp;
+  char *result = (char *)0;
+  switch ((int)ip_addr->family) {
+    case 1: addr = htonl(ip_addr->addr.in4);
+    host = gethostbyaddr((void const *)(& addr),
+                         (unsigned int)sizeof(ip_addr),2);
+    break;
+    default: host = (struct hostent *)0;
+  }
+  if (host) result = host->h_name;
+  if (result == (char *)0) result = UTI_IPToString(ip_addr);
+  tmp = snprintf_va_1(name,(unsigned long)len,"%s",result);
+  ;
+  if (tmp >= len) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void DNS_Reload(void)
+{
+  res_init();
+  return;
+}
+
+void NIO_Initialise(int family);
+
+void NIO_Finalise(void);
+
+int NIO_OpenClientSocket(NTP_Remote_Address *remote_addr);
+
+int NIO_OpenServerSocket(NTP_Remote_Address *remote_addr);
+
+void NIO_CloseClientSocket(int sock_fd);
+
+void NIO_CloseServerSocket(int sock_fd);
+
+int NIO_IsServerSocket(int sock_fd);
+
+int NIO_IsServerConnectable(NTP_Remote_Address *remote_addr);
+
+int NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr,
+                   NTP_Local_Address *local_addr, int length, int process_tx);
+
+void SCH_Initialise(void);
+
+void SCH_Finalise(void);
+
+void SCH_AddFileHandler(int fd, int events,
+                        void (*handler)(int fd, int event,
+                                        SCH_ArbitraryArgument ),
+                        SCH_ArbitraryArgument arg);
+
+void SCH_RemoveFileHandler(int fd);
+
+void SCH_SetFileHandlerEvent(int fd, int event, int enable);
+
+void SCH_GetLastEventTime(struct timespec *cooked, double *err,
+                          struct timespec *raw);
+
+SCH_TimeoutID SCH_AddTimeout(struct timespec *ts,
+                             void (*handler)(SCH_ArbitraryArgument ),
+                             SCH_ArbitraryArgument arg);
+
+SCH_TimeoutID SCH_AddTimeoutByDelay(double delay,
+                                    void (*handler)(SCH_ArbitraryArgument ),
+                                    SCH_ArbitraryArgument arg);
+
+SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation,
+                                    double randomness,
+                                    SCH_TimeoutClass class,
+                                    void (*handler)(SCH_ArbitraryArgument ),
+                                    SCH_ArbitraryArgument arg);
+
+void SCH_RemoveTimeout(SCH_TimeoutID id);
+
+void SCH_MainLoop(void);
+
+void SCH_QuitProgram(void);
+
+static ARR_Instance recv_messages;
+static ARR_Instance recv_headers;
+static int server_sock_fd4;
+static int client_sock_fd4;
+static int server_sock_ref4;
+static int separate_client_sockets;
+static int permanent_server_sockets;
+static int initialised = 0;
+static void read_from_socket(int sock_fd, int event, void *anything);
+
+static int prepare_socket(int family, int port_number, int client_only)
+{
+  int __retres;
+  union sockaddr_in46 my_addr;
+  socklen_t my_addr_len;
+  int sock_fd;
+  IPAddr bind_address;
+  int tmp_8;
+  int events = 1;
+  int on_off = 1;
+  sock_fd = socket(family,2,0);
+  if (sock_fd < 0) {
+    if (! client_only) {
+      char *tmp;
+      char const *tmp_0;
+      tmp = strerror(__fc_errno);
+      tmp_0 = UTI_SockaddrFamilyToString(family);
+      {
+        char const *__va_arg0 = tmp_0;
+        char *__va_arg1 = tmp;
+        void *__va_args[2] = {& __va_arg0, & __va_arg1};
+        LOG_Message(LOGS_ERR,"Could not open %s NTP socket : %s",
+                    (void * const *)(__va_args));
+      }
+    }
+    __retres = -1;
+    goto return_label;
+  }
+  UTI_FdSetCloexec(sock_fd);
+  if (! client_only) {
+    int tmp_4;
+    tmp_4 = __va_fcntl_int(sock_fd,4,0x800);
+    if (tmp_4) ;
+  }
+  memset((void *)(& my_addr),0,sizeof(my_addr));
+  my_addr_len = (unsigned int)0;
+  switch (family) {
+    case 2:
+    if (! client_only) CNF_GetBindAddress(1,& bind_address);
+    else CNF_GetBindAcquisitionAddress(1,& bind_address);
+    if ((int)bind_address.family == 1) my_addr.in4.sin_addr.s_addr = htonl
+                                       (bind_address.addr.in4);
+    else 
+      if (port_number) my_addr.in4.sin_addr.s_addr = htonl((unsigned int)0);
+      else break;
+    my_addr.in4.sin_family = (unsigned short)family;
+    my_addr.in4.sin_port = htons((unsigned short)port_number);
+    my_addr_len = (unsigned int)sizeof(my_addr.in4);
+    break;
+    default: __FC_assert(0 != 0,"ntp_io.c",194,"0");
+  }
+  if (port_number) {
+    int tmp_5;
+    tmp_5 = setsockopt(sock_fd,1,2,(void const *)(& on_off),
+                       (unsigned int)sizeof(on_off));
+    if (tmp_5 < 0) {
+      {
+        char const *__va_arg0_25 = "SO_REUSEADDR";
+        void *__va_args_27[1] = {& __va_arg0_25};
+        LOG_Message(LOGS_ERR,"Could not set %s socket option",
+                    (void * const *)(__va_args_27));
+      }
+    }
+  }
+  if (! client_only) {
+    int tmp_6;
+    tmp_6 = setsockopt(sock_fd,1,6,(void const *)(& on_off),
+                       (unsigned int)sizeof(on_off));
+    if (tmp_6 < 0) {
+      {
+        char const *__va_arg0_29 = "SO_BROADCAST";
+        void *__va_args_31[1] = {& __va_arg0_29};
+        LOG_Message(LOGS_ERR,"Could not set %s socket option",
+                    (void * const *)(__va_args_31));
+      }
+    }
+  }
+  tmp_8 = setsockopt(sock_fd,1,35,(void const *)(& on_off),
+                     (unsigned int)sizeof(on_off));
+  if (tmp_8 < 0) {
+    int tmp_7;
+    tmp_7 = setsockopt(sock_fd,1,29,(void const *)(& on_off),
+                       (unsigned int)sizeof(on_off));
+    if (tmp_7 < 0) {
+      {
+        char const *__va_arg0_33 = "SO_TIMESTAMP";
+        void *__va_args_35[1] = {& __va_arg0_33};
+        LOG_Message(LOGS_ERR,"Could not set %s socket option",
+                    (void * const *)(__va_args_35));
+      }
+    }
+  }
+  if (my_addr_len > (socklen_t)0) {
+    int tmp_9;
+    tmp_9 = setsockopt(sock_fd,IPPROTO_IP,15,(void const *)(& on_off),
+                       (unsigned int)sizeof(on_off));
+    if (tmp_9 < 0) {
+      {
+        char const *__va_arg0_37 = "IP_FREEBIND";
+        void *__va_args_39[1] = {& __va_arg0_37};
+        LOG_Message(LOGS_ERR,"Could not set %s socket option",
+                    (void * const *)(__va_args_39));
+      }
+    }
+  }
+  if (family == 2) ;
+  if (my_addr_len > (socklen_t)0) {
+    int tmp_12;
+    tmp_12 = bind(sock_fd,(struct sockaddr const *)(& my_addr.u),my_addr_len);
+    if (tmp_12 < 0) {
+      char *tmp_10;
+      char const *tmp_11;
+      tmp_10 = strerror(__fc_errno);
+      tmp_11 = UTI_SockaddrFamilyToString(family);
+      {
+        char const *__va_arg0_41 = tmp_11;
+        char *__va_arg1_43 = tmp_10;
+        void *__va_args_45[2] = {& __va_arg0_41, & __va_arg1_43};
+        LOG_Message(LOGS_ERR,"Could not bind %s NTP socket : %s",
+                    (void * const *)(__va_args_45));
+      }
+      close(sock_fd);
+      __retres = -1;
+      goto return_label;
+    }
+  }
+  SCH_AddFileHandler(sock_fd,events,& read_from_socket,(void *)0);
+  __retres = sock_fd;
+  return_label: return __retres;
+}
+
+static int prepare_separate_client_socket(int family)
+{
+  int __retres;
+  switch (family) {
+    int tmp;
+    case 1: tmp = prepare_socket(2,0,1);
+    __retres = tmp;
+    goto return_label;
+    default: __retres = -1;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static int connect_socket(int sock_fd, NTP_Remote_Address *remote_addr)
+{
+  int __retres;
+  union sockaddr_in46 addr;
+  socklen_t addr_len;
+  int tmp;
+  int tmp_2;
+  tmp = UTI_IPAndPortToSockaddr(& remote_addr->ip_addr,remote_addr->port,
+                                & addr.u);
+  addr_len = (unsigned int)tmp;
+  __FC_assert(addr_len != (socklen_t)0,"ntp_io.c",305,"addr_len");
+  tmp_2 = connect(sock_fd,(struct sockaddr const *)(& addr.u),addr_len);
+  if (tmp_2 < 0) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static void close_socket(int sock_fd)
+{
+  if (sock_fd == -1) goto return_label;
+  SCH_RemoveFileHandler(sock_fd);
+  close(sock_fd);
+  return_label: return;
+}
+
+static void prepare_buffers(unsigned int n)
+{
+  struct MessageHeader *hdr;
+  struct Message *msg;
+  unsigned int i;
+  i = (unsigned int)0;
+  while (i < n) {
+    msg = (struct Message *)ARR_GetElement(recv_messages,i);
+    hdr = (struct MessageHeader *)ARR_GetElement(recv_headers,i);
+    msg->iov.iov_base = (void *)(& msg->buf);
+    msg->iov.iov_len = sizeof(msg->buf);
+    hdr->msg_hdr.msg_name = (void *)(& msg->name);
+    hdr->msg_hdr.msg_namelen = (unsigned int)sizeof(msg->name);
+    hdr->msg_hdr.msg_iov = & msg->iov;
+    hdr->msg_hdr.msg_iovlen = 1;
+    hdr->msg_hdr.msg_control = (void *)(& msg->cmsgbuf);
+    hdr->msg_hdr.msg_controllen = (unsigned int)sizeof(msg->cmsgbuf);
+    hdr->msg_hdr.msg_flags = 0;
+    hdr->msg_len = (unsigned int)0;
+    i ++;
+  }
+  return;
+}
+
+void NIO_Initialise(int family)
+{
+  int server_port;
+  int client_port;
+  int tmp_0;
+  __FC_assert(! initialised != 0,"ntp_io.c",365,"!initialised");
+  initialised = 1;
+  {
+    CNF_HwTsInterface *conf_iface;
+    int tmp;
+    tmp = CNF_GetHwTsInterface((unsigned int)0,& conf_iface);
+    if (tmp) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_FATAL,"HW timestamping not supported",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+  }
+  recv_messages = ARR_CreateInstance((unsigned int)sizeof(struct Message));
+  ARR_SetSize(recv_messages,(unsigned int)1);
+  recv_headers = ARR_CreateInstance((unsigned int)sizeof(struct MessageHeader));
+  ARR_SetSize(recv_headers,(unsigned int)1);
+  prepare_buffers((unsigned int)1);
+  server_port = CNF_GetNTPPort();
+  client_port = CNF_GetAcquisitionPort();
+  separate_client_sockets = client_port < 0;
+  if (client_port < 0) client_port = 0;
+  if (! server_port) tmp_0 = 1;
+  else 
+    if (! separate_client_sockets) 
+      if (client_port == server_port) tmp_0 = 1; else tmp_0 = 0;
+    else tmp_0 = 0;
+  permanent_server_sockets = tmp_0;
+  server_sock_fd4 = -1;
+  client_sock_fd4 = -1;
+  server_sock_ref4 = 0;
+  if (family == 0) goto _LOR;
+  else 
+    if (family == 1) {
+      _LOR:
+      {
+        if (permanent_server_sockets) 
+          if (server_port) server_sock_fd4 = prepare_socket(2,server_port,0);
+        if (! separate_client_sockets) 
+          if (client_port != server_port) client_sock_fd4 = prepare_socket
+                                          (2,client_port,1);
+          else 
+            if (! server_port) client_sock_fd4 = prepare_socket(2,
+                                                                client_port,
+                                                                1);
+            else client_sock_fd4 = server_sock_fd4;
+      }
+    }
+  if (server_port) {
+    if (server_sock_fd4 == -1) {
+      if (permanent_server_sockets) goto _LOR_0; else goto _LAND_0;
+    }
+    else goto _LAND_0;
+  }
+  else 
+    _LAND_0:
+    if (! separate_client_sockets) 
+      if (client_sock_fd4 == -1) {
+        _LOR_0:
+        {
+          {
+            void *__va_args_9[1] = {(void *)0};
+            LOG_Message(LOGS_FATAL,"Could not open NTP sockets",
+                        (void * const *)(__va_args_9));
+          }
+          exit(1);
+        }
+      }
+  return;
+}
+
+void NIO_Finalise(void)
+{
+  if (server_sock_fd4 != client_sock_fd4) close_socket(client_sock_fd4);
+  close_socket(server_sock_fd4);
+  client_sock_fd4 = -1;
+  server_sock_fd4 = client_sock_fd4;
+  ARR_DestroyInstance(recv_headers);
+  ARR_DestroyInstance(recv_messages);
+  initialised = 0;
+  return;
+}
+
+int NIO_OpenClientSocket(NTP_Remote_Address *remote_addr)
+{
+  int __retres;
+  if (separate_client_sockets) {
+    int tmp_0;
+    int sock_fd =
+      prepare_separate_client_socket((int)remote_addr->ip_addr.family);
+    if (sock_fd == -1) {
+      __retres = -1;
+      goto return_label;
+    }
+    tmp_0 = connect_socket(sock_fd,remote_addr);
+    if (! tmp_0) {
+      close_socket(sock_fd);
+      __retres = -1;
+      goto return_label;
+    }
+    __retres = sock_fd;
+    goto return_label;
+  }
+  else 
+    switch ((int)remote_addr->ip_addr.family) {
+      case 1: ;
+      __retres = client_sock_fd4;
+      goto return_label;
+      default: __retres = -1;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+int NIO_OpenServerSocket(NTP_Remote_Address *remote_addr)
+{
+  int __retres;
+  switch ((int)remote_addr->ip_addr.family) {
+    case 1: ;
+    if (permanent_server_sockets) {
+      __retres = server_sock_fd4;
+      goto return_label;
+    }
+    if (server_sock_fd4 == -1) {
+      int tmp;
+      tmp = CNF_GetNTPPort();
+      server_sock_fd4 = prepare_socket(2,tmp,0);
+    }
+    if (server_sock_fd4 != -1) server_sock_ref4 ++;
+    __retres = server_sock_fd4;
+    goto return_label;
+    default: __retres = -1;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+void NIO_CloseClientSocket(int sock_fd)
+{
+  if (separate_client_sockets) close_socket(sock_fd);
+  return;
+}
+
+void NIO_CloseServerSocket(int sock_fd)
+{
+  if (permanent_server_sockets) goto return_label;
+  else 
+    if (sock_fd == -1) goto return_label;
+  if (sock_fd == server_sock_fd4) {
+    server_sock_ref4 --;
+    if (server_sock_ref4 <= 0) {
+      close_socket(server_sock_fd4);
+      server_sock_fd4 = -1;
+    }
+  }
+  else __FC_assert(0 != 0,"ntp_io.c",558,"0");
+  return_label: return;
+}
+
+int NIO_IsServerSocket(int sock_fd)
+{
+  int tmp;
+  if (sock_fd != -1) 
+    if (sock_fd == server_sock_fd4) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  return tmp;
+}
+
+int NIO_IsServerConnectable(NTP_Remote_Address *remote_addr)
+{
+  int __retres;
+  int sock_fd;
+  int r;
+  sock_fd = prepare_separate_client_socket((int)remote_addr->ip_addr.family);
+  if (sock_fd == -1) {
+    __retres = 0;
+    goto return_label;
+  }
+  r = connect_socket(sock_fd,remote_addr);
+  close_socket(sock_fd);
+  __retres = r;
+  return_label: return __retres;
+}
+
+static void process_message(struct msghdr *hdr, int length, int sock_fd)
+{
+  NTP_Remote_Address remote_addr;
+  NTP_Local_Address local_addr;
+  NTP_Local_Timestamp local_ts;
+  struct timespec sched_ts;
+  struct cmsghdr *cmsg;
+  SCH_GetLastEventTime(& local_ts.ts,& local_ts.err,(struct timespec *)0);
+  local_ts.source = NTP_TS_DAEMON;
+  sched_ts = local_ts.ts;
+  if ((unsigned long)hdr->msg_namelen > sizeof(union sockaddr_in46)) 
+    goto return_label;
+  if ((unsigned long)hdr->msg_namelen >= sizeof(((struct sockaddr *)hdr->msg_name)->sa_family)) 
+    UTI_SockaddrToIPAndPort((struct sockaddr *)hdr->msg_name,
+                            & remote_addr.ip_addr,& remote_addr.port);
+  else {
+    remote_addr.ip_addr.family = (unsigned short)0;
+    remote_addr.port = (unsigned short)0;
+  }
+  local_addr.ip_addr.family = (unsigned short)0;
+  local_addr.if_index = -1;
+  local_addr.sock_fd = sock_fd;
+  if (hdr->msg_flags & 0x20) goto return_label;
+  if (hdr->msg_flags & 0x8) ;
+  cmsg = CMSG_FIRSTHDR(hdr);
+  while (cmsg) {
+    if (cmsg->cmsg_level == 1) 
+      if (cmsg->cmsg_type == 29) {
+        struct timeval tv;
+        struct timespec ts;
+        unsigned char *tmp_0;
+        tmp_0 = CMSG_DATA(cmsg);
+        memcpy((void *)(& tv),(void const *)tmp_0,sizeof(tv));
+        UTI_TimevalToTimespec(& tv,& ts);
+        LCL_CookTime(& ts,& local_ts.ts,& local_ts.err);
+        local_ts.source = NTP_TS_KERNEL;
+      }
+    if (cmsg->cmsg_level == 1) 
+      if (cmsg->cmsg_type == 35) {
+        struct timespec ts_0;
+        unsigned char *tmp_1;
+        tmp_1 = CMSG_DATA(cmsg);
+        memcpy((void *)(& ts_0),(void const *)tmp_1,sizeof(ts_0));
+        LCL_CookTime(& ts_0,& local_ts.ts,& local_ts.err);
+        local_ts.source = NTP_TS_KERNEL;
+      }
+    cmsg = CMSG_NXTHDR(hdr,cmsg);
+  }
+  if (length < 48) goto return_label;
+  else 
+    if ((unsigned long)length > sizeof(NTP_Receive_Buffer)) goto return_label;
+  NSR_ProcessRx(& remote_addr,& local_addr,& local_ts,
+                (NTP_Packet *)(hdr->msg_iov + 0)->iov_base,length);
+  return_label: return;
+}
+
+static void read_from_socket(int sock_fd, int event, void *anything)
+{
+  struct MessageHeader *hdr;
+  unsigned int i;
+  unsigned int n;
+  int status;
+  ssize_t tmp;
+  int flags = 0;
+  hdr = (struct MessageHeader *)ARR_GetElements(recv_headers);
+  n = ARR_GetSize(recv_headers);
+  __FC_assert((n >= (unsigned int)1) != 0,"ntp_io.c",727,"n >= 1");
+  if (event == 4) __FC_assert(0 != 0,"ntp_io.c",733,"0");
+  n = (unsigned int)1;
+  tmp = recvmsg(sock_fd,& (hdr + 0)->msg_hdr,flags);
+  status = (int)tmp;
+  if (status >= 0) (hdr + 0)->msg_len = (unsigned int)status;
+  if (status < 0) goto return_label;
+  i = (unsigned int)0;
+  while (i < n) {
+    hdr = (struct MessageHeader *)ARR_GetElement(recv_headers,i);
+    process_message(& hdr->msg_hdr,(int)hdr->msg_len,sock_fd);
+    i ++;
+  }
+  prepare_buffers(n);
+  return_label: return;
+}
+
+int NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr,
+                   NTP_Local_Address *local_addr, int length, int process_tx)
+{
+  int __retres;
+  union sockaddr_in46 remote;
+  struct msghdr msg;
+  struct iovec iov;
+  struct cmsghdr *cmsg;
+  struct cmsghdr cmsgbuf[(unsigned long)256 / sizeof(struct cmsghdr)];
+  int cmsglen;
+  int tmp_1;
+  ssize_t tmp_5;
+  socklen_t addrlen = (unsigned int)0;
+  __FC_assert(initialised != 0,"ntp_io.c",791,"initialised");
+  if (local_addr->sock_fd == -1) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp_1 = NIO_IsServerSocket(local_addr->sock_fd);
+  if (tmp_1) goto _LOR;
+  else 
+    if (! separate_client_sockets) {
+      _LOR:
+      {
+        int tmp_0;
+        tmp_0 = UTI_IPAndPortToSockaddr(& remote_addr->ip_addr,
+                                        remote_addr->port,& remote.u);
+        addrlen = (unsigned int)tmp_0;
+        if (! addrlen) {
+          __retres = 0;
+          goto return_label;
+        }
+      }
+    }
+  if (addrlen) {
+    msg.msg_name = (void *)(& remote.u);
+    msg.msg_namelen = addrlen;
+  }
+  else {
+    msg.msg_name = (void *)0;
+    msg.msg_namelen = (unsigned int)0;
+  }
+  iov.iov_base = (void *)packet;
+  iov.iov_len = (unsigned long)length;
+  msg.msg_iov = & iov;
+  msg.msg_iovlen = 1;
+  msg.msg_control = (void *)(cmsgbuf);
+  msg.msg_controllen = (unsigned int)sizeof(cmsgbuf);
+  msg.msg_flags = 0;
+  cmsglen = 0;
+  if ((int)local_addr->ip_addr.family == 1) ;
+  msg.msg_controllen = (unsigned int)cmsglen;
+  if (! cmsglen) msg.msg_control = (void *)0;
+  tmp_5 = sendmsg(local_addr->sock_fd,(struct msghdr const *)(& msg),0);
+  if (tmp_5 < (ssize_t)0) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int are_we_synchronised;
+static int enable_local_stratum;
+static int local_stratum_0;
+static int local_orphan_0;
+static double local_distance_0;
+static NTP_Leap our_leap_status;
+static int our_leap_sec;
+static int our_tai_offset;
+static int our_stratum;
+static uint32_t our_ref_id;
+static IPAddr our_ref_ip;
+static struct timespec our_ref_time;
+static double our_skew;
+static double our_residual_freq;
+static double our_root_delay;
+static double our_root_dispersion;
+static double max_update_skew_0;
+static double last_offset;
+static double avg2_offset;
+static int avg2_moving;
+static double correction_time_ratio_0;
+static int initialised_0 = 0;
+static REF_Mode mode;
+static int make_step_limit_0;
+static double make_step_threshold_0;
+static int max_offset_delay_0;
+static int max_offset_ignore_0;
+static double max_offset_0;
+static double log_change_threshold_0;
+static int do_mail_change;
+static double mail_change_threshold_0;
+static char *mail_change_user;
+static void (*mode_end_handler)(int result) = (void (*)(int result))0;
+static char *drift_file_0 = (char *)0;
+static double drift_file_age;
+static void update_drift_file(double freq_ppm, double skew);
+
+static REF_LeapMode leap_mode;
+static int leap_in_progress;
+static SCH_TimeoutID leap_timeout_id;
+static char *leap_tzname;
+static LOG_FileID logfileid;
+static int fb_drift_min_0;
+static int fb_drift_max_0;
+static struct fb_drift *fb_drifts = (struct fb_drift *)0;
+static int next_fb_drift;
+static SCH_TimeoutID fb_drift_timeout_id;
+static struct timespec last_ref_update;
+static double last_ref_update_interval;
+static NTP_Leap get_tz_leap(time_t when, int *tai_offset);
+
+static void update_leap_status(NTP_Leap leap, time_t now, int reset);
+
+static void handle_slew(struct timespec *raw, struct timespec *cooked,
+                        double dfreq, double doffset,
+                        LCL_ChangeType change_type, void *anything)
+{
+  double delta;
+  struct timespec now;
+  int tmp;
+  tmp = UTI_IsZeroTimespec(& our_ref_time);
+  if (! tmp) UTI_AdjustTimespec(& our_ref_time,cooked,& our_ref_time,& delta,
+                                dfreq,doffset);
+  if (change_type == (unsigned int)LCL_ChangeUnknownStep) UTI_ZeroTimespec
+                                                          (& last_ref_update);
+  else 
+    if (last_ref_update.tv_sec) UTI_AdjustTimespec(& last_ref_update,cooked,
+                                                   & last_ref_update,& delta,
+                                                   dfreq,doffset);
+  if (change_type != (unsigned int)LCL_ChangeAdjust) 
+    if (our_leap_sec) 
+      if (! leap_in_progress) {
+        LCL_ReadRawTime(& now);
+        update_leap_status(our_leap_status,now.tv_sec,1);
+      }
+  return;
+}
+
+/*@ requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, stream->__fc_FILE_data, *param1, *param0;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..)));
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..)));
+ */
+int fscanf_va_1(FILE * __restrict stream, char const * __restrict format,
+                double *param0, double *param1);
+
+void REF_Initialise(void)
+{
+  FILE *in;
+  double file_freq_ppm;
+  double file_skew_ppm;
+  double our_frequency_ppm;
+  int tai_offset;
+  int tmp_0;
+  double tmp_3;
+  double tmp_2;
+  mode = REF_ModeNormal;
+  are_we_synchronised = 0;
+  our_leap_status = LEAP_Unsynchronised;
+  our_leap_sec = 0;
+  our_tai_offset = 0;
+  initialised_0 = 1;
+  our_root_dispersion = 1.0;
+  our_root_delay = 1.0;
+  our_frequency_ppm = 0.0;
+  our_skew = 1.0;
+  our_residual_freq = 0.0;
+  drift_file_age = 0.0;
+  drift_file_0 = CNF_GetDriftFile();
+  if (drift_file_0) {
+    in = fopen((char const *)drift_file_0,"r");
+    if (in) {
+      int tmp;
+      tmp = fscanf_va_1(in,"%lf%lf",& file_freq_ppm,& file_skew_ppm);
+      if (tmp == 2) {
+        our_frequency_ppm = file_freq_ppm;
+        our_skew = 1.0e-6 * file_skew_ppm;
+        if (our_skew < 1.0e-12) our_skew = 1.0e-12;
+        {
+          double __va_arg0 = file_freq_ppm;
+          double __va_arg1 = file_skew_ppm;
+          char *__va_arg2 = drift_file_0;
+          void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2};
+          LOG_Message(LOGS_INFO,"Frequency %.3f +/- %.3f ppm read from %s",
+                      (void * const *)(__va_args));
+        }
+        LCL_SetAbsoluteFrequency(our_frequency_ppm);
+      }
+      else {
+        {
+          char *__va_arg0_20 = drift_file_0;
+          void *__va_args_22[1] = {& __va_arg0_20};
+          LOG_Message(LOGS_WARN,
+                      "Could not read valid frequency and skew from driftfile %s",
+                      (void * const *)(__va_args_22));
+        }
+      }
+      fclose(in);
+    }
+  }
+  if (our_frequency_ppm == 0.0) {
+    our_frequency_ppm = LCL_ReadAbsoluteFrequency();
+    if (our_frequency_ppm != 0.0) {
+      {
+        double __va_arg0_24 = our_frequency_ppm;
+        void *__va_args_26[1] = {& __va_arg0_24};
+        LOG_Message(LOGS_INFO,"Initial frequency %.3f ppm",
+                    (void * const *)(__va_args_26));
+      }
+    }
+  }
+  tmp_0 = CNF_GetLogTracking();
+  if (tmp_0) logfileid = LOG_FileOpen("tracking",
+                                      "   Date (UTC) Time     IP Address   St   Freq ppm   Skew ppm     Offset L Co  Offset sd Rem. corr. Root delay Root disp. Max. error");
+  else logfileid = -1;
+  tmp_2 = CNF_GetMaxUpdateSkew();
+  tmp_3 = fabs(tmp_2);
+  max_update_skew_0 = tmp_3 * 1.0e-6;
+  correction_time_ratio_0 = CNF_GetCorrectionTimeRatio();
+  enable_local_stratum = CNF_AllowLocalReference(& local_stratum_0,
+                                                 & local_orphan_0,
+                                                 & local_distance_0);
+  leap_timeout_id = (unsigned int)0;
+  leap_in_progress = 0;
+  leap_mode = CNF_GetLeapSecMode();
+  if (leap_mode == (unsigned int)REF_LeapModeSystem) {
+    int tmp_4;
+    tmp_4 = LCL_CanSystemLeap();
+    if (! tmp_4) leap_mode = REF_LeapModeStep;
+  }
+  leap_tzname = CNF_GetLeapSecTimezone();
+  if (leap_tzname) {
+    NTP_Leap tmp_5;
+    tmp_5 = get_tz_leap((long)1341014400,& tai_offset);
+    if (tmp_5 == (unsigned int)LEAP_InsertSecond) {
+      if (tai_offset == 34) {
+        NTP_Leap tmp_6;
+        tmp_6 = get_tz_leap((long)1356912000,& tai_offset);
+        if (tmp_6 == (unsigned int)LEAP_Normal) {
+          if (tai_offset == 35) {
+            {
+              char *__va_arg0_28 = leap_tzname;
+              void *__va_args_30[1] = {& __va_arg0_28};
+              LOG_Message(LOGS_INFO,
+                          "Using %s timezone to obtain leap second data",
+                          (void * const *)(__va_args_30));
+            }
+          }
+          else goto _LAND_1;
+        }
+        else goto _LAND_1;
+      }
+      else goto _LAND_1;
+    }
+    else {
+      _LAND_1:
+      {
+        {
+          char *__va_arg0_32 = leap_tzname;
+          void *__va_args_34[1] = {& __va_arg0_32};
+          LOG_Message(LOGS_WARN,
+                      "Timezone %s failed leap second check, ignoring",
+                      (void * const *)(__va_args_34));
+        }
+        leap_tzname = (char *)0;
+      }
+    }
+  }
+  CNF_GetMakeStep(& make_step_limit_0,& make_step_threshold_0);
+  CNF_GetMaxChange(& max_offset_delay_0,& max_offset_ignore_0,& max_offset_0);
+  CNF_GetMailOnChange(& do_mail_change,& mail_change_threshold_0,
+                      & mail_change_user);
+  log_change_threshold_0 = CNF_GetLogChange();
+  CNF_GetFallbackDrifts(& fb_drift_min_0,& fb_drift_max_0);
+  if (fb_drift_max_0 >= fb_drift_min_0) 
+    if (fb_drift_min_0 > 0) {
+      fb_drifts = (struct fb_drift *)Malloc2((unsigned long)((fb_drift_max_0 - fb_drift_min_0) + 1),
+                                             sizeof(struct fb_drift));
+      memset((void *)fb_drifts,0,
+             sizeof(struct fb_drift) * (unsigned long)((fb_drift_max_0 - fb_drift_min_0) + 1));
+      next_fb_drift = 0;
+      fb_drift_timeout_id = (unsigned int)0;
+    }
+  UTI_ZeroTimespec(& our_ref_time);
+  UTI_ZeroTimespec(& last_ref_update);
+  last_ref_update_interval = 0.0;
+  LCL_AddParameterChangeHandler(& handle_slew,(void *)0);
+  REF_SetUnsynchronised();
+  return;
+}
+
+void REF_Finalise(void)
+{
+  update_leap_status(LEAP_Unsynchronised,(long)0,0);
+  if (drift_file_0) {
+    double tmp;
+    ;
+    tmp = LCL_ReadAbsoluteFrequency();
+    update_drift_file(tmp,our_skew);
+  }
+  free((void *)fb_drifts);
+  initialised_0 = 0;
+  return;
+}
+
+void REF_SetMode(REF_Mode new_mode)
+{
+  mode = new_mode;
+  return;
+}
+
+REF_Mode REF_GetMode(void)
+{
+  return mode;
+}
+
+void REF_SetModeEndHandler(void (*handler)(int result))
+{
+  mode_end_handler = handler;
+  return;
+}
+
+REF_LeapMode REF_GetLeapMode(void)
+{
+  return leap_mode;
+}
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param1),
+            (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param1, param0;
+ */
+int fprintf_va_2(FILE * __restrict stream, char const * __restrict format,
+                 double param0, double param1);
+
+static void update_drift_file(double freq_ppm, double skew)
+{
+  struct stat buf;
+  char *temp_drift_file;
+  FILE *out;
+  int r1;
+  int r2;
+  void *tmp_0;
+  size_t tmp;
+  int tmp_3;
+  int tmp_4;
+  tmp = strlen((char const *)drift_file_0);
+  tmp_0 = Malloc(tmp + (size_t)8);
+  temp_drift_file = (char *)tmp_0;
+  if (! temp_drift_file) goto return_label;
+  strcpy(temp_drift_file,(char const *)drift_file_0);
+  strcat(temp_drift_file,".tmp");
+  out = fopen((char const *)temp_drift_file,"w");
+  if (! out) {
+    free((void *)temp_drift_file);
+    {
+      char *__va_arg0 = drift_file_0;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_WARN,
+                  "Could not open temporary driftfile %s.tmp for writing",
+                  (void * const *)(__va_args));
+    }
+    goto return_label;
+  }
+  r1 = fprintf_va_2(out,"%20.6f %20.6f\n",freq_ppm,1.0e6 * skew);
+  r2 = fclose(out);
+  if (r1 < 0) goto _LOR;
+  else 
+    if (r2) {
+      _LOR:
+      {
+        free((void *)temp_drift_file);
+        {
+          char *__va_arg0_17 = drift_file_0;
+          void *__va_args_19[1] = {& __va_arg0_17};
+          LOG_Message(LOGS_WARN,
+                      "Could not write to temporary driftfile %s.tmp",
+                      (void * const *)(__va_args_19));
+        }
+        goto return_label;
+      }
+    }
+  tmp_3 = stat((char const *)drift_file_0,& buf);
+  if (! tmp_3) {
+    int tmp_1;
+    tmp_1 = chown((char const *)temp_drift_file,buf.st_uid,buf.st_gid);
+    if (tmp_1) goto _LOR_0;
+    else {
+      int tmp_2;
+      tmp_2 = chmod((char const *)temp_drift_file,
+                    buf.st_mode & (unsigned int)0777);
+      if (tmp_2) {
+        _LOR_0:
+        {
+          char *__va_arg0_21 = drift_file_0;
+          void *__va_args_23[1] = {& __va_arg0_21};
+          LOG_Message(LOGS_WARN,
+                      "Could not change ownership or permissions of temporary driftfile %s.tmp",
+                      (void * const *)(__va_args_23));
+        }
+      }
+    }
+  }
+  tmp_4 = rename((char const *)temp_drift_file,(char const *)drift_file_0);
+  if (tmp_4) {
+    unlink((char const *)temp_drift_file);
+    free((void *)temp_drift_file);
+    {
+      char *__va_arg0_25 = drift_file_0;
+      char *__va_arg1 = drift_file_0;
+      void *__va_args_28[2] = {& __va_arg0_25, & __va_arg1};
+      LOG_Message(LOGS_WARN,
+                  "Could not replace old driftfile %s with new one %s.tmp",
+                  (void * const *)(__va_args_28));
+    }
+    goto return_label;
+  }
+  free((void *)temp_drift_file);
+  return_label: return;
+}
+
+static void update_fb_drifts(double freq_ppm, double update_interval)
+{
+  int i;
+  int secs;
+  __FC_assert(are_we_synchronised != 0,"reference.c",398,
+              "are_we_synchronised");
+  if (next_fb_drift > 0) next_fb_drift = 0;
+  SCH_RemoveTimeout(fb_drift_timeout_id);
+  fb_drift_timeout_id = (unsigned int)0;
+  if (update_interval < 1.0) goto return_label;
+  else 
+    if (update_interval > last_ref_update_interval * 4.0) goto return_label;
+  i = 0;
+  while (i < (fb_drift_max_0 - fb_drift_min_0) + 1) {
+    secs = 1 << (i + fb_drift_min_0);
+    if ((fb_drifts + i)->secs < (double)secs) {
+      (fb_drifts + i)->freq = ((fb_drifts + i)->freq * (fb_drifts + i)->secs + 
+                               (update_interval * 0.5) * freq_ppm) / (
+                              update_interval * 0.5 + (fb_drifts + i)->secs);
+      (fb_drifts + i)->secs += update_interval * 0.5;
+    }
+    else {
+      double tmp;
+      tmp = exp(update_interval / (double)secs);
+      (fb_drifts + i)->freq += ((double)1 - 1.0 / tmp) * (freq_ppm - (
+                                                          fb_drifts + i)->freq);
+    }
+    i ++;
+  }
+  return_label: return;
+}
+
+static void fb_drift_timeout(void *arg)
+{
+  int tmp;
+  if (next_fb_drift >= fb_drift_min_0) 
+    if (next_fb_drift <= fb_drift_max_0) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  __FC_assert(tmp != 0,"reference.c",441,
+              "next_fb_drift >= fb_drift_min && next_fb_drift <= fb_drift_max");
+  fb_drift_timeout_id = (unsigned int)0;
+  LCL_SetAbsoluteFrequency((fb_drifts + (next_fb_drift - fb_drift_min_0))->freq);
+  REF_SetUnsynchronised();
+  return;
+}
+
+static void schedule_fb_drift(struct timespec *now)
+{
+  int i;
+  int c;
+  int secs;
+  double unsynchronised;
+  struct timespec when;
+  if (fb_drift_timeout_id) goto return_label;
+  unsynchronised = UTI_DiffTimespecsToDouble(now,& last_ref_update);
+  secs = 0;
+  c = secs;
+  i = fb_drift_min_0;
+  while (i <= fb_drift_max_0) {
+    secs = 1 << i;
+    if ((fb_drifts + (i - fb_drift_min_0))->secs < (double)secs) goto __Cont;
+    if (unsynchronised < (double)secs) 
+      if (i > next_fb_drift) break;
+    c = i;
+    __Cont: i ++;
+  }
+  if (c > next_fb_drift) {
+    LCL_SetAbsoluteFrequency((fb_drifts + (c - fb_drift_min_0))->freq);
+    next_fb_drift = c;
+  }
+  if (i <= fb_drift_max_0) {
+    next_fb_drift = i;
+    UTI_AddDoubleToTimespec(now,(double)secs - unsynchronised,& when);
+    fb_drift_timeout_id = SCH_AddTimeout(& when,& fb_drift_timeout,(void *)0);
+  }
+  return_label: return;
+}
+
+static void end_ref_mode(int result)
+{
+  mode = REF_ModeIgnore;
+  if (mode_end_handler) (*mode_end_handler)(result);
+  return;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_2(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0);
+
+/*@ requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..)));
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int fprintf_va_3(FILE * __restrict stream, char const * __restrict format,
+                 char *param0);
+
+/*@ requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..)));
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int fprintf_va_4(FILE * __restrict stream, char const * __restrict format,
+                 char *param0);
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param1),
+            (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param1, param0;
+ */
+int fprintf_va_5(FILE * __restrict stream, char const * __restrict format,
+                 double param0, double param1);
+
+static void maybe_log_offset(double offset, time_t now)
+{
+  double abs_offset;
+  FILE *p;
+  char buffer[255];
+  char host[255];
+  struct tm *tm;
+  abs_offset = fabs(offset);
+  if (abs_offset > log_change_threshold_0) {
+    {
+      double __va_arg0 = - offset;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_WARN,
+                  "System clock wrong by %.6f seconds, adjustment started",
+                  (void * const *)(__va_args));
+    }
+  }
+  if (do_mail_change) 
+    if (abs_offset > mail_change_threshold_0) {
+      snprintf_va_2(buffer,sizeof(buffer),"%s -t",
+                    (char *)"/usr/lib/sendmail");
+      p = popen((char const *)(buffer),"w");
+      if (p) {
+        int tmp;
+        tmp = gethostname(host,sizeof(host));
+        if (tmp < 0) strcpy(host,"<UNKNOWN>");
+        host[sizeof(host) - (unsigned long)1] = (char)'\000';
+        fprintf_va_3(p,"To: %s\n",mail_change_user);
+        fprintf_va_4(p,
+                     "Subject: chronyd reports change to system clock on node [%s]\n",
+                     host);
+        fputs("\n",p);
+        tm = localtime((time_t const *)(& now));
+        if (tm) {
+          strftime(buffer,sizeof(buffer),
+                   "On %A, %d %B %Y\n  with the system clock reading %H:%M:%S (%Z)",
+                   (struct tm const *)tm);
+          fputs((char const *)(buffer),p);
+        }
+        fprintf_va_5(p,
+                     "\n\nchronyd started to apply an adjustment of %.3f seconds to it,\n  which exceeded the reporting threshold of %.3f seconds\n\n",
+                     - offset,mail_change_threshold_0);
+        pclose(p);
+      }
+      else {
+        {
+          char *__va_arg0_12 = mail_change_user;
+          void *__va_args_14[1] = {& __va_arg0_12};
+          LOG_Message(LOGS_ERR,
+                      "Could not send mail notification to user %s\n",
+                      (void * const *)(__va_args_14));
+        }
+      }
+    }
+  return;
+}
+
+static int is_step_limit_reached(double offset, double offset_correction)
+{
+  int __retres;
+  double tmp;
+  if (make_step_limit_0 == 0) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (make_step_limit_0 > 0) make_step_limit_0 --;
+  tmp = fabs(offset - offset_correction);
+  ;
+  __retres = tmp > make_step_threshold_0;
+  return_label: return __retres;
+}
+
+static int is_offset_ok(double offset)
+{
+  int __retres;
+  if (max_offset_delay_0 < 0) {
+    __retres = 1;
+    goto return_label;
+  }
+  if (max_offset_delay_0 > 0) {
+    max_offset_delay_0 --;
+    __retres = 1;
+    goto return_label;
+  }
+  offset = fabs(offset);
+  if (offset > max_offset_0) {
+    char const *tmp;
+    if (! max_offset_ignore_0) tmp = "exiting"; else tmp = "ignored";
+    ;
+    ;
+    {
+      double __va_arg0 = - offset;
+      double __va_arg1 = max_offset_0;
+      char const *__va_arg2 = tmp;
+      void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2};
+      LOG_Message(LOGS_WARN,
+                  "Adjustment of %.3f seconds exceeds the allowed maximum of %.3f seconds (%s) ",
+                  (void * const *)(__va_args));
+    }
+    if (! max_offset_ignore_0) end_ref_mode(0);
+    else 
+      if (max_offset_ignore_0 > 0) max_offset_ignore_0 --;
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int is_leap_second_day(time_t when)
+{
+  int __retres;
+  struct tm *stm;
+  int tmp;
+  stm = gmtime((time_t const *)(& when));
+  if (! stm) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (stm->tm_mon == 5) {
+    if (stm->tm_mday == 30) tmp = 1; else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (stm->tm_mon == 11) 
+      if (stm->tm_mday == 31) tmp = 1; else tmp = 0;
+    else tmp = 0;
+  }
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+static time_t get_tz_leap_last_tz_leap_check;
+static NTP_Leap get_tz_leap_tz_leap;
+static int get_tz_leap_tz_tai_offset;
+static NTP_Leap get_tz_leap(time_t when, int *tai_offset)
+{
+  NTP_Leap __retres;
+  struct tm stm;
+  struct tm *tm;
+  time_t t;
+  char *tz_env;
+  char tz_orig[128];
+  *tai_offset = get_tz_leap_tz_tai_offset;
+  when = (when / (time_t)(12 * 3600)) * (time_t)(12 * 3600);
+  if (get_tz_leap_last_tz_leap_check == when) {
+    __retres = get_tz_leap_tz_leap;
+    goto return_label;
+  }
+  get_tz_leap_last_tz_leap_check = when;
+  get_tz_leap_tz_leap = LEAP_Normal;
+  get_tz_leap_tz_tai_offset = 0;
+  tm = gmtime((time_t const *)(& when));
+  if (! tm) {
+    __retres = get_tz_leap_tz_leap;
+    goto return_label;
+  }
+  stm = *tm;
+  tz_env = getenv("TZ");
+  if (tz_env) {
+    size_t tmp;
+    tmp = strlen((char const *)tz_env);
+    if (tmp >= sizeof(tz_orig)) {
+      __retres = get_tz_leap_tz_leap;
+      goto return_label;
+    }
+    strcpy(tz_orig,(char const *)tz_env);
+  }
+  setenv("TZ",(char const *)leap_tzname,1);
+  tzset();
+  t = mktime(& stm);
+  if (t != (time_t)(-1)) get_tz_leap_tz_tai_offset = (int)((t - when) + (time_t)10);
+  stm.tm_sec = 60;
+  stm.tm_min = 59;
+  stm.tm_hour = 23;
+  t = mktime(& stm);
+  if (tz_env) setenv("TZ",(char const *)(tz_orig),1); else unsetenv("TZ");
+  tzset();
+  if (t == (time_t)(-1)) {
+    __retres = get_tz_leap_tz_leap;
+    goto return_label;
+  }
+  if (stm.tm_sec == 60) get_tz_leap_tz_leap = LEAP_InsertSecond;
+  else 
+    if (stm.tm_sec == 1) get_tz_leap_tz_leap = LEAP_DeleteSecond;
+  *tai_offset = get_tz_leap_tz_tai_offset;
+  __retres = get_tz_leap_tz_leap;
+  return_label: return __retres;
+}
+
+static void leap_end_timeout(void *arg)
+{
+  leap_timeout_id = (unsigned int)0;
+  leap_in_progress = 0;
+  if (our_tai_offset) our_tai_offset += our_leap_sec;
+  our_leap_sec = 0;
+  if (leap_mode == (unsigned int)REF_LeapModeSystem) LCL_SetSystemLeap
+                                                     (our_leap_sec,
+                                                      our_tai_offset);
+  if (our_leap_status == (unsigned int)LEAP_InsertSecond) our_leap_status = LEAP_Normal;
+  else 
+    if (our_leap_status == (unsigned int)LEAP_DeleteSecond) our_leap_status = LEAP_Normal;
+  return;
+}
+
+static void leap_start_timeout(void *arg)
+{
+  leap_in_progress = 1;
+  switch (leap_mode) {
+    case (REF_LeapMode)REF_LeapModeSystem: ;
+    break;
+    case (REF_LeapMode)REF_LeapModeSlew: LCL_NotifyLeap(our_leap_sec);
+    LCL_AccumulateOffset((double)our_leap_sec,0.0);
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"Adjusting system clock for leap second",
+                  (void * const *)(__va_args));
+    }
+    break;
+    case (REF_LeapMode)REF_LeapModeStep: LCL_NotifyLeap(our_leap_sec);
+    LCL_ApplyStepOffset((double)our_leap_sec);
+    {
+      void *__va_args_4[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"System clock was stepped for leap second",
+                  (void * const *)(__va_args_4));
+    }
+    break;
+    case (REF_LeapMode)REF_LeapModeIgnore:
+    {
+      void *__va_args_6[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"Ignoring leap second",
+                  (void * const *)(__va_args_6));
+    }
+    break;
+    default: break;
+  }
+  leap_timeout_id = SCH_AddTimeoutByDelay(2.0,& leap_end_timeout,(void *)0);
+  return;
+}
+
+static void set_leap_timeout(time_t now)
+{
+  struct timespec when;
+  SCH_RemoveTimeout(leap_timeout_id);
+  leap_timeout_id = (unsigned int)0;
+  leap_in_progress = 0;
+  if (! our_leap_sec) goto return_label;
+  when.tv_sec = (now / (time_t)(24 * 3600) + (time_t)1) * (time_t)(24 * 3600);
+  when.tv_nsec = (long)0;
+  if (our_leap_sec < 0) (when.tv_sec) --;
+  if (leap_mode == (unsigned int)REF_LeapModeSystem) {
+    (when.tv_sec) --;
+    when.tv_nsec = (long)500000000;
+  }
+  leap_timeout_id = SCH_AddTimeout(& when,& leap_start_timeout,(void *)0);
+  return_label: return;
+}
+
+static void update_leap_status(NTP_Leap leap, time_t now, int reset)
+{
+  NTP_Leap tz_leap;
+  int leap_sec;
+  int tai_offset;
+  leap_sec = 0;
+  tai_offset = 0;
+  if (leap_tzname) 
+    if (now) {
+      tz_leap = get_tz_leap(now,& tai_offset);
+      if (leap == (unsigned int)LEAP_Normal) leap = tz_leap;
+    }
+  if (leap == (unsigned int)LEAP_InsertSecond) goto _LOR;
+  else 
+    if (leap == (unsigned int)LEAP_DeleteSecond) {
+      _LOR:
+      {
+        int tmp;
+        tmp = is_leap_second_day(now);
+        if (tmp) 
+          if (leap == (unsigned int)LEAP_InsertSecond) leap_sec = 1;
+          else leap_sec = -1;
+        else leap = LEAP_Normal;
+      }
+    }
+  if (leap_sec != our_leap_sec) goto _LOR_0;
+  else 
+    if (tai_offset != our_tai_offset) {
+      int tmp_0;
+      _LOR_0: tmp_0 = REF_IsLeapSecondClose();
+      if (tmp_0) goto _LAND;
+      else {
+        our_leap_sec = leap_sec;
+        our_tai_offset = tai_offset;
+        switch (leap_mode) {
+          case (REF_LeapMode)REF_LeapModeSystem:
+          LCL_SetSystemLeap(our_leap_sec,our_tai_offset);
+          case (REF_LeapMode)REF_LeapModeSlew:
+          case (REF_LeapMode)REF_LeapModeStep:
+          case (REF_LeapMode)REF_LeapModeIgnore:
+          set_leap_timeout(now);
+          break;
+          default: __FC_assert(0 != 0,"reference.c",815,"0");
+          break;
+        }
+      }
+    }
+    else {
+      _LAND: ;
+      if (reset) set_leap_timeout(now);
+    }
+  our_leap_status = leap;
+  return;
+}
+
+static double get_root_dispersion(struct timespec *ts)
+{
+  double __retres;
+  int tmp;
+  double tmp_1;
+  double tmp_0;
+  double tmp_2;
+  double tmp_3;
+  tmp = UTI_IsZeroTimespec(& our_ref_time);
+  if (tmp) {
+    __retres = 1.0;
+    goto return_label;
+  }
+  tmp_0 = UTI_DiffTimespecsToDouble(ts,& our_ref_time);
+  tmp_1 = fabs(tmp_0);
+  tmp_2 = fabs(our_residual_freq);
+  tmp_3 = LCL_GetMaxClockError();
+  ;
+  __retres = our_root_dispersion + tmp_1 * ((our_skew + tmp_2) + tmp_3);
+  return_label: return __retres;
+}
+
+static void write_log(struct timespec *now, int combined_sources,
+                      double freq, double offset, double offset_sd,
+                      double uncorrected_offset, double orig_root_distance);
+
+static double write_log_last_sys_offset = 0.0;
+static void write_log(struct timespec *now, int combined_sources,
+                      double freq, double offset, double offset_sd,
+                      double uncorrected_offset, double orig_root_distance)
+{
+  double root_dispersion;
+  double max_error;
+  double tmp;
+  char *tmp_2;
+  char *tmp_3;
+  char const leap_codes[4] = {(char)'N', (char)'+', (char)'-', (char)'?'};
+  if (logfileid == -1) goto return_label;
+  tmp = fabs(write_log_last_sys_offset);
+  max_error = orig_root_distance + tmp;
+  root_dispersion = get_root_dispersion(now);
+  write_log_last_sys_offset = offset - uncorrected_offset;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  if ((int)our_ref_ip.family != 0) tmp_2 = UTI_IPToString(& our_ref_ip);
+  else tmp_2 = UTI_RefidToString(our_ref_id);
+  tmp_3 = UTI_TimeToLogForm(now->tv_sec);
+  ;
+  {
+    char *__va_arg0 = tmp_3;
+    char *__va_arg1 = tmp_2;
+    int __va_arg2 = our_stratum;
+    double __va_arg3 = freq;
+    double __va_arg4 = 1.0e6 * our_skew;
+    double __va_arg5 = offset;
+    int __va_arg6 = (int)leap_codes[our_leap_status];
+    int __va_arg7 = combined_sources;
+    double __va_arg8 = offset_sd;
+    double __va_arg9 = uncorrected_offset;
+    double __va_arg10 = our_root_delay;
+    double __va_arg11 = root_dispersion;
+    double __va_arg12 = max_error;
+    void *__va_args[13] =
+      {& __va_arg0,
+       & __va_arg1,
+       & __va_arg2,
+       & __va_arg3,
+       & __va_arg4,
+       & __va_arg5,
+       & __va_arg6,
+       & __va_arg7,
+       & __va_arg8,
+       & __va_arg9,
+       & __va_arg10,
+       & __va_arg11,
+       & __va_arg12};
+    LOG_FileWrite(logfileid,
+                  "%s %-15s %2d %10.3f %10.3f %10.3e %1c %2d %10.3e %10.3e %10.3e %10.3e %10.3e",
+                  (void * const *)(__va_args));
+  }
+  return_label: return;
+}
+
+static void special_mode_sync(int valid, double offset)
+{
+  int step;
+  switch (mode) {
+    double tmp;
+    double tmp_0;
+    char const *tmp_1;
+    char const *tmp_2;
+    double tmp_3;
+    char const *tmp_4;
+    case (REF_Mode)REF_ModeInitStepSlew:
+    if (! valid) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_WARN,"No suitable source for initstepslew",
+                    (void * const *)(__va_args));
+      }
+      end_ref_mode(0);
+      break;
+    }
+    tmp = fabs(offset);
+    tmp_0 = CNF_GetInitStepThreshold();
+    step = tmp >= tmp_0;
+    if (step) tmp_1 = "step"; else tmp_1 = "slew";
+    if (offset >= (double)0) tmp_2 = "fast"; else tmp_2 = "slow";
+    tmp_3 = fabs(offset);
+    {
+      double __va_arg0 = tmp_3;
+      char const *__va_arg1 = tmp_2;
+      char const *__va_arg2 = tmp_1;
+      void *__va_args_15[3] = {& __va_arg0, & __va_arg1, & __va_arg2};
+      LOG_Message(LOGS_INFO,
+                  "System\'s initial offset : %.6f seconds %s of true (%s)",
+                  (void * const *)(__va_args_15));
+    }
+    if (step) LCL_ApplyStepOffset(offset);
+    else LCL_AccumulateOffset(offset,0.0);
+    end_ref_mode(1);
+    break;
+    case (REF_Mode)REF_ModeUpdateOnce: case (REF_Mode)REF_ModePrintOnce:
+    if (! valid) {
+      {
+        void *__va_args_17[1] = {(void *)0};
+        LOG_Message(LOGS_WARN,"No suitable source for synchronisation",
+                    (void * const *)(__va_args_17));
+      }
+      end_ref_mode(0);
+      break;
+    }
+    step = mode == (unsigned int)REF_ModeUpdateOnce;
+    if (step) tmp_4 = "step"; else tmp_4 = "ignored";
+    ;
+    {
+      double __va_arg0_19 = - offset;
+      char const *__va_arg1_21 = tmp_4;
+      void *__va_args_23[2] = {& __va_arg0_19, & __va_arg1_21};
+      LOG_Message(LOGS_INFO,"System clock wrong by %.6f seconds (%s)",
+                  (void * const *)(__va_args_23));
+    }
+    if (step) LCL_ApplyStepOffset(offset);
+    end_ref_mode(1);
+    break;
+    case (REF_Mode)REF_ModeIgnore: break;
+    default: __FC_assert(0 != 0,"reference.c",917,"0");
+  }
+  return;
+}
+
+static void get_clock_estimates(int manual, double measured_freq,
+                                double measured_skew, double *estimated_freq,
+                                double *estimated_skew, double *residual_freq)
+{
+  double gain;
+  double expected_freq;
+  double expected_skew;
+  double extra_skew;
+  double tmp_0;
+  expected_freq = 0.0;
+  expected_skew = our_skew;
+  if (manual) gain = 1.0;
+  else {
+    double tmp;
+    tmp = fabs(measured_skew);
+    ;
+    if (tmp > max_update_skew_0) gain = 0.0;
+    else gain = (3.0 * (expected_skew * expected_skew)) / (3.0 * (expected_skew * expected_skew) + 
+                                                           measured_skew * measured_skew);
+  }
+  if (gain < 1.0) tmp_0 = gain; else tmp_0 = 1.0;
+  if (0.0 > tmp_0) gain = 0.0;
+  else {
+    double tmp_1;
+    if (gain < 1.0) tmp_1 = gain; else tmp_1 = 1.0;
+    gain = tmp_1;
+  }
+  *estimated_freq = expected_freq + gain * (measured_freq - expected_freq);
+  *residual_freq = measured_freq - *estimated_freq;
+  extra_skew = sqrt(((expected_freq - *estimated_freq) * (expected_freq - *estimated_freq)) * (
+                    1.0 - gain) + ((measured_freq - *estimated_freq) * (
+                                   measured_freq - *estimated_freq)) * gain);
+  *estimated_skew = (expected_skew + gain * (measured_skew - expected_skew)) + extra_skew;
+  return;
+}
+
+void REF_SetReference(int stratum, NTP_Leap leap, int combined_sources,
+                      uint32_t ref_id, IPAddr *ref_ip,
+                      struct timespec *ref_time, double offset,
+                      double offset_sd, double frequency,
+                      double frequency_sd, double skew, double root_delay,
+                      double root_dispersion)
+{
+  double uncorrected_offset;
+  double accumulate_offset;
+  double step_offset;
+  double residual_frequency;
+  double local_abs_frequency;
+  double elapsed;
+  double update_interval;
+  double correction_rate;
+  double orig_root_distance;
+  struct timespec now;
+  struct timespec raw_now;
+  NTP_int64 ref_fuzz;
+  int manual;
+  int tmp;
+  double tmp_0;
+  int tmp_1;
+  double tmp_3;
+  int tmp_4;
+  __FC_assert(initialised_0 != 0,"reference.c",976,"initialised");
+  if (mode != (unsigned int)REF_ModeNormal) {
+    special_mode_sync(1,offset);
+    goto return_label;
+  }
+  manual = leap == (unsigned int)LEAP_Unsynchronised;
+  LCL_ReadRawTime(& raw_now);
+  LCL_GetOffsetCorrection(& raw_now,& uncorrected_offset,(double *)0);
+  UTI_AddDoubleToTimespec(& raw_now,uncorrected_offset,& now);
+  elapsed = UTI_DiffTimespecsToDouble(& now,ref_time);
+  offset += elapsed * frequency;
+  offset_sd += elapsed * frequency_sd;
+  if (last_ref_update.tv_sec) {
+    update_interval = UTI_DiffTimespecsToDouble(& now,& last_ref_update);
+    if (update_interval > 0.0) update_interval = update_interval;
+    else update_interval = 0.0;
+  }
+  else update_interval = 0.0;
+  get_clock_estimates(manual,frequency,skew,& frequency,& skew,
+                      & residual_frequency);
+  tmp = is_offset_ok(offset);
+  if (! tmp) goto return_label;
+  tmp_0 = get_root_dispersion(& now);
+  orig_root_distance = our_root_delay / 2.0 + tmp_0;
+  are_we_synchronised = leap != (unsigned int)LEAP_Unsynchronised;
+  our_stratum = stratum + 1;
+  our_ref_id = ref_id;
+  if (ref_ip) our_ref_ip = *ref_ip;
+  else our_ref_ip.family = (unsigned short)0;
+  our_ref_time = *ref_time;
+  our_skew = skew;
+  our_residual_freq = residual_frequency;
+  our_root_delay = root_delay;
+  our_root_dispersion = root_dispersion;
+  last_ref_update = now;
+  last_ref_update_interval = update_interval;
+  last_offset = offset;
+  correction_rate = ((correction_time_ratio_0 * 0.5) * offset_sd) * update_interval;
+  tmp_1 = is_step_limit_reached(offset,uncorrected_offset);
+  if (tmp_1) {
+    accumulate_offset = uncorrected_offset;
+    step_offset = offset - uncorrected_offset;
+  }
+  else {
+    accumulate_offset = offset;
+    step_offset = 0.0;
+  }
+  LCL_AccumulateFrequencyAndOffset(frequency,accumulate_offset,
+                                   correction_rate);
+  update_leap_status(leap,raw_now.tv_sec,0);
+  maybe_log_offset(offset,raw_now.tv_sec);
+  if (step_offset != 0.0) {
+    int tmp_2;
+    tmp_2 = LCL_ApplyStepOffset(step_offset);
+    if (tmp_2) {
+      {
+        double __va_arg0 = - step_offset;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_WARN,"System clock was stepped by %.6f seconds",
+                    (void * const *)(__va_args));
+      }
+    }
+  }
+  tmp_3 = get_root_dispersion(& now);
+  ;
+  ;
+  ;
+  LCL_SetSyncStatus(are_we_synchronised,offset_sd,root_delay / 2.0 + tmp_3);
+  UTI_GetNtp64Fuzz(& ref_fuzz,0);
+  UTI_TimespecToNtp64(& our_ref_time,& ref_fuzz,& ref_fuzz);
+  UTI_Ntp64ToTimespec(& ref_fuzz,& our_ref_time);
+  tmp_4 = UTI_CompareTimespecs(& our_ref_time,ref_time);
+  if (tmp_4 >= 0) (our_ref_time.tv_sec) --;
+  local_abs_frequency = LCL_ReadAbsoluteFrequency();
+  write_log(& now,combined_sources,local_abs_frequency,offset,offset_sd,
+            uncorrected_offset,orig_root_distance);
+  if (drift_file_0) {
+    drift_file_age += update_interval;
+    if (drift_file_age < 0.0) goto _LOR;
+    else 
+      if (drift_file_age > 3600.0) {
+        _LOR:
+        {
+          update_drift_file(local_abs_frequency,our_skew);
+          drift_file_age = 0.0;
+        }
+      }
+  }
+  if (fb_drifts) 
+    if (are_we_synchronised) {
+      update_fb_drifts(local_abs_frequency,update_interval);
+      schedule_fb_drift(& now);
+    }
+  if (avg2_moving) avg2_offset += 0.1 * (offset * offset - avg2_offset);
+  else {
+    if (avg2_offset > 0.0) 
+      if (avg2_offset < offset * offset) avg2_moving = 1;
+    avg2_offset = offset * offset;
+  }
+  return_label: return;
+}
+
+void REF_SetManualReference(struct timespec *ref_time, double offset,
+                            double frequency, double skew)
+{
+  REF_SetReference(0,LEAP_Unsynchronised,1,(unsigned int)0x4D414E55UL,
+                   (IPAddr *)0,ref_time,offset,0.0,frequency,skew,skew,0.0,
+                   0.0);
+  return;
+}
+
+void REF_SetUnsynchronised(void)
+{
+  struct timespec now;
+  struct timespec now_raw;
+  double uncorrected_offset;
+  double tmp;
+  double tmp_0;
+  __FC_assert(initialised_0 != 0,"reference.c",1131,"initialised");
+  if (mode != (unsigned int)REF_ModeNormal) {
+    special_mode_sync(0,0.0);
+    goto return_label;
+  }
+  LCL_ReadRawTime(& now_raw);
+  LCL_GetOffsetCorrection(& now_raw,& uncorrected_offset,(double *)0);
+  UTI_AddDoubleToTimespec(& now_raw,uncorrected_offset,& now);
+  if (fb_drifts) schedule_fb_drift(& now);
+  update_leap_status(LEAP_Unsynchronised,(long)0,0);
+  our_ref_ip.family = (unsigned short)1;
+  our_ref_ip.addr.in4 = (unsigned int)0;
+  our_stratum = 0;
+  are_we_synchronised = 0;
+  LCL_SetSyncStatus(0,0.0,0.0);
+  tmp = get_root_dispersion(& now);
+  ;
+  ;
+  tmp_0 = LCL_ReadAbsoluteFrequency();
+  write_log(& now,0,tmp_0,0.0,0.0,uncorrected_offset,
+            our_root_delay / 2.0 + tmp);
+  return_label: return;
+}
+
+void REF_GetReferenceParams(struct timespec *local_time,
+                            int *is_synchronised, NTP_Leap *leap_status,
+                            int *stratum, uint32_t *ref_id,
+                            struct timespec *ref_time, double *root_delay,
+                            double *root_dispersion)
+{
+  double dispersion;
+  __FC_assert(initialised_0 != 0,"reference.c",1176,"initialised");
+  if (are_we_synchronised) dispersion = get_root_dispersion(local_time);
+  else dispersion = 0.0;
+  if (are_we_synchronised) 
+    if (enable_local_stratum) {
+      if (our_root_delay / (double)2 + dispersion > local_distance_0) 
+        goto _LAND;
+      else goto _LAND_0;
+    }
+    else {
+      _LAND_0:
+      {
+        *is_synchronised = 1;
+        *stratum = our_stratum;
+        if (! leap_in_progress) *leap_status = our_leap_status;
+        else *leap_status = LEAP_Unsynchronised;
+        *ref_id = our_ref_id;
+        *ref_time = our_ref_time;
+        *root_delay = our_root_delay;
+        *root_dispersion = dispersion;
+      }
+    }
+  else {
+    _LAND: ;
+    if (enable_local_stratum) {
+      *is_synchronised = 0;
+      *stratum = local_stratum_0;
+      *ref_id = (unsigned int)0x7F7F0101UL;
+      *ref_time = *local_time;
+      (ref_time->tv_sec) --;
+      *leap_status = LEAP_Normal;
+      *root_delay = 0.0;
+      *root_dispersion = 0.0;
+    }
+    else {
+      *is_synchronised = 0;
+      *leap_status = LEAP_Unsynchronised;
+      *stratum = 16;
+      *ref_id = (unsigned int)0x0UL;
+      UTI_ZeroTimespec(ref_time);
+      *root_dispersion = 1.0;
+      *root_delay = 1.0;
+    }
+  }
+  return;
+}
+
+int REF_GetOurStratum(void)
+{
+  struct timespec now_cooked;
+  struct timespec ref_time;
+  int synchronised;
+  int stratum;
+  NTP_Leap leap_status;
+  uint32_t ref_id;
+  double root_delay;
+  double root_dispersion;
+  SCH_GetLastEventTime(& now_cooked,(double *)0,(struct timespec *)0);
+  REF_GetReferenceParams(& now_cooked,& synchronised,& leap_status,& stratum,
+                         & ref_id,& ref_time,& root_delay,& root_dispersion);
+  return stratum;
+}
+
+int REF_GetOrphanStratum(void)
+{
+  int __retres;
+  if (! enable_local_stratum) {
+    __retres = 16;
+    goto return_label;
+  }
+  else 
+    if (! local_orphan_0) {
+      __retres = 16;
+      goto return_label;
+    }
+    else 
+      if (mode != (unsigned int)REF_ModeNormal) {
+        __retres = 16;
+        goto return_label;
+      }
+  __retres = local_stratum_0;
+  return_label: return __retres;
+}
+
+double REF_GetSkew(void)
+{
+  return our_skew;
+}
+
+void REF_ModifyMaxupdateskew(double new_max_update_skew)
+{
+  max_update_skew_0 = new_max_update_skew * 1.0e-6;
+  return;
+}
+
+void REF_ModifyMakestep(int limit, double threshold)
+{
+  make_step_limit_0 = limit;
+  make_step_threshold_0 = threshold;
+  return;
+}
+
+void REF_EnableLocal(int stratum, double distance, int orphan)
+{
+  int tmp;
+  enable_local_stratum = 1;
+  if (stratum < 16 - 1) tmp = stratum; else tmp = 16 - 1;
+  if (1 > tmp) local_stratum_0 = 1;
+  else {
+    int tmp_0;
+    if (stratum < 16 - 1) tmp_0 = stratum; else tmp_0 = 16 - 1;
+    local_stratum_0 = tmp_0;
+  }
+  local_distance_0 = distance;
+  local_orphan_0 = ! (! orphan);
+  return;
+}
+
+void REF_DisableLocal(void)
+{
+  enable_local_stratum = 0;
+  return;
+}
+
+int REF_IsLeapSecondClose(void)
+{
+  int __retres;
+  struct timespec now;
+  struct timespec now_raw;
+  time_t t;
+  if (! our_leap_sec) {
+    __retres = 0;
+    goto return_label;
+  }
+  SCH_GetLastEventTime(& now,(double *)0,& now_raw);
+  if (now.tv_sec > (long)0) t = now.tv_sec; else t = - now.tv_sec;
+  if ((t + (time_t)5) % (long)(24 * 3600) < (long)(2 * 5)) {
+    __retres = 1;
+    goto return_label;
+  }
+  if (now_raw.tv_sec > (long)0) t = now_raw.tv_sec;
+  else t = - now_raw.tv_sec;
+  if ((t + (time_t)5) % (long)(24 * 3600) < (long)(2 * 5)) {
+    __retres = 1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+int REF_GetTaiOffset(struct timespec *ts)
+{
+  int tai_offset;
+  get_tz_leap(ts->tv_sec,& tai_offset);
+  return tai_offset;
+}
+
+void REF_GetTrackingReport(RPT_TrackingReport *rep)
+{
+  struct timespec now_raw;
+  struct timespec now_cooked;
+  double correction;
+  int synchronised;
+  LCL_ReadRawTime(& now_raw);
+  LCL_GetOffsetCorrection(& now_raw,& correction,(double *)0);
+  UTI_AddDoubleToTimespec(& now_raw,correction,& now_cooked);
+  REF_GetReferenceParams(& now_cooked,& synchronised,& rep->leap_status,
+                         & rep->stratum,& rep->ref_id,& rep->ref_time,
+                         & rep->root_delay,& rep->root_dispersion);
+  if (rep->stratum == 16) 
+    if (! synchronised) rep->stratum = 0;
+  rep->ip_addr.family = (unsigned short)0;
+  rep->current_correction = correction;
+  rep->freq_ppm = LCL_ReadAbsoluteFrequency();
+  rep->resid_freq_ppm = 0.0;
+  rep->skew_ppm = 0.0;
+  rep->last_update_interval = last_ref_update_interval;
+  rep->last_offset = last_offset;
+  rep->rms_offset = sqrt(avg2_offset);
+  if (synchronised) {
+    rep->ip_addr = our_ref_ip;
+    rep->resid_freq_ppm = 1.0e6 * our_residual_freq;
+    rep->skew_ppm = 1.0e6 * our_skew;
+  }
+  return;
+}
+
+void RGR_WeightedRegression(double *x, double *y, double *w, int n,
+                            double *b0, double *b1, double *s2, double *sb0,
+                            double *sb1);
+
+double RGR_GetTCoef(int dof);
+
+double RGR_GetChi2Coef(int dof);
+
+int RGR_FindBestRegression(double *x, double *y, double *w, int n, int m,
+                           int min_samples_0, double *b0, double *b1,
+                           double *s2, double *sb0, double *sb1,
+                           int *new_start, int *n_runs, int *dof);
+
+int RGR_FindBestRobustRegression(double *x, double *y, int n, double tol,
+                                 double *b0, double *b1, int *n_runs,
+                                 int *best_start);
+
+int RGR_MultipleRegress(double *x1, double *x2, double *y, int n, double *b2);
+
+double RGR_FindMedian(double *x, int n);
+
+void RGR_WeightedRegression(double *x, double *y, double *w, int n,
+                            double *b0, double *b1, double *s2, double *sb0,
+                            double *sb1)
+{
+  double P;
+  double Q;
+  double U;
+  double V;
+  double W;
+  double diff;
+  double u;
+  double ui;
+  double aa;
+  int i;
+  __FC_assert((n >= 3) != 0,"regress.c",67,"n >= 3");
+  U = (double)0;
+  W = U;
+  i = 0;
+  while (i < n) {
+    U += *(x + i) / *(w + i);
+    W += 1.0 / *(w + i);
+    i ++;
+  }
+  u = U / W;
+  V = 0.0;
+  Q = V;
+  P = Q;
+  i = 0;
+  while (i < n) {
+    ui = *(x + i) - u;
+    P += *(y + i) / *(w + i);
+    Q += (*(y + i) * ui) / *(w + i);
+    V += (ui * ui) / *(w + i);
+    i ++;
+  }
+  *b1 = Q / V;
+  *b0 = P / W - *b1 * u;
+  *s2 = 0.0;
+  i = 0;
+  while (i < n) {
+    diff = (*(y + i) - *b0) - *b1 * *(x + i);
+    *s2 += (diff * diff) / *(w + i);
+    i ++;
+  }
+  *s2 /= (double)(n - 2);
+  *sb1 = sqrt(*s2 / V);
+  aa = u * *sb1;
+  *sb0 = sqrt(*s2 / W + aa * aa);
+  *s2 *= (double)n / W;
+  return;
+}
+
+static float const RGR_GetTCoef_coefs[40] =
+  {(float)636.6,
+   (float)31.6,
+   (float)12.92,
+   (float)8.61,
+   (float)6.869,
+   (float)5.959,
+   (float)5.408,
+   (float)5.041,
+   (float)4.781,
+   (float)4.587,
+   (float)4.437,
+   (float)4.318,
+   (float)4.221,
+   (float)4.140,
+   (float)4.073,
+   (float)4.015,
+   (float)3.965,
+   (float)3.922,
+   (float)3.883,
+   (float)3.850,
+   (float)3.819,
+   (float)3.792,
+   (float)3.768,
+   (float)3.745,
+   (float)3.725,
+   (float)3.707,
+   (float)3.690,
+   (float)3.674,
+   (float)3.659,
+   (float)3.646,
+   (float)3.633,
+   (float)3.622,
+   (float)3.611,
+   (float)3.601,
+   (float)3.591,
+   (float)3.582,
+   (float)3.574,
+   (float)3.566,
+   (float)3.558,
+   (float)3.551};
+double RGR_GetTCoef(int dof)
+{
+  double __retres;
+  if (dof <= 40) {
+    __retres = (double)RGR_GetTCoef_coefs[dof - 1];
+    goto return_label;
+  }
+  else {
+    __retres = 3.5;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static float const RGR_GetChi2Coef_coefs[64] =
+  {(float)2.706,
+   (float)4.605,
+   (float)6.251,
+   (float)7.779,
+   (float)9.236,
+   (float)10.645,
+   (float)12.017,
+   (float)13.362,
+   (float)14.684,
+   (float)15.987,
+   (float)17.275,
+   (float)18.549,
+   (float)19.812,
+   (float)21.064,
+   (float)22.307,
+   (float)23.542,
+   (float)24.769,
+   (float)25.989,
+   (float)27.204,
+   (float)28.412,
+   (float)29.615,
+   (float)30.813,
+   (float)32.007,
+   (float)33.196,
+   (float)34.382,
+   (float)35.563,
+   (float)36.741,
+   (float)37.916,
+   (float)39.087,
+   (float)40.256,
+   (float)41.422,
+   (float)42.585,
+   (float)43.745,
+   (float)44.903,
+   (float)46.059,
+   (float)47.212,
+   (float)48.363,
+   (float)49.513,
+   (float)50.660,
+   (float)51.805,
+   (float)52.949,
+   (float)54.090,
+   (float)55.230,
+   (float)56.369,
+   (float)57.505,
+   (float)58.641,
+   (float)59.774,
+   (float)60.907,
+   (float)62.038,
+   (float)63.167,
+   (float)64.295,
+   (float)65.422,
+   (float)66.548,
+   (float)67.673,
+   (float)68.796,
+   (float)69.919,
+   (float)71.040,
+   (float)72.160,
+   (float)73.279,
+   (float)74.397,
+   (float)75.514,
+   (float)76.630,
+   (float)77.745,
+   (float)78.860};
+double RGR_GetChi2Coef(int dof)
+{
+  double __retres;
+  if (dof <= 64) {
+    __retres = (double)RGR_GetChi2Coef_coefs[dof - 1];
+    goto return_label;
+  }
+  else {
+    __retres = 1.2 * (double)dof;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static char critical_runs[130] =
+  {(char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)2,
+   (char)3,
+   (char)3,
+   (char)3,
+   (char)4,
+   (char)4,
+   (char)5,
+   (char)5,
+   (char)5,
+   (char)6,
+   (char)6,
+   (char)7,
+   (char)7,
+   (char)7,
+   (char)8,
+   (char)8,
+   (char)9,
+   (char)9,
+   (char)9,
+   (char)10,
+   (char)10,
+   (char)11,
+   (char)11,
+   (char)11,
+   (char)12,
+   (char)12,
+   (char)13,
+   (char)13,
+   (char)14,
+   (char)14,
+   (char)14,
+   (char)15,
+   (char)15,
+   (char)16,
+   (char)16,
+   (char)17,
+   (char)17,
+   (char)18,
+   (char)18,
+   (char)18,
+   (char)19,
+   (char)19,
+   (char)20,
+   (char)20,
+   (char)21,
+   (char)21,
+   (char)21,
+   (char)22,
+   (char)22,
+   (char)23,
+   (char)23,
+   (char)24,
+   (char)24,
+   (char)25,
+   (char)25,
+   (char)26,
+   (char)26,
+   (char)26,
+   (char)27,
+   (char)27,
+   (char)28,
+   (char)28,
+   (char)29,
+   (char)29,
+   (char)30,
+   (char)30,
+   (char)30,
+   (char)31,
+   (char)31,
+   (char)32,
+   (char)32,
+   (char)33,
+   (char)33,
+   (char)34,
+   (char)34,
+   (char)35,
+   (char)35,
+   (char)35,
+   (char)36,
+   (char)36,
+   (char)37,
+   (char)37,
+   (char)38,
+   (char)38,
+   (char)39,
+   (char)39,
+   (char)40,
+   (char)40,
+   (char)40,
+   (char)41,
+   (char)41,
+   (char)42,
+   (char)42,
+   (char)43,
+   (char)43,
+   (char)44,
+   (char)44,
+   (char)45,
+   (char)45,
+   (char)46,
+   (char)46,
+   (char)46,
+   (char)47,
+   (char)47,
+   (char)48,
+   (char)48,
+   (char)49,
+   (char)49,
+   (char)50,
+   (char)50,
+   (char)51,
+   (char)51,
+   (char)52,
+   (char)52,
+   (char)52,
+   (char)53,
+   (char)53,
+   (char)54,
+   (char)54,
+   (char)55,
+   (char)55,
+   (char)56};
+static int n_runs_from_residuals(double *resid, int n)
+{
+  int nruns;
+  int i;
+  nruns = 1;
+  i = 1;
+  while (i < n) {
+    if (*(resid + (i - 1)) < 0.0) {
+      if (*(resid + i) < 0.0) goto _LOR; else goto _LAND_0;
+    }
+    else {
+      _LAND_0: ;
+      if (*(resid + (i - 1)) > 0.0) {
+        if (*(resid + i) > 0.0) _LOR: ; else goto _LAND;
+      }
+      else _LAND: nruns ++;
+    }
+    i ++;
+  }
+  return nruns;
+}
+
+int RGR_FindBestRegression(double *x, double *y, double *w, int n, int m,
+                           int min_samples_0, double *b0, double *b1,
+                           double *s2, double *sb0, double *sb1,
+                           int *new_start, int *n_runs, int *dof)
+{
+  int __retres;
+  double P;
+  double Q;
+  double U;
+  double V;
+  double W;
+  double resid[64 * 2];
+  double ss;
+  double a;
+  double b;
+  double u;
+  double ui;
+  double aa;
+  int start;
+  int resid_start;
+  int nruns;
+  int npoints;
+  int i;
+  int tmp;
+  if (n <= 64) 
+    if (m >= 0) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  __FC_assert(tmp != 0,"regress.c",242,"n <= MAX_POINTS && m >= 0");
+  __FC_assert(((unsigned long)(n * 2) < sizeof(critical_runs) / sizeof(critical_runs[0])) != 0,
+              "regress.c",243,
+              "n * REGRESS_RUNS_RATIO < sizeof (critical_runs) / sizeof (critical_runs[0])");
+  if (n < 3) {
+    __retres = 0;
+    goto return_label;
+  }
+  start = 0;
+  while (1) {
+    U = (double)0;
+    W = U;
+    i = start;
+    while (i < n) {
+      U += *(x + i) / *(w + i);
+      W += 1.0 / *(w + i);
+      i ++;
+    }
+    u = U / W;
+    V = 0.0;
+    Q = V;
+    P = Q;
+    i = start;
+    while (i < n) {
+      ui = *(x + i) - u;
+      P += *(y + i) / *(w + i);
+      Q += (*(y + i) * ui) / *(w + i);
+      V += (ui * ui) / *(w + i);
+      i ++;
+    }
+    b = Q / V;
+    a = P / W - b * u;
+    resid_start = n - (n - start) * 2;
+    if (resid_start < - m) resid_start = - m;
+    i = resid_start;
+    while (i < n) {
+      resid[i - resid_start] = (*(y + i) - a) - b * *(x + i);
+      i ++;
+    }
+    nruns = n_runs_from_residuals(resid,n - resid_start);
+    if (nruns > (int)critical_runs[n - resid_start]) goto _LOR;
+    else 
+      if (n - start <= 3) goto _LOR;
+      else 
+        if (n - start <= min_samples_0) {
+          _LOR:
+          {
+            if (start != resid_start) nruns = n_runs_from_residuals(& resid[
+                                                                    start - resid_start],
+                                                                    n - start);
+            break;
+          }
+        }
+        else start ++;
+  }
+  *b1 = b;
+  *b0 = a;
+  ss = 0.0;
+  i = start;
+  while (i < n) {
+    ss += (resid[i - resid_start] * resid[i - resid_start]) / *(w + i);
+    i ++;
+  }
+  npoints = n - start;
+  ss /= (double)(npoints - 2);
+  *sb1 = sqrt(ss / V);
+  aa = u * *sb1;
+  *sb0 = sqrt(ss / W + aa * aa);
+  *s2 = (ss * (double)npoints) / W;
+  *new_start = start;
+  *dof = npoints - 2;
+  *n_runs = nruns;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static double find_ordered_entry_with_flags(double *x, int n, int index_0,
+                                            char *flags)
+{
+  double __retres;
+  int u;
+  int v;
+  int l;
+  int r;
+  double temp;
+  double piv;
+  int pivind;
+  __FC_assert((index_0 >= 0) != 0,"regress.c",350,"index >= 0");
+  if (*(flags + index_0)) {
+    __retres = *(x + index_0);
+    goto return_label;
+  }
+  v = index_0;
+  u = v;
+  while (1) {
+    if (u > 0) {
+      if (! (! *(flags + u))) break;
+    }
+    else break;
+    u --;
+  }
+  if (*(flags + u)) u ++;
+  while (1) {
+    if (v < n - 1) {
+      if (! (! *(flags + v))) break;
+    }
+    else break;
+    v ++;
+  }
+  if (*(flags + v)) v --;
+  while (1) 
+    if (v - u < 2) {
+      char tmp;
+      if (*(x + v) < *(x + u)) {
+        temp = *(x + v);
+        *(x + v) = *(x + u);
+        *(x + u) = temp;
+      }
+      tmp = (char)1;
+      *(flags + u) = tmp;
+      *(flags + v) = tmp;
+      __retres = *(x + index_0);
+      goto return_label;
+    }
+    else {
+      pivind = (u + v) >> 1;
+      temp = *(x + u);
+      *(x + u) = *(x + pivind);
+      *(x + pivind) = temp;
+      piv = *(x + u);
+      l = u + 1;
+      r = v;
+      while (1) {
+        while (1) {
+          if (l < v) {
+            if (! (*(x + l) < piv)) break;
+          }
+          else break;
+          l ++;
+        }
+        while (*(x + r) > piv) r --;
+        if (r <= l) break;
+        temp = *(x + l);
+        *(x + l) = *(x + r);
+        *(x + r) = temp;
+        l ++;
+        r --;
+      }
+      temp = *(x + u);
+      *(x + u) = *(x + r);
+      *(x + r) = temp;
+      *(flags + r) = (char)1;
+      if (index_0 == r) {
+        __retres = *(x + r);
+        goto return_label;
+      }
+      else 
+        if (index_0 < r) v = r - 1;
+        else 
+          if (index_0 > r) u = l;
+    }
+  return_label: return __retres;
+}
+
+static double find_median(double *x, int n)
+{
+  double __retres;
+  int k;
+  char flags[64];
+  memset((void *)(flags),0,(unsigned long)n * sizeof(flags[0]));
+  k = n >> 1;
+  if (n & 1) {
+    double tmp;
+    tmp = find_ordered_entry_with_flags(x,n,k,flags);
+    __retres = tmp;
+    goto return_label;
+  }
+  else {
+    double tmp_0;
+    double tmp_1;
+    tmp_0 = find_ordered_entry_with_flags(x,n,k,flags);
+    tmp_1 = find_ordered_entry_with_flags(x,n,k - 1,flags);
+    __retres = 0.5 * (tmp_0 + tmp_1);
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+double RGR_FindMedian(double *x, int n)
+{
+  double tmp[64];
+  int tmp_0;
+  double tmp_1;
+  if (n > 0) 
+    if (n <= 64) tmp_0 = 1; else tmp_0 = 0;
+  else tmp_0 = 0;
+  __FC_assert(tmp_0 != 0,"regress.c",439,"n > 0 && n <= MAX_POINTS");
+  memcpy((void *)(tmp),(void const *)x,(unsigned long)n * sizeof(tmp[0]));
+  tmp_1 = find_median(tmp,n);
+  return tmp_1;
+}
+
+static void eval_robust_residual(double *x, double *y, int n, double b,
+                                 double *aa, double *rr)
+{
+  int i;
+  double a;
+  double res;
+  double del;
+  double d[64];
+  i = 0;
+  while (i < n) {
+    d[i] = *(y + i) - b * *(x + i);
+    i ++;
+  }
+  a = find_median(d,n);
+  res = 0.0;
+  i = 0;
+  while (i < n) {
+    del = (*(y + i) - a) - b * *(x + i);
+    if (del > 0.0) res += *(x + i);
+    else 
+      if (del < 0.0) res -= *(x + i);
+    i ++;
+  }
+  *aa = a;
+  *rr = res;
+  return;
+}
+
+int RGR_FindBestRobustRegression(double *x, double *y, int n, double tol,
+                                 double *b0, double *b1, int *n_runs,
+                                 int *best_start)
+{
+  int __retres;
+  int i;
+  int start;
+  int n_points;
+  double a;
+  double b;
+  double P;
+  double U;
+  double V;
+  double W;
+  double X;
+  double resid;
+  double resids[64];
+  double blo;
+  double bhi;
+  double bmid;
+  double rlo;
+  double rhi;
+  double rmid;
+  double s2;
+  double sb;
+  double incr;
+  double mx;
+  double dx;
+  double my;
+  double dy;
+  int nruns = 0;
+  __FC_assert((n <= 64) != 0,"regress.c",525,"n <= MAX_POINTS");
+  if (n < 2) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (n == 2) {
+      *b1 = (*(y + 1) - *(y + 0)) / (*(x + 1) - *(x + 0));
+      *b0 = *(y + 0) - *b1 * *(x + 0);
+      *n_runs = 0;
+      *best_start = 0;
+      __retres = 1;
+      goto return_label;
+    }
+  start = 0;
+  while (1) {
+    n_points = n - start;
+    U = 0.0;
+    P = U;
+    i = start;
+    while (i < n) {
+      P += *(y + i);
+      U += *(x + i);
+      i ++;
+    }
+    W = (double)n_points;
+    my = P / W;
+    mx = U / W;
+    V = 0.0;
+    X = V;
+    i = start;
+    while (i < n) {
+      dy = *(y + i) - my;
+      dx = *(x + i) - mx;
+      X += dy * dx;
+      V += dx * dx;
+      i ++;
+    }
+    b = X / V;
+    a = my - b * mx;
+    s2 = 0.0;
+    i = start;
+    while (i < n) {
+      resid = (*(y + i) - a) - b * *(x + i);
+      s2 += resid * resid;
+      i ++;
+    }
+    sb = sqrt((s2 * W) / V);
+    if (sb > tol) incr = sb; else incr = tol;
+    while (1) {
+      incr *= 2.0;
+      if (incr > 100.0) {
+        __retres = 0;
+        goto return_label;
+      }
+      blo = b - incr;
+      bhi = b + incr;
+      eval_robust_residual(x + start,y + start,n_points,blo,& a,& rlo);
+      eval_robust_residual(x + start,y + start,n_points,bhi,& a,& rhi);
+      if (! (rlo * rhi >= 0.0)) break;
+    }
+    while (1) {
+      bmid = 0.5 * (blo + bhi);
+      if (blo < bmid) {
+        if (! (bmid < bhi)) break;
+      }
+      else break;
+      eval_robust_residual(x + start,y + start,n_points,bmid,& a,& rmid);
+      if (rmid == 0.0) break;
+      else 
+        if (rmid * rlo > 0.0) {
+          blo = bmid;
+          rlo = rmid;
+        }
+        else 
+          if (rmid * rhi > 0.0) {
+            bhi = bmid;
+            rhi = rmid;
+          }
+          else __FC_assert(0 != 0,"regress.c",616,"0");
+      if (! (bhi - blo > tol)) break;
+    }
+    *b0 = a;
+    *b1 = bmid;
+    if (n_points == 3) break;
+    i = start;
+    while (i < n) {
+      resids[i] = (*(y + i) - a) - bmid * *(x + i);
+      i ++;
+    }
+    nruns = n_runs_from_residuals(& resids[start],n_points);
+    if (nruns > (int)critical_runs[n_points]) break; else start ++;
+  }
+  *n_runs = nruns;
+  *best_start = start;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int RGR_MultipleRegress(double *x1, double *x2, double *y, int n, double *b2)
+{
+  int __retres;
+  double Sx1;
+  double Sx2;
+  double Sx1x1;
+  double Sx1x2;
+  double Sx2x2;
+  double Sx1y;
+  double Sx2y;
+  double Sy;
+  double U;
+  double V;
+  double V1;
+  double V2;
+  double V3;
+  int i;
+  double tmp;
+  double tmp_0;
+  if (n < 4) {
+    __retres = 0;
+    goto return_label;
+  }
+  Sy = 0.0;
+  Sx2y = Sy;
+  Sx1y = Sx2y;
+  Sx2x2 = Sx1y;
+  Sx1x2 = Sx2x2;
+  Sx1x1 = Sx1x2;
+  Sx2 = Sx1x1;
+  Sx1 = Sx2;
+  i = 0;
+  while (i < n) {
+    Sx1 += *(x1 + i);
+    Sx2 += *(x2 + i);
+    Sx1x1 += *(x1 + i) * *(x1 + i);
+    Sx1x2 += *(x1 + i) * *(x2 + i);
+    Sx2x2 += *(x2 + i) * *(x2 + i);
+    Sx1y += *(x1 + i) * *(y + i);
+    Sx2y += *(x2 + i) * *(y + i);
+    Sy += *(y + i);
+    i ++;
+  }
+  U = (((double)n * (Sx1x2 * Sx1y - Sx1x1 * Sx2y) + (Sx1 * Sx1) * Sx2y) - 
+       (Sx1 * Sx2) * Sx1y) + Sy * (Sx2 * Sx1x1 - Sx1 * Sx1x2);
+  V1 = (double)n * (Sx1x2 * Sx1x2 - Sx1x1 * Sx2x2);
+  V2 = (Sx1 * Sx1) * Sx2x2 + (Sx2 * Sx2) * Sx1x1;
+  V3 = ((- 2.0 * Sx1) * Sx2) * Sx1x2;
+  V = (V1 + V2) + V3;
+  tmp = fabs(V);
+  tmp_0 = fabs(V3);
+  ;
+  if (tmp * 1.0e10 <= (- V1 + V2) + tmp_0) {
+    __retres = 0;
+    goto return_label;
+  }
+  *b2 = U / V;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int initialised_1 = 0;
+static unsigned int one_highest_fd;
+static ARR_Instance file_handlers;
+static struct timespec last_select_ts;
+static struct timespec last_select_ts_raw;
+static double last_select_ts_err;
+static TimerQueueEntry timer_queue;
+static unsigned long n_timer_queue_entries;
+static SCH_TimeoutID next_tqe_id;
+static TimerQueueEntry *tqe_free_list = (TimerQueueEntry *)0;
+static struct timespec last_class_dispatch[SCH_NumberOfClasses];
+static int need_to_exit;
+static void handle_slew_0(struct timespec *raw, struct timespec *cooked,
+                          double dfreq, double doffset,
+                          LCL_ChangeType change_type, void *anything);
+
+void SCH_Initialise(void)
+{
+  file_handlers = ARR_CreateInstance((unsigned int)sizeof(FileHandlerEntry));
+  n_timer_queue_entries = (unsigned long)0;
+  next_tqe_id = (unsigned int)0;
+  timer_queue.next = & timer_queue;
+  timer_queue.prev = & timer_queue;
+  need_to_exit = 0;
+  LCL_AddParameterChangeHandler(& handle_slew_0,(void *)0);
+  LCL_ReadRawTime(& last_select_ts_raw);
+  last_select_ts = last_select_ts_raw;
+  initialised_1 = 1;
+  return;
+}
+
+void SCH_Finalise(void)
+{
+  ARR_DestroyInstance(file_handlers);
+  initialised_1 = 0;
+  return;
+}
+
+void SCH_AddFileHandler(int fd, int events,
+                        void (*handler)(int fd, int event,
+                                        SCH_ArbitraryArgument ),
+                        SCH_ArbitraryArgument arg)
+{
+  FileHandlerEntry *ptr;
+  __FC_assert(initialised_1 != 0,"sched.c",161,"initialised");
+  __FC_assert(events != 0,"sched.c",162,"events");
+  __FC_assert((fd >= 0) != 0,"sched.c",163,"fd >= 0");
+  if (fd >= 1024) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"Too many file descriptors",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  while (1) {
+    unsigned int tmp;
+    tmp = ARR_GetSize(file_handlers);
+    ;
+    if (! (tmp <= (unsigned int)fd)) break;
+    ptr = (FileHandlerEntry *)ARR_GetNewElement(file_handlers);
+    ptr->handler = (void (*)(int fd, int event, SCH_ArbitraryArgument ))0;
+    ptr->arg = (void *)0;
+    ptr->events = 0;
+  }
+  ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd);
+  __FC_assert(! ptr->handler != 0,"sched.c",181,"!ptr->handler");
+  ptr->handler = handler;
+  ptr->arg = arg;
+  ptr->events = events;
+  if (one_highest_fd < (unsigned int)(fd + 1)) one_highest_fd = (unsigned int)(
+                                               fd + 1);
+  return;
+}
+
+void SCH_RemoveFileHandler(int fd)
+{
+  FileHandlerEntry *ptr;
+  __FC_assert(initialised_1 != 0,"sched.c",199,"initialised");
+  ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd);
+  __FC_assert(ptr->handler != (void (*)(int fd, int event,
+                                        SCH_ArbitraryArgument ))0,"sched.c",
+              204,"ptr->handler");
+  ptr->handler = (void (*)(int fd, int event, SCH_ArbitraryArgument ))0;
+  ptr->arg = (void *)0;
+  ptr->events = 0;
+  while (one_highest_fd > (unsigned int)0) {
+    ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,
+                                             one_highest_fd - (unsigned int)1);
+    if (ptr->handler) break;
+    one_highest_fd --;
+  }
+  return;
+}
+
+void SCH_SetFileHandlerEvent(int fd, int event, int enable)
+{
+  FileHandlerEntry *ptr;
+  ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd);
+  if (enable) ptr->events |= event; else ptr->events &= ~ event;
+  return;
+}
+
+void SCH_GetLastEventTime(struct timespec *cooked, double *err,
+                          struct timespec *raw)
+{
+  if (cooked) {
+    *cooked = last_select_ts;
+    if (err) *err = last_select_ts_err;
+  }
+  if (raw) *raw = last_select_ts_raw;
+  return;
+}
+
+static TimerQueueEntry *allocate_tqe(void)
+{
+  TimerQueueEntry *new_block;
+  TimerQueueEntry *result;
+  int i;
+  if (tqe_free_list == (TimerQueueEntry *)0) {
+    new_block = (TimerQueueEntry *)Malloc2((unsigned long)32,
+                                           sizeof(TimerQueueEntry));
+    i = 1;
+    while (i < 32) {
+      (new_block + i)->next = new_block + (i - 1);
+      i ++;
+    }
+    (new_block + 0)->next = (struct _TimerQueueEntry *)0;
+    tqe_free_list = new_block + (32 - 1);
+  }
+  result = tqe_free_list;
+  tqe_free_list = tqe_free_list->next;
+  return result;
+}
+
+static void release_tqe(TimerQueueEntry *node)
+{
+  node->next = tqe_free_list;
+  tqe_free_list = node;
+  return;
+}
+
+static SCH_TimeoutID get_new_tqe_id(void)
+{
+  TimerQueueEntry *ptr;
+  try_again: next_tqe_id ++;
+  if (! next_tqe_id) goto try_again;
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    if (ptr->id == next_tqe_id) goto try_again;
+    ptr = ptr->next;
+  }
+  return next_tqe_id;
+}
+
+/*@ assigns \result;
+    assigns \result \from \nothing; */
+SCH_TimeoutID SCH_AddTimeout(struct timespec *ts,
+                             void (*handler)(SCH_ArbitraryArgument ),
+                             SCH_ArbitraryArgument arg)
+{
+  SCH_TimeoutID __retres;
+  TimerQueueEntry *new_tqe;
+  TimerQueueEntry *ptr;
+  __FC_assert(initialised_1 != 0,"sched.c",313,"initialised");
+  new_tqe = allocate_tqe();
+  new_tqe->id = get_new_tqe_id();
+  new_tqe->handler = handler;
+  new_tqe->arg = arg;
+  new_tqe->ts = *ts;
+  new_tqe->class = SCH_ReservedTimeoutValue;
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    {
+      int tmp;
+      tmp = UTI_CompareTimespecs(& new_tqe->ts,& ptr->ts);
+      if (tmp == -1) break;
+    }
+    ptr = ptr->next;
+  }
+  new_tqe->next = ptr;
+  new_tqe->prev = ptr->prev;
+  (ptr->prev)->next = new_tqe;
+  ptr->prev = new_tqe;
+  n_timer_queue_entries ++;
+  __retres = new_tqe->id;
+  return __retres;
+}
+
+SCH_TimeoutID SCH_AddTimeoutByDelay(double delay,
+                                    void (*handler)(SCH_ArbitraryArgument ),
+                                    SCH_ArbitraryArgument arg)
+{
+  struct timespec now;
+  struct timespec then;
+  int tmp;
+  SCH_TimeoutID tmp_0;
+  __FC_assert(initialised_1 != 0,"sched.c",354,"initialised");
+  __FC_assert((delay >= 0.0) != 0,"sched.c",355,"delay >= 0.0");
+  LCL_ReadRawTime(& now);
+  UTI_AddDoubleToTimespec(& now,delay,& then);
+  tmp = UTI_CompareTimespecs(& now,& then);
+  if (tmp > 0) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"Timeout overflow",(void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  tmp_0 = SCH_AddTimeout(& then,handler,arg);
+  return tmp_0;
+}
+
+SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation,
+                                    double randomness,
+                                    SCH_TimeoutClass class,
+                                    void (*handler)(SCH_ArbitraryArgument ),
+                                    SCH_ArbitraryArgument arg)
+{
+  SCH_TimeoutID __retres;
+  TimerQueueEntry *new_tqe;
+  TimerQueueEntry *ptr;
+  struct timespec now;
+  double diff;
+  double r;
+  double new_min_delay;
+  __FC_assert(initialised_1 != 0,"sched.c",380,"initialised");
+  __FC_assert((min_delay >= 0.0) != 0,"sched.c",381,"min_delay >= 0.0");
+  __FC_assert((class < (unsigned int)SCH_NumberOfClasses) != 0,"sched.c",382,
+              "class < SCH_NumberOfClasses");
+  if (randomness > 0.0) {
+    uint32_t rnd;
+    UTI_GetRandomBytes((void *)(& rnd),(unsigned int)sizeof(rnd));
+    r = (double)rnd * (randomness / (double)((unsigned int)(-1))) + 1.0;
+    min_delay *= r;
+    separation *= r;
+  }
+  LCL_ReadRawTime(& now);
+  new_min_delay = min_delay;
+  diff = UTI_DiffTimespecsToDouble(& now,& last_class_dispatch[class]);
+  if (diff < separation) 
+    if (diff >= 0.0) 
+      if (diff + new_min_delay < separation) new_min_delay = separation - diff;
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    if (ptr->class == class) {
+      diff = UTI_DiffTimespecsToDouble(& ptr->ts,& now);
+      if (new_min_delay > diff) {
+        if (new_min_delay - diff < separation) new_min_delay = diff + separation;
+      }
+      else 
+        if (diff - new_min_delay < separation) new_min_delay = diff + separation;
+    }
+    ptr = ptr->next;
+  }
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    diff = UTI_DiffTimespecsToDouble(& ptr->ts,& now);
+    if (diff > new_min_delay) break;
+    ptr = ptr->next;
+  }
+  new_tqe = allocate_tqe();
+  new_tqe->id = get_new_tqe_id();
+  new_tqe->handler = handler;
+  new_tqe->arg = arg;
+  UTI_AddDoubleToTimespec(& now,new_min_delay,& new_tqe->ts);
+  new_tqe->class = class;
+  new_tqe->next = ptr;
+  new_tqe->prev = ptr->prev;
+  (ptr->prev)->next = new_tqe;
+  ptr->prev = new_tqe;
+  n_timer_queue_entries ++;
+  __retres = new_tqe->id;
+  return __retres;
+}
+
+void SCH_RemoveTimeout(SCH_TimeoutID id)
+{
+  TimerQueueEntry *ptr;
+  __FC_assert(initialised_1 != 0,"sched.c",451,"initialised");
+  if (! id) goto return_label;
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    if (ptr->id == id) {
+      (ptr->next)->prev = ptr->prev;
+      (ptr->prev)->next = ptr->next;
+      n_timer_queue_entries --;
+      release_tqe(ptr);
+      goto return_label;
+    }
+    ptr = ptr->next;
+  }
+  __FC_assert(0 != 0,"sched.c",476,"0");
+  return_label: return;
+}
+
+static void dispatch_timeouts(struct timespec *now)
+{
+  TimerQueueEntry *ptr;
+  void (*handler)(SCH_ArbitraryArgument );
+  SCH_ArbitraryArgument arg;
+  int n_done = 0;
+  int n_entries_on_start = (int)n_timer_queue_entries;
+  while (1) {
+    LCL_ReadRawTime(now);
+    if (n_timer_queue_entries > (unsigned long)0) {
+      int tmp;
+      tmp = UTI_CompareTimespecs(now,& (timer_queue.next)->ts);
+      if (! (tmp >= 0)) goto _LAND;
+    }
+    else _LAND: break;
+    ptr = timer_queue.next;
+    last_class_dispatch[ptr->class] = *now;
+    handler = ptr->handler;
+    arg = ptr->arg;
+    SCH_RemoveTimeout(ptr->id);
+    (*handler)(arg);
+    n_done ++;
+    if ((unsigned long)n_done > n_timer_queue_entries * (unsigned long)4) 
+      if (n_done > n_entries_on_start * 4) {
+        {
+          void *__va_args[1] = {(void *)0};
+          LOG_Message(LOGS_FATAL,"Possible infinite loop in scheduling",
+                      (void * const *)(__va_args));
+        }
+        exit(1);
+      }
+  }
+  return;
+}
+
+static void dispatch_filehandlers(int nfd, fd_set *read_fds,
+                                  fd_set *write_fds, fd_set *except_fds)
+{
+  FileHandlerEntry *ptr;
+  int fd;
+  fd = 0;
+  while (1) {
+    if (nfd) {
+      if (! ((unsigned int)fd < one_highest_fd)) break;
+    }
+    else break;
+    if (except_fds) {
+      int tmp_1;
+      tmp_1 = FD_ISSET(fd,(fd_set const *)except_fds);
+      if (tmp_1) {
+        ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,
+                                                 (unsigned int)fd);
+        if (ptr->handler) (*(ptr->handler))(fd,4,ptr->arg);
+        nfd --;
+        if (read_fds) {
+          int tmp_0;
+          tmp_0 = FD_ISSET(fd,(fd_set const *)read_fds);
+          if (tmp_0) {
+            FD_CLR(fd,read_fds);
+            nfd --;
+          }
+        }
+      }
+    }
+    if (read_fds) {
+      int tmp_3;
+      tmp_3 = FD_ISSET(fd,(fd_set const *)read_fds);
+      if (tmp_3) {
+        ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,
+                                                 (unsigned int)fd);
+        if (ptr->handler) (*(ptr->handler))(fd,1,ptr->arg);
+        nfd --;
+      }
+    }
+    if (write_fds) {
+      int tmp_5;
+      tmp_5 = FD_ISSET(fd,(fd_set const *)write_fds);
+      if (tmp_5) {
+        ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,
+                                                 (unsigned int)fd);
+        if (ptr->handler) (*(ptr->handler))(fd,2,ptr->arg);
+        nfd --;
+      }
+    }
+    fd ++;
+  }
+  return;
+}
+
+static void handle_slew_0(struct timespec *raw, struct timespec *cooked,
+                          double dfreq, double doffset,
+                          LCL_ChangeType change_type, void *anything)
+{
+  TimerQueueEntry *ptr;
+  double delta;
+  int i;
+  if (change_type != (unsigned int)LCL_ChangeAdjust) {
+    int tmp;
+    tmp = LCL_IsFirstParameterChangeHandler(& handle_slew_0);
+    __FC_assert(tmp != 0,"sched.c",587,
+                "LCL_IsFirstParameterChangeHandler(handle_slew)");
+    ptr = timer_queue.next;
+    while (ptr != & timer_queue) {
+      UTI_AddDoubleToTimespec(& ptr->ts,- doffset,& ptr->ts);
+      ptr = ptr->next;
+    }
+    i = 0;
+    while (i < SCH_NumberOfClasses) {
+      UTI_AddDoubleToTimespec(& last_class_dispatch[i],- doffset,
+                              & last_class_dispatch[i]);
+      i ++;
+    }
+    UTI_AddDoubleToTimespec(& last_select_ts_raw,- doffset,
+                            & last_select_ts_raw);
+  }
+  UTI_AdjustTimespec(& last_select_ts,cooked,& last_select_ts,& delta,dfreq,
+                     doffset);
+  return;
+}
+
+static void fill_fd_sets(fd_set **read_fds, fd_set **write_fds,
+                         fd_set **except_fds)
+{
+  FileHandlerEntry *handlers;
+  fd_set *rd;
+  fd_set *wr;
+  fd_set *ex;
+  int i;
+  int n;
+  int events;
+  unsigned int tmp;
+  tmp = ARR_GetSize(file_handlers);
+  n = (int)tmp;
+  handlers = (FileHandlerEntry *)ARR_GetElements(file_handlers);
+  ex = (fd_set *)0;
+  wr = ex;
+  rd = wr;
+  i = 0;
+  while (i < n) {
+    events = (handlers + i)->events;
+    if (! events) goto __Cont;
+    if (events & 1) {
+      if (! rd) {
+        rd = *read_fds;
+        FD_ZERO(rd);
+      }
+      FD_SET(i,rd);
+    }
+    if (events & 2) {
+      if (! wr) {
+        wr = *write_fds;
+        FD_ZERO(wr);
+      }
+      FD_SET(i,wr);
+    }
+    if (events & 4) {
+      if (! ex) {
+        ex = *except_fds;
+        FD_ZERO(ex);
+      }
+      FD_SET(i,ex);
+    }
+    __Cont: i ++;
+  }
+  if (! rd) *read_fds = (fd_set *)0;
+  if (! wr) *write_fds = (fd_set *)0;
+  if (! ex) *except_fds = (fd_set *)0;
+  return;
+}
+
+static int check_current_time(struct timespec *prev_raw,
+                              struct timespec *raw, int timeout,
+                              struct timeval *orig_select_tv,
+                              struct timeval *rem_select_tv)
+{
+  int __retres;
+  struct timespec elapsed_min;
+  struct timespec elapsed_max;
+  struct timespec orig_select_ts;
+  struct timespec rem_select_ts;
+  double step;
+  double elapsed;
+  double tmp;
+  UTI_TimevalToTimespec(orig_select_tv,& orig_select_ts);
+  if (timeout) {
+    elapsed_min = orig_select_ts;
+    elapsed_max = elapsed_min;
+  }
+  else 
+    if (rem_select_tv) {
+      if (rem_select_tv->tv_sec >= (time_t)0) {
+        if (rem_select_tv->tv_sec <= orig_select_tv->tv_sec) {
+          if (rem_select_tv->tv_sec != orig_select_tv->tv_sec) goto _LOR;
+          else 
+            if (rem_select_tv->tv_usec != orig_select_tv->tv_usec) {
+              _LOR:
+              {
+                UTI_TimevalToTimespec(rem_select_tv,& rem_select_ts);
+                UTI_DiffTimespecs(& elapsed_min,& orig_select_ts,
+                                  & rem_select_ts);
+                elapsed_max = elapsed_min;
+              }
+            }
+            else goto _LAND_1;
+        }
+        else goto _LAND_1;
+      }
+      else goto _LAND_1;
+    }
+    else {
+      _LAND_1:
+      {
+        if (rem_select_tv) elapsed_max = orig_select_ts;
+        else UTI_DiffTimespecs(& elapsed_max,raw,prev_raw);
+        UTI_ZeroTimespec(& elapsed_min);
+      }
+    }
+  if (last_select_ts_raw.tv_sec + elapsed_min.tv_sec > raw->tv_sec + (long)10) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"Backward time jump detected!",
+                  (void * const *)(__va_args));
+    }
+  }
+  else 
+    if ((prev_raw->tv_sec + elapsed_max.tv_sec) + (long)10 < raw->tv_sec) {
+      {
+        void *__va_args_15[1] = {(void *)0};
+        LOG_Message(LOGS_WARN,"Forward time jump detected!",
+                    (void * const *)(__va_args_15));
+      }
+    }
+    else {
+      __retres = 1;
+      goto return_label;
+    }
+  step = UTI_DiffTimespecsToDouble(& last_select_ts_raw,raw);
+  elapsed = UTI_TimespecToDouble(& elapsed_min);
+  step += elapsed;
+  tmp = fabs(step);
+  ;
+  ;
+  ;
+  LCL_NotifyExternalTimeStep(raw,raw,step,tmp);
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void SCH_MainLoop(void)
+{
+  fd_set read_fds;
+  fd_set write_fds;
+  fd_set except_fds;
+  fd_set *p_read_fds;
+  fd_set *p_write_fds;
+  fd_set *p_except_fds;
+  int status;
+  int errsv;
+  struct timeval tv;
+  struct timeval saved_tv;
+  struct timeval *ptv;
+  struct timespec ts;
+  struct timespec now;
+  struct timespec saved_now;
+  struct timespec cooked;
+  double err;
+  __FC_assert(initialised_1 != 0,"sched.c",723,"initialised");
+  while (! need_to_exit) {
+    int tmp_0;
+    dispatch_timeouts(& now);
+    saved_now = now;
+    if (need_to_exit) break;
+    if (n_timer_queue_entries > (unsigned long)0) {
+      int tmp;
+      UTI_DiffTimespecs(& ts,& (timer_queue.next)->ts,& now);
+      if (ts.tv_sec > (long)0) tmp = 1;
+      else 
+        if (ts.tv_nsec > (long)0) tmp = 1; else tmp = 0;
+      __FC_assert(tmp != 0,"sched.c",737,"ts.tv_sec > 0 || ts.tv_nsec > 0");
+      UTI_TimespecToTimeval(& ts,& tv);
+      ptv = & tv;
+      saved_tv = tv;
+    }
+    else {
+      ptv = (struct timeval *)0;
+      saved_tv.tv_usec = 0;
+      saved_tv.tv_sec = (long)saved_tv.tv_usec;
+    }
+    p_read_fds = & read_fds;
+    p_write_fds = & write_fds;
+    p_except_fds = & except_fds;
+    fill_fd_sets(& p_read_fds,& p_write_fds,& p_except_fds);
+    if (! ptv) 
+      if (! p_read_fds) 
+        if (! p_write_fds) {
+          {
+            void *__va_args[1] = {(void *)0};
+            LOG_Message(LOGS_FATAL,"Nothing to do",
+                        (void * const *)(__va_args));
+          }
+          exit(1);
+        }
+    status = select((int)one_highest_fd,p_read_fds,p_write_fds,p_except_fds,
+                    ptv);
+    errsv = __fc_errno;
+    LCL_ReadRawTime(& now);
+    LCL_CookTime(& now,& cooked,& err);
+    tmp_0 = check_current_time(& saved_now,& now,status == 0,& saved_tv,ptv);
+    if (! tmp_0) LCL_CookTime(& now,& cooked,& err);
+    last_select_ts_raw = now;
+    last_select_ts = cooked;
+    last_select_ts_err = err;
+    if (status < 0) {
+      if (! need_to_exit) 
+        if (errsv != 4) {
+          char *tmp_1;
+          tmp_1 = strerror(errsv);
+          {
+            char *__va_arg0 = tmp_1;
+            void *__va_args_23[1] = {& __va_arg0};
+            LOG_Message(LOGS_FATAL,"select() failed : %s",
+                        (void * const *)(__va_args_23));
+          }
+          exit(1);
+        }
+    }
+    else 
+      if (status > 0) dispatch_filehandlers(status,p_read_fds,p_write_fds,
+                                            p_except_fds);
+      else __FC_assert(ptv != (struct timeval *)0,"sched.c",783,"ptv");
+  }
+  return;
+}
+
+void SCH_QuitProgram(void)
+{
+  need_to_exit = 1;
+  return;
+}
+
+static struct stage stages[3];
+static int enabled;
+static int leap_only_mode;
+static int locked;
+static double max_wander;
+static double max_freq;
+static double smooth_freq;
+static double smooth_offset;
+static struct timespec last_update;
+static void get_smoothing(struct timespec *now, double *poffset,
+                          double *pfreq, double *pwander)
+{
+  double elapsed;
+  double length;
+  double offset;
+  double freq;
+  double wander;
+  int i;
+  elapsed = UTI_DiffTimespecsToDouble(now,& last_update);
+  offset = smooth_offset;
+  freq = smooth_freq;
+  wander = 0.0;
+  i = 0;
+  while (i < 3) {
+    if (elapsed <= 0.0) break;
+    length = stages[i].length;
+    if (length >= elapsed) length = elapsed;
+    wander = stages[i].wander;
+    offset -= (length * (2.0 * freq + wander * length)) / 2.0;
+    freq += wander * length;
+    elapsed -= length;
+    i ++;
+  }
+  if (elapsed > 0.0) {
+    wander = 0.0;
+    offset -= elapsed * freq;
+  }
+  *poffset = offset;
+  *pfreq = freq;
+  if (pwander) *pwander = wander;
+  return;
+}
+
+static void update_stages(void)
+{
+  double s1;
+  double s2;
+  double s;
+  double l1;
+  double l2;
+  double l3;
+  double lc;
+  double f;
+  double f2;
+  double l1t[2];
+  double l3t[2];
+  double err[2];
+  int i;
+  int dir;
+  s1 = smooth_offset / max_wander;
+  s2 = (smooth_freq * smooth_freq) / (2.0 * (max_wander * max_wander));
+  i = 0;
+  dir = -1;
+  while (i <= 1) {
+    err[i] = 0.0;
+    s = (double)dir * s1 + s2;
+    if (s < 0.0) {
+      err[i] += - s;
+      s = 0.0;
+    }
+    l3t[i] = sqrt(s);
+    l1t[i] = l3t[i] - ((double)dir * smooth_freq) / max_wander;
+    if (l1t[i] < 0.0) {
+      err[i] += l1t[i] * l1t[i];
+      l1t[i] = 0.0;
+    }
+    i ++;
+    dir += 2;
+  }
+  if (err[0] < err[1]) {
+    l1 = l1t[0];
+    l3 = l3t[0];
+    dir = -1;
+  }
+  else {
+    l1 = l1t[1];
+    l3 = l3t[1];
+    dir = 1;
+  }
+  l2 = 0.0;
+  f = ((double)dir * smooth_freq + l1 * max_wander) - max_freq;
+  if (f > 0.0) {
+    lc = f / max_wander;
+    if (lc > l1) {
+      lc = l1;
+      f2 = (double)dir * smooth_freq;
+    }
+    else f2 = max_freq;
+    l2 = lc * (2.0 + f / f2);
+    l1 -= lc;
+    l3 -= lc;
+  }
+  stages[0].wander = (double)dir * max_wander;
+  stages[0].length = l1;
+  stages[1].wander = 0.0;
+  stages[1].length = l2;
+  stages[2].wander = (double)(- dir) * max_wander;
+  stages[2].length = l3;
+  i = 0;
+  while (i < 3) i ++;
+  return;
+}
+
+static void update_smoothing(struct timespec *now, double offset, double freq)
+{
+  if (locked) {
+    double tmp;
+    tmp = REF_GetSkew();
+    ;
+    if (tmp / max_wander < (double)10000) SMT_Activate(now);
+    else 
+      if (leap_only_mode) SMT_Activate(now);
+    goto return_label;
+  }
+  get_smoothing(now,& smooth_offset,& smooth_freq,(double *)0);
+  smooth_offset += offset;
+  smooth_freq = (smooth_freq - freq) / (1.0 - freq);
+  last_update = *now;
+  update_stages();
+  return_label: return;
+}
+
+static void handle_slew_1(struct timespec *raw, struct timespec *cooked,
+                          double dfreq, double doffset,
+                          LCL_ChangeType change_type, void *anything)
+{
+  double delta;
+  int tmp;
+  if (change_type == (unsigned int)LCL_ChangeAdjust) 
+    if (leap_only_mode) update_smoothing(cooked,0.0,0.0);
+    else update_smoothing(cooked,doffset,dfreq);
+  tmp = UTI_IsZeroTimespec(& last_update);
+  if (! tmp) UTI_AdjustTimespec(& last_update,cooked,& last_update,& delta,
+                                dfreq,doffset);
+  return;
+}
+
+void SMT_Initialise(void)
+{
+  CNF_GetSmooth(& max_freq,& max_wander,& leap_only_mode);
+  if (max_freq <= 0.0) goto _LOR;
+  else 
+    if (max_wander <= 0.0) {
+      _LOR: {
+              enabled = 0;
+              goto return_label;
+            }
+    }
+  enabled = 1;
+  locked = 1;
+  max_freq *= 1e-6;
+  max_wander *= 1e-6;
+  UTI_ZeroTimespec(& last_update);
+  LCL_AddParameterChangeHandler(& handle_slew_1,(void *)0);
+  return_label: return;
+}
+
+void SMT_Finalise(void)
+{
+  return;
+}
+
+int SMT_IsEnabled(void)
+{
+  return enabled;
+}
+
+double SMT_GetOffset(struct timespec *now)
+{
+  double __retres;
+  double offset;
+  double freq;
+  if (! enabled) {
+    __retres = 0.0;
+    goto return_label;
+  }
+  get_smoothing(now,& offset,& freq,(double *)0);
+  __retres = offset;
+  return_label: return __retres;
+}
+
+void SMT_Activate(struct timespec *now)
+{
+  char const *tmp;
+  if (! enabled) goto return_label;
+  else 
+    if (! locked) goto return_label;
+  if (leap_only_mode) tmp = " (leap seconds only)"; else tmp = "";
+  {
+    char const *__va_arg0 = tmp;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_INFO,"Time smoothing activated%s",
+                (void * const *)(__va_args));
+  }
+  locked = 0;
+  last_update = *now;
+  return_label: return;
+}
+
+void SMT_Reset(struct timespec *now)
+{
+  int i;
+  if (! enabled) goto return_label;
+  smooth_offset = 0.0;
+  smooth_freq = 0.0;
+  last_update = *now;
+  i = 0;
+  while (i < 3) {
+    double tmp;
+    tmp = 0.0;
+    stages[i].length = tmp;
+    stages[i].wander = tmp;
+    i ++;
+  }
+  return_label: return;
+}
+
+void SMT_Leap(struct timespec *now, int leap)
+{
+  if (! enabled) goto return_label;
+  else 
+    if (! leap_only_mode) goto return_label;
+  update_smoothing(now,(double)leap,0.0);
+  return_label: return;
+}
+
+int SMT_GetSmoothingReport(RPT_SmoothingReport *report, struct timespec *now)
+{
+  int __retres;
+  double length;
+  double elapsed;
+  int i;
+  if (! enabled) {
+    __retres = 0;
+    goto return_label;
+  }
+  report->active = ! locked;
+  report->leap_only = leap_only_mode;
+  get_smoothing(now,& report->offset,& report->freq_ppm,& report->wander_ppm);
+  report->freq_ppm *= - 1.0e6;
+  report->wander_ppm *= - 1.0e6;
+  elapsed = UTI_DiffTimespecsToDouble(now,& last_update);
+  if (! locked) {
+    if (elapsed >= 0.0) {
+      i = 0;
+      length = 0.0;
+      while (i < 3) {
+        length += stages[i].length;
+        i ++;
+      }
+      report->last_update_ago = elapsed;
+      if (elapsed < length) report->remaining_time = length - elapsed;
+      else report->remaining_time = 0.0;
+    }
+    else goto _LAND;
+  }
+  else {
+    _LAND: {
+             report->last_update_ago = 0.0;
+             report->remaining_time = 0.0;
+           }
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int initialised_2 = 0;
+static struct SRC_Instance_Record **sources;
+static struct Sort_Element *sort_list;
+static int *sel_sources;
+static int n_sources;
+static int max_n_sources;
+static int selected_source_index;
+static double max_distance_0;
+static double max_jitter_0;
+static double reselect_distance_0;
+static double stratum_weight_0;
+static double combine_limit_0;
+static void slew_sources(struct timespec *raw, struct timespec *cooked,
+                         double dfreq, double doffset,
+                         LCL_ChangeType change_type, void *anything);
+
+static void add_dispersion(double dispersion, void *anything);
+
+static char *source_to_string(SRC_Instance inst);
+
+void SRC_Initialise(void)
+{
+  sources = (struct SRC_Instance_Record **)0;
+  sort_list = (struct Sort_Element *)0;
+  sel_sources = (int *)0;
+  n_sources = 0;
+  max_n_sources = 0;
+  selected_source_index = -1;
+  max_distance_0 = CNF_GetMaxDistance();
+  max_jitter_0 = CNF_GetMaxJitter();
+  reselect_distance_0 = CNF_GetReselectDistance();
+  stratum_weight_0 = CNF_GetStratumWeight();
+  combine_limit_0 = CNF_GetCombineLimit();
+  initialised_2 = 1;
+  LCL_AddParameterChangeHandler(& slew_sources,(void *)0);
+  LCL_AddDispersionNotifyHandler(& add_dispersion,(void *)0);
+  return;
+}
+
+void SRC_Finalise(void)
+{
+  LCL_RemoveParameterChangeHandler(& slew_sources,(void *)0);
+  LCL_RemoveDispersionNotifyHandler(& add_dispersion,(void *)0);
+  free((void *)sources);
+  free((void *)sort_list);
+  free((void *)sel_sources);
+  initialised_2 = 0;
+  return;
+}
+
+SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type,
+                                   int sel_options, IPAddr *addr,
+                                   int min_samples_0, int max_samples_0,
+                                   double min_delay, double asymmetry)
+{
+  SRC_Instance result;
+  __FC_assert(initialised_2 != 0,"sources.c",222,"initialised");
+  if (min_samples_0 == -1) min_samples_0 = CNF_GetMinSamples();
+  if (max_samples_0 == -1) max_samples_0 = CNF_GetMaxSamples();
+  result = (SRC_Instance)Malloc(sizeof(struct SRC_Instance_Record));
+  result->stats = SST_CreateInstance(ref_id,addr,min_samples_0,max_samples_0,
+                                     min_delay,asymmetry);
+  if (n_sources == max_n_sources) {
+    if (max_n_sources > 0) max_n_sources = 2 * max_n_sources;
+    else max_n_sources = 4;
+    if (sources) {
+      sources = (struct SRC_Instance_Record **)Realloc2((void *)sources,
+                                                        (unsigned long)max_n_sources,
+                                                        sizeof(struct SRC_Instance_Record *));
+      sort_list = (struct Sort_Element *)Realloc2((void *)sort_list,
+                                                  (unsigned long)(3 * max_n_sources),
+                                                  sizeof(struct Sort_Element));
+      sel_sources = (int *)Realloc2((void *)sel_sources,
+                                    (unsigned long)max_n_sources,sizeof(int));
+    }
+    else {
+      sources = (struct SRC_Instance_Record **)Malloc2((unsigned long)max_n_sources,
+                                                       sizeof(struct SRC_Instance_Record *));
+      sort_list = (struct Sort_Element *)Malloc2((unsigned long)(3 * max_n_sources),
+                                                 sizeof(struct Sort_Element));
+      sel_sources = (int *)Malloc2((unsigned long)max_n_sources,sizeof(int));
+    }
+  }
+  *(sources + n_sources) = result;
+  result->index = n_sources;
+  result->type = type;
+  result->sel_options = sel_options;
+  SRC_SetRefid(result,ref_id,addr);
+  SRC_ResetInstance(result);
+  n_sources ++;
+  return result;
+}
+
+void SRC_DestroyInstance(SRC_Instance instance)
+{
+  int dead_index;
+  int i;
+  __FC_assert(initialised_2 != 0,"sources.c",271,"initialised");
+  SST_DeleteInstance(instance->stats);
+  dead_index = instance->index;
+  i = dead_index;
+  while (i < n_sources - 1) {
+    *(sources + i) = *(sources + (i + 1));
+    (*(sources + i))->index = i;
+    i ++;
+  }
+  n_sources --;
+  free((void *)instance);
+  if (selected_source_index == dead_index) SRC_ReselectSource();
+  else 
+    if (selected_source_index > dead_index) selected_source_index --;
+  return;
+}
+
+void SRC_ResetInstance(SRC_Instance instance)
+{
+  instance->active = 0;
+  instance->updates = 0;
+  instance->reachability = 0;
+  instance->reachability_size = 0;
+  instance->distant = 0;
+  instance->status = SRC_BAD_STATS;
+  instance->sel_score = 1.0;
+  SST_ResetInstance(instance->stats);
+  return;
+}
+
+void SRC_SetRefid(SRC_Instance instance, uint32_t ref_id, IPAddr *addr)
+{
+  instance->ref_id = ref_id;
+  instance->ip_addr = addr;
+  SST_SetRefid(instance->stats,ref_id,addr);
+  return;
+}
+
+SST_Stats SRC_GetSourcestats(SRC_Instance instance)
+{
+  SST_Stats __retres;
+  __FC_assert(initialised_2 != 0,"sources.c",320,"initialised");
+  __retres = instance->stats;
+  return __retres;
+}
+
+void SRC_AccumulateSample(SRC_Instance inst, NTP_Sample *sample)
+{
+  int tmp_1;
+  __FC_assert(initialised_2 != 0,"sources.c",338,"initialised");
+  tmp_1 = REF_IsLeapSecondClose();
+  if (tmp_1) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_INFO,"Dropping sample around leap second",
+                  (void * const *)(__va_args));
+    }
+    goto return_label;
+  }
+  SST_AccumulateSample(inst->stats,sample);
+  SST_DoNewRegression(inst->stats);
+  return_label: return;
+}
+
+void SRC_SetActive(SRC_Instance inst)
+{
+  inst->active = 1;
+  return;
+}
+
+void SRC_UnsetActive(SRC_Instance inst)
+{
+  inst->active = 0;
+  return;
+}
+
+static int special_mode_end(void)
+{
+  int __retres;
+  int i;
+  i = 0;
+  while (i < n_sources) {
+    {
+      int tmp;
+      if (! (*(sources + i))->active) goto __Cont;
+      if ((*(sources + i))->reachability_size >= 8 - 1) goto __Cont;
+      tmp = SST_Samples((*(sources + i))->stats);
+      ;
+      if (((8 - 1) - (*(sources + i))->reachability_size) + tmp >= 3) {
+        __retres = 0;
+        goto return_label;
+      }
+    }
+    __Cont: i ++;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void SRC_UpdateReachability(SRC_Instance inst, int reachable)
+{
+  REF_Mode tmp;
+  inst->reachability <<= 1;
+  inst->reachability |= ! (! reachable);
+  inst->reachability = (int)((unsigned int)inst->reachability % (1U << 8));
+  if (inst->reachability_size < 8) (inst->reachability_size) ++;
+  if (! reachable) 
+    if (inst->index == selected_source_index) SRC_SelectSource((struct SRC_Instance_Record *)0);
+  tmp = REF_GetMode();
+  if (tmp != (unsigned int)REF_ModeNormal) {
+    int tmp_0;
+    tmp_0 = special_mode_end();
+    if (tmp_0) REF_SetUnsynchronised();
+  }
+  if (inst->type == (unsigned int)SRC_NTP) 
+    if (! inst->reachability) {
+      if (inst->reachability_size == 8) goto _LOR; else goto _LAND;
+    }
+    else {
+      _LAND: ;
+      if (inst->status == (unsigned int)SRC_BAD_DISTANCE) goto _LOR;
+      else 
+        if (inst->status == (unsigned int)SRC_JITTERY) goto _LOR;
+        else 
+          if (inst->status == (unsigned int)SRC_FALSETICKER) _LOR:
+                                                             NSR_HandleBadSource
+                                                             (inst->ip_addr);
+    }
+  return;
+}
+
+void SRC_ResetReachability(SRC_Instance inst)
+{
+  inst->reachability = 0;
+  inst->reachability_size = 0;
+  SRC_UpdateReachability(inst,0);
+  return;
+}
+
+static void log_selection_message(char *format, char *arg)
+{
+  REF_Mode tmp;
+  tmp = REF_GetMode();
+  if (tmp != (unsigned int)REF_ModeNormal) goto return_label;
+  {
+    char *__va_arg0 = arg;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_INFO,(char const *)format,(void * const *)(__va_args));
+  }
+  return_label: return;
+}
+
+static int compare_sort_elements(void const *a, void const *b)
+{
+  int __retres;
+  struct Sort_Element const *u = (struct Sort_Element const *)a;
+  struct Sort_Element const *v = (struct Sort_Element const *)b;
+  if (u->offset < v->offset) {
+    __retres = -1;
+    goto return_label;
+  }
+  else 
+    if (u->offset > v->offset) {
+      __retres = 1;
+      goto return_label;
+    }
+    else 
+      if (u->tag < v->tag) {
+        __retres = -1;
+        goto return_label;
+      }
+      else 
+        if (u->tag > v->tag) {
+          __retres = 1;
+          goto return_label;
+        }
+        else {
+          __retres = 0;
+          goto return_label;
+        }
+  return_label: return __retres;
+}
+
+static char *source_to_string(SRC_Instance inst)
+{
+  char *__retres;
+  switch (inst->type) {
+    char *tmp;
+    char *tmp_0;
+    case (SRC_Type)SRC_NTP: tmp = UTI_IPToString(inst->ip_addr);
+    __retres = tmp;
+    goto return_label;
+    case (SRC_Type)SRC_REFCLOCK: tmp_0 = UTI_RefidToString(inst->ref_id);
+    __retres = tmp_0;
+    goto return_label;
+    default: __FC_assert(0 != 0,"sources.c",476,"0");
+  }
+  __retres = (char *)0;
+  return_label: return __retres;
+}
+
+static void mark_ok_sources(SRC_Status status)
+{
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont;
+    (*(sources + i))->status = status;
+    __Cont: i ++;
+  }
+  return;
+}
+
+static int combine_sources(int n_sel_sources, struct timespec *ref_time,
+                           double *offset, double *offset_sd,
+                           double *frequency, double *frequency_sd,
+                           double *skew)
+{
+  int __retres;
+  struct timespec src_ref_time;
+  double src_offset;
+  double src_offset_sd;
+  double src_frequency;
+  double src_frequency_sd;
+  double src_skew;
+  double src_root_delay;
+  double src_root_dispersion;
+  double sel_src_distance;
+  double elapsed;
+  double offset_weight;
+  double sum_offset_weight;
+  double sum_offset;
+  double sum2_offset_sd;
+  double frequency_weight;
+  double sum_frequency_weight;
+  double sum_frequency;
+  double inv_sum2_frequency_sd;
+  double inv_sum2_skew;
+  int i;
+  int index_0;
+  int combined;
+  double tmp_1;
+  double tmp_2;
+  if (n_sel_sources == 1) {
+    __retres = 1;
+    goto return_label;
+  }
+  sum2_offset_sd = 0.0;
+  sum_offset = sum2_offset_sd;
+  sum_offset_weight = sum_offset;
+  inv_sum2_skew = 0.0;
+  inv_sum2_frequency_sd = inv_sum2_skew;
+  sum_frequency = inv_sum2_frequency_sd;
+  sum_frequency_weight = sum_frequency;
+  sel_src_distance = (*(sources + selected_source_index))->sel_info.root_distance;
+  if ((*(sources + selected_source_index))->type == (unsigned int)SRC_NTP) 
+    sel_src_distance += reselect_distance_0;
+  combined = 0;
+  i = combined;
+  /*@ loop unroll 2; */
+  while (i < n_sel_sources) {
+    index_0 = *(sel_sources + i);
+    SST_GetTrackingData((*(sources + index_0))->stats,& src_ref_time,
+                        & src_offset,& src_offset_sd,& src_frequency,
+                        & src_frequency_sd,& src_skew,& src_root_delay,
+                        & src_root_dispersion);
+    if (index_0 != selected_source_index) {
+      if ((*(sources + index_0))->sel_info.root_distance > combine_limit_0 * sel_src_distance) 
+        goto _LOR;
+      else {
+        double tmp;
+        double tmp_0;
+        tmp = fabs(*frequency - src_frequency);
+        tmp_0 = LCL_GetMaxClockError();
+        ;
+        if (tmp > combine_limit_0 * ((*skew + src_skew) + tmp_0)) 
+          _LOR:
+          if ((*(sources + index_0))->reachability_size >= 8) (*(sources + index_0))->distant = 32;
+          else (*(sources + index_0))->distant = 1;
+        else goto _LAND;
+      }
+    }
+    else {
+      _LAND: ;
+      if ((*(sources + index_0))->distant) ((*(sources + index_0))->distant) --;
+    }
+    if ((*(sources + index_0))->distant) {
+      (*(sources + index_0))->status = SRC_DISTANT;
+      goto __Cont;
+    }
+    if ((*(sources + index_0))->status == (unsigned int)SRC_OK) (*(sources + index_0))->status = SRC_UNSELECTED;
+    elapsed = UTI_DiffTimespecsToDouble(ref_time,& src_ref_time);
+    src_offset += elapsed * src_frequency;
+    src_offset_sd += elapsed * src_frequency_sd;
+    offset_weight = 1.0 / (*(sources + index_0))->sel_info.root_distance;
+    frequency_weight = 1.0 / (src_frequency_sd * src_frequency_sd);
+    sum_offset_weight += offset_weight;
+    sum_offset += offset_weight * src_offset;
+    sum2_offset_sd += offset_weight * (src_offset_sd * src_offset_sd + 
+                                       (src_offset - *offset) * (src_offset - *offset));
+    sum_frequency_weight += frequency_weight;
+    sum_frequency += frequency_weight * src_frequency;
+    inv_sum2_frequency_sd += 1.0 / (src_frequency_sd * src_frequency_sd);
+    inv_sum2_skew += 1.0 / (src_skew * src_skew);
+    combined ++;
+    __Cont: i ++;
+  }
+  __FC_assert(combined != 0,"sources.c",574,"combined");
+  *offset = sum_offset / sum_offset_weight;
+  *offset_sd = sqrt(sum2_offset_sd / sum_offset_weight);
+  *frequency = sum_frequency / sum_frequency_weight;
+  tmp_1 = sqrt(inv_sum2_frequency_sd);
+  *frequency_sd = 1.0 / tmp_1;
+  tmp_2 = sqrt(inv_sum2_skew);
+  *skew = 1.0 / tmp_2;
+  __retres = combined;
+  return_label: return __retres;
+}
+
+void SRC_SelectSource(SRC_Instance updated_inst)
+{
+  struct SelectInfo *si;
+  struct timespec now;
+  struct timespec ref_time;
+  int i;
+  int j;
+  int j1;
+  int j2;
+  int index_0;
+  int sel_prefer;
+  int n_endpoints;
+  int n_sel_sources;
+  int sel_req_source;
+  int n_badstats_sources;
+  int max_sel_reach;
+  int max_sel_reach_size;
+  int max_badstat_reach;
+  int depth;
+  int best_depth;
+  int trust_depth;
+  int best_trust_depth;
+  int combined;
+  int stratum;
+  int min_stratum;
+  int max_score_index;
+  int orphan_stratum;
+  int orphan_source;
+  int leap_votes;
+  int leap_ins;
+  int leap_del;
+  double src_offset;
+  double src_offset_sd;
+  double src_frequency;
+  double src_frequency_sd;
+  double src_skew;
+  double src_root_delay;
+  double src_root_dispersion;
+  double best_lo;
+  double best_hi;
+  double distance;
+  double sel_src_distance;
+  double max_score;
+  double first_sample_ago;
+  double max_reach_sample_ago;
+  NTP_Leap leap_status;
+  if (updated_inst) (updated_inst->updates) ++;
+  if (n_sources == 0) {
+    if (selected_source_index != -1) {
+      log_selection_message((char *)"Can\'t synchronise: no sources",
+                            (char *)0);
+      selected_source_index = -1;
+    }
+    goto return_label;
+  }
+  SCH_GetLastEventTime(& now,(double *)0,(struct timespec *)0);
+  n_endpoints = 0;
+  n_sel_sources = 0;
+  n_badstats_sources = 0;
+  sel_req_source = 0;
+  max_badstat_reach = 0;
+  max_sel_reach = max_badstat_reach;
+  max_sel_reach_size = 0;
+  max_reach_sample_ago = 0.0;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    __FC_assert(((*(sources + i))->status != (unsigned int)SRC_OK) != 0,
+                "sources.c",634,"sources[i]->status != SRC_OK");
+    if ((*(sources + i))->sel_options & 0x8) sel_req_source = 1;
+    if ((*(sources + i))->sel_options & 0x1) {
+      (*(sources + i))->status = SRC_UNSELECTABLE;
+      goto __Cont;
+    }
+    si = & (*(sources + i))->sel_info;
+    SST_GetSelectionData((*(sources + i))->stats,& now,& si->stratum,
+                         & si->leap,& si->lo_limit,& si->hi_limit,
+                         & si->root_distance,& si->std_dev,
+                         & first_sample_ago,& si->last_sample_ago,
+                         & si->select_ok);
+    if (! si->select_ok) {
+      n_badstats_sources ++;
+      (*(sources + i))->status = SRC_BAD_STATS;
+      if (max_badstat_reach < (*(sources + i))->reachability) max_badstat_reach = (*(
+                                                              sources + i))->reachability;
+      goto __Cont;
+    }
+    if (first_sample_ago < 2.0 * si->last_sample_ago) {
+      double tmp;
+      tmp = LCL_GetMaxClockError();
+      double extra_disp =
+        tmp * (2.0 * si->last_sample_ago - first_sample_ago);
+      si->root_distance += extra_disp;
+      si->lo_limit -= extra_disp;
+      si->hi_limit += extra_disp;
+    }
+    if (si->root_distance > max_distance_0) {
+      (*(sources + i))->status = SRC_BAD_DISTANCE;
+      goto __Cont;
+    }
+    if (si->std_dev > max_jitter_0) {
+      (*(sources + i))->status = SRC_JITTERY;
+      goto __Cont;
+    }
+    (*(sources + i))->status = SRC_OK;
+    if ((*(sources + i))->reachability) 
+      if (max_reach_sample_ago < first_sample_ago) max_reach_sample_ago = first_sample_ago;
+    if (max_sel_reach < (*(sources + i))->reachability) max_sel_reach = (*(
+                                                        sources + i))->reachability;
+    if (max_sel_reach_size < (*(sources + i))->reachability_size) max_sel_reach_size = (*(
+                                                                  sources + i))->reachability_size;
+    __Cont: i ++;
+  }
+  orphan_stratum = REF_GetOrphanStratum();
+  orphan_source = -1;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_0;
+    si = & (*(sources + i))->sel_info;
+    if (! (*(sources + i))->reachability) 
+      if (max_reach_sample_ago < si->last_sample_ago) {
+        (*(sources + i))->status = SRC_STALE;
+        goto __Cont_0;
+      }
+    if (si->stratum >= orphan_stratum) 
+      if ((*(sources + i))->type == (unsigned int)SRC_NTP) {
+        (*(sources + i))->status = SRC_ORPHAN;
+        if (si->stratum == orphan_stratum) 
+          if ((*(sources + i))->reachability) 
+            if (orphan_source == -1) orphan_source = i;
+            else 
+              if ((*(sources + i))->ref_id < (*(sources + orphan_source))->ref_id) 
+                orphan_source = i;
+        goto __Cont_0;
+      }
+    n_sel_sources ++;
+    __Cont_0: i ++;
+  }
+  if (! n_sel_sources) 
+    if (orphan_source != -1) {
+      uint32_t local_ref_id =
+        NSR_GetLocalRefid((*(sources + orphan_source))->ip_addr);
+      if (! local_ref_id) {
+        {
+          void *__va_args[1] = {(void *)0};
+          LOG_Message(LOGS_ERR,"Unknown local refid in orphan mode",
+                      (void * const *)(__va_args));
+        }
+      }
+      else 
+        if ((*(sources + orphan_source))->ref_id < local_ref_id) {
+          (*(sources + orphan_source))->status = SRC_OK;
+          n_sel_sources = 1;
+        }
+    }
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_1;
+    si = & (*(sources + i))->sel_info;
+    j1 = n_endpoints;
+    j2 = j1 + 1;
+    (sort_list + j1)->index = i;
+    (sort_list + j1)->offset = si->lo_limit;
+    (sort_list + j1)->tag = LOW;
+    (sort_list + j2)->index = i;
+    (sort_list + j2)->offset = si->hi_limit;
+    (sort_list + j2)->tag = HIGH;
+    n_endpoints += 2;
+    __Cont_1: i ++;
+  }
+  if (n_badstats_sources) 
+    if (n_sel_sources) 
+      if (selected_source_index == -1) 
+        if (max_sel_reach_size < 8) 
+          if (max_sel_reach >> 1 == max_badstat_reach) {
+            mark_ok_sources(SRC_WAITS_STATS);
+            goto return_label;
+          }
+  if (n_endpoints == 0) {
+    if (selected_source_index != -1) {
+      log_selection_message((char *)"Can\'t synchronise: no selectable sources",
+                            (char *)0);
+      selected_source_index = -1;
+    }
+    goto return_label;
+  }
+  qsort((void *)sort_list,(unsigned long)n_endpoints,
+        sizeof(struct Sort_Element),& compare_sort_elements);
+  best_trust_depth = 0;
+  trust_depth = best_trust_depth;
+  best_depth = 0;
+  depth = best_depth;
+  best_hi = 0.0;
+  best_lo = best_hi;
+  i = 0;
+  /*@ loop unroll 4; */
+  while (i < n_endpoints) {
+    switch ((sort_list + i)->tag) {
+      case LOW: depth ++;
+      if ((*(sources + (sort_list + i)->index))->sel_options & 0x4) trust_depth ++;
+      if (trust_depth > best_trust_depth) goto _LOR;
+      else 
+        if (trust_depth == best_trust_depth) 
+          if (depth > best_depth) {
+            _LOR:
+            {
+              best_trust_depth = trust_depth;
+              best_depth = depth;
+              best_lo = (sort_list + i)->offset;
+            }
+          }
+      break;
+      case HIGH: ;
+      if (trust_depth == best_trust_depth) 
+        if (depth == best_depth) best_hi = (sort_list + i)->offset;
+      if ((*(sources + (sort_list + i)->index))->sel_options & 0x4) trust_depth --;
+      depth --;
+      break;
+      default: __FC_assert(0 != 0,"sources.c",858,"0");
+    }
+    i ++;
+  }
+  if (best_depth <= n_sel_sources / 2) 
+    if (! best_trust_depth) {
+      if (selected_source_index != -1) {
+        log_selection_message((char *)"Can\'t synchronise: no majority",
+                              (char *)0);
+        REF_SetUnsynchronised();
+        selected_source_index = -1;
+      }
+      mark_ok_sources(SRC_FALSETICKER);
+      goto return_label;
+    }
+  n_sel_sources = 0;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_2;
+    if (! best_trust_depth) goto _LOR_1;
+    else 
+      if ((*(sources + i))->sel_options & 0x4) {
+        _LOR_1: ;
+        if ((*(sources + i))->sel_info.lo_limit <= best_lo) {
+          if ((*(sources + i))->sel_info.hi_limit >= best_hi) goto _LOR_0;
+          else goto _LAND_2;
+        }
+        else goto _LAND_2;
+      }
+      else {
+        _LAND_2: ;
+        if ((*(sources + i))->sel_info.lo_limit >= best_lo) {
+          if ((*(sources + i))->sel_info.hi_limit <= best_hi) {
+            _LOR_0:
+            {
+              int tmp_1;
+              tmp_1 = n_sel_sources;
+              n_sel_sources ++;
+              *(sel_sources + tmp_1) = i;
+              if ((*(sources + i))->sel_options & 0x8) sel_req_source = 0;
+            }
+          }
+          else goto _LAND_0;
+        }
+        else {
+          _LAND_0: ;
+          if ((*(sources + i))->sel_info.lo_limit <= best_lo) {
+            if ((*(sources + i))->sel_info.hi_limit >= best_hi) (*(sources + i))->status = SRC_UNTRUSTED;
+            else goto _LAND;
+          }
+          else _LAND: (*(sources + i))->status = SRC_FALSETICKER;
+        }
+      }
+    __Cont_2: i ++;
+  }
+  if (! n_sel_sources) goto _LOR_2;
+  else 
+    if (sel_req_source) goto _LOR_2;
+    else {
+      int tmp_4;
+      tmp_4 = CNF_GetMinSources();
+      ;
+      if (n_sel_sources < tmp_4) {
+        _LOR_2:
+        {
+          if (selected_source_index != -1) {
+            char const *tmp_3;
+            if (! n_sel_sources) tmp_3 = "no";
+            else {
+              char const *tmp_2;
+              if (sel_req_source) tmp_2 = "no required source in";
+              else tmp_2 = "not enough";
+              tmp_3 = tmp_2;
+            }
+            log_selection_message((char *)"Can\'t synchronise: %s selectable sources",
+                                  (char *)tmp_3);
+            selected_source_index = -1;
+          }
+          mark_ok_sources(SRC_WAITS_SOURCES);
+          goto return_label;
+        }
+      }
+    }
+  leap_votes = 0;
+  leap_del = leap_votes;
+  leap_ins = leap_del;
+  i = leap_ins;
+  /*@ loop unroll 2; */
+  while (i < n_sel_sources) {
+    index_0 = *(sel_sources + i);
+    if (best_trust_depth) 
+      if (! ((*(sources + index_0))->sel_options & 0x4)) goto __Cont_3;
+    leap_votes ++;
+    if ((*(sources + index_0))->sel_info.leap == (unsigned int)LEAP_InsertSecond) 
+      leap_ins ++;
+    else 
+      if ((*(sources + index_0))->sel_info.leap == (unsigned int)LEAP_DeleteSecond) 
+        leap_del ++;
+    __Cont_3: i ++;
+  }
+  if (leap_ins > leap_votes / 2) leap_status = LEAP_InsertSecond;
+  else 
+    if (leap_del > leap_votes / 2) leap_status = LEAP_DeleteSecond;
+    else leap_status = LEAP_Normal;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sel_sources) {
+    if ((*(sources + *(sel_sources + i)))->sel_options & 0x2) break;
+    i ++;
+  }
+  if (i < n_sel_sources) {
+    j = 0;
+    i = j;
+    /*@ loop unroll 2; */
+    while (i < n_sel_sources) {
+      if (! ((*(sources + *(sel_sources + i)))->sel_options & 0x2)) (*(
+                                                                    sources + *(
+                                                                    sel_sources + i)))->status = SRC_NONPREFERRED;
+      else {
+        int tmp_5;
+        tmp_5 = j;
+        j ++;
+        *(sel_sources + tmp_5) = *(sel_sources + i);
+      }
+      i ++;
+    }
+    __FC_assert((j > 0) != 0,"sources.c",960,"j > 0");
+    n_sel_sources = j;
+    sel_prefer = 1;
+  }
+  else sel_prefer = 0;
+  index_0 = *(sel_sources + 0);
+  min_stratum = (*(sources + index_0))->sel_info.stratum;
+  i = 1;
+  /*@ loop unroll 2; */
+  while (i < n_sel_sources) {
+    index_0 = *(sel_sources + i);
+    stratum = (*(sources + index_0))->sel_info.stratum;
+    if (stratum < min_stratum) min_stratum = stratum;
+    i ++;
+  }
+  max_score_index = -1;
+  max_score = 0.0;
+  sel_src_distance = 0.0;
+  if (selected_source_index != -1) sel_src_distance = (*(sources + selected_source_index))->sel_info.root_distance + 
+                                                      (double)((*(sources + selected_source_index))->sel_info.stratum - min_stratum) * stratum_weight_0;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto _LOR_3;
+    else 
+      if (sel_prefer) 
+        if (! ((*(sources + i))->sel_options & 0x2)) {
+          _LOR_3:
+          {
+            (*(sources + i))->sel_score = 1.0;
+            (*(sources + i))->distant = 32;
+            goto __Cont_4;
+          }
+        }
+    distance = (*(sources + i))->sel_info.root_distance + (double)((*(
+                                                                   sources + i))->sel_info.stratum - min_stratum) * stratum_weight_0;
+    if ((*(sources + i))->type == (unsigned int)SRC_NTP) distance += reselect_distance_0;
+    if (selected_source_index != -1) {
+      if (*(sources + i) == updated_inst) goto _LOR_4;
+      else 
+        if (*(sources + selected_source_index) == updated_inst) {
+          _LOR_4:
+          {
+            (*(sources + i))->sel_score *= sel_src_distance / distance;
+            if ((*(sources + i))->sel_score < 1.0) (*(sources + i))->sel_score = 1.0;
+          }
+        }
+    }
+    else (*(sources + i))->sel_score = 1.0 / distance;
+    if (max_score < (*(sources + i))->sel_score) {
+      max_score = (*(sources + i))->sel_score;
+      max_score_index = i;
+    }
+    __Cont_4: i ++;
+  }
+  __FC_assert((max_score_index != -1) != 0,"sources.c",1033,
+              "max_score_index != INVALID_SOURCE");
+  if (selected_source_index == -1) goto _LOR_5;
+  else 
+    if ((*(sources + selected_source_index))->status != (unsigned int)SRC_OK) 
+      goto _LOR_5;
+    else 
+      if (max_score_index != selected_source_index) 
+        if (max_score > 10.0) {
+          _LOR_5:
+          {
+            char *tmp_7;
+            if ((*(sources + max_score_index))->updates == 0) {
+              selected_source_index = -1;
+              mark_ok_sources(SRC_WAITS_UPDATE);
+              goto return_label;
+            }
+            selected_source_index = max_score_index;
+            tmp_7 = source_to_string(*(sources + selected_source_index));
+            log_selection_message((char *)"Selected source %s",tmp_7);
+            i = 0;
+            /*@ loop unroll 2; */
+            while (i < n_sources) {
+              (*(sources + i))->sel_score = 1.0;
+              (*(sources + i))->distant = 0;
+              i ++;
+            }
+          }
+        }
+  (*(sources + selected_source_index))->status = SRC_SELECTED;
+  if ((*(sources + selected_source_index))->updates == 0) {
+    i = 0;
+    /*@ loop unroll 2; */
+    while (i < n_sel_sources) {
+      index_0 = *(sel_sources + i);
+      if ((*(sources + index_0))->status == (unsigned int)SRC_OK) 
+        if ((*(sources + index_0))->distant) (*(sources + index_0))->status = SRC_DISTANT;
+        else (*(sources + index_0))->status = SRC_UNSELECTED;
+      i ++;
+    }
+    goto return_label;
+  }
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    (*(sources + i))->updates = 0;
+    i ++;
+  }
+  SST_GetTrackingData((*(sources + selected_source_index))->stats,& ref_time,
+                      & src_offset,& src_offset_sd,& src_frequency,
+                      & src_frequency_sd,& src_skew,& src_root_delay,
+                      & src_root_dispersion);
+  combined = combine_sources(n_sel_sources,& ref_time,& src_offset,
+                             & src_offset_sd,& src_frequency,
+                             & src_frequency_sd,& src_skew);
+  REF_SetReference((*(sources + selected_source_index))->sel_info.stratum,
+                   leap_status,combined,
+                   (*(sources + selected_source_index))->ref_id,
+                   (*(sources + selected_source_index))->ip_addr,& ref_time,
+                   src_offset,src_offset_sd,src_frequency,src_frequency_sd,
+                   src_skew,src_root_delay,src_root_dispersion);
+  return_label: return;
+}
+
+void SRC_ReselectSource(void)
+{
+  selected_source_index = -1;
+  SRC_SelectSource((struct SRC_Instance_Record *)0);
+  return;
+}
+
+void SRC_SetReselectDistance(double distance)
+{
+  if (reselect_distance_0 != distance) {
+    reselect_distance_0 = distance;
+    {
+      double __va_arg0 = distance;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_INFO,"New reselect distance %f",
+                  (void * const *)(__va_args));
+    }
+  }
+  return;
+}
+
+static void slew_sources(struct timespec *raw, struct timespec *cooked,
+                         double dfreq, double doffset,
+                         LCL_ChangeType change_type, void *anything)
+{
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if (change_type == (unsigned int)LCL_ChangeUnknownStep) SST_ResetInstance
+                                                            ((*(sources + i))->stats);
+    else SST_SlewSamples((*(sources + i))->stats,cooked,dfreq,doffset);
+    i ++;
+  }
+  if (change_type == (unsigned int)LCL_ChangeUnknownStep) SRC_SelectSource
+                                                          ((struct SRC_Instance_Record *)0);
+  return;
+}
+
+static void add_dispersion(double dispersion, void *anything)
+{
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    SST_AddDispersion((*(sources + i))->stats,dispersion);
+    i ++;
+  }
+  return;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param1);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param1 + (0 ..))), (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            *(param1 + (0 ..)), *(param0 + (0 ..));
+ */
+int snprintf_va_3(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0, char *param1);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: param1), (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param1,
+            *(param0 + (0 ..));
+ */
+int snprintf_va_4(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0,
+                  unsigned int param1);
+
+static FILE *open_dumpfile(SRC_Instance inst, char const *mode_0)
+{
+  FILE *__retres;
+  FILE *f;
+  char filename[1024];
+  char *dumpdir_0;
+  dumpdir_0 = CNF_GetDumpDir();
+  if ((int)*(dumpdir_0 + 0) == '\000') {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"dumpdir not specified",
+                  (void * const *)(__va_args));
+    }
+    __retres = (FILE *)0;
+    goto return_label;
+  }
+  if (inst->type == (unsigned int)SRC_NTP) {
+    int tmp_0;
+    char *tmp;
+    tmp = source_to_string(inst);
+    ;
+    tmp_0 = snprintf_va_3(filename,sizeof(filename),"%s/%s.dat",dumpdir_0,
+                          tmp);
+    if ((unsigned long)tmp_0 >= sizeof(filename)) goto _LOR; else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (inst->type != (unsigned int)SRC_NTP) {
+      int tmp_1;
+      tmp_1 = snprintf_va_4(filename,sizeof(filename),"%s/refid:%08x.dat",
+                            dumpdir_0,inst->ref_id);
+      if ((unsigned long)tmp_1 >= sizeof(filename)) {
+        _LOR:
+        {
+          {
+            void *__va_args_12[1] = {(void *)0};
+            LOG_Message(LOGS_WARN,"dumpdir too long",
+                        (void * const *)(__va_args_12));
+          }
+          __retres = (FILE *)0;
+          goto return_label;
+        }
+      }
+    }
+  }
+  f = fopen((char const *)(filename),mode_0);
+  if (! f) 
+    if ((int)*(mode_0 + 0) != 'r') {
+      char *tmp_2;
+      tmp_2 = source_to_string(inst);
+      {
+        char *__va_arg0 = tmp_2;
+        void *__va_args_15[1] = {& __va_arg0};
+        LOG_Message(LOGS_WARN,"Could not open dump file for %s",
+                    (void * const *)(__va_args_15));
+      }
+    }
+  __retres = f;
+  return_label: return __retres;
+}
+
+void SRC_DumpSources(void)
+{
+  FILE *out;
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    out = open_dumpfile(*(sources + i),"w");
+    if (! out) goto __Cont;
+    SST_SaveToFile((*(sources + i))->stats,out);
+    fclose(out);
+    __Cont: i ++;
+  }
+  return;
+}
+
+void SRC_ReloadSources(void)
+{
+  FILE *in;
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    {
+      int tmp_1;
+      in = open_dumpfile(*(sources + i),"r");
+      if (! in) goto __Cont;
+      tmp_1 = SST_LoadFromFile((*(sources + i))->stats,in);
+      if (tmp_1) {
+        char *tmp_0;
+        tmp_0 = source_to_string(*(sources + i));
+        {
+          char *__va_arg0 = tmp_0;
+          void *__va_args[1] = {& __va_arg0};
+          LOG_Message(LOGS_INFO,"Loaded dump file for %s",
+                      (void * const *)(__va_args));
+        }
+      }
+      else {
+        char *tmp;
+        tmp = source_to_string(*(sources + i));
+        {
+          char *__va_arg0_9 = tmp;
+          void *__va_args_11[1] = {& __va_arg0_9};
+          LOG_Message(LOGS_WARN,"Could not load dump file for %s",
+                      (void * const *)(__va_args_11));
+        }
+      }
+      fclose(in);
+    }
+    __Cont: i ++;
+  }
+  return;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_5(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_6(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0);
+
+void SRC_RemoveDumpFiles(void)
+{
+  char pattern[1024];
+  char name[64];
+  char *dumpdir_0;
+  char *s;
+  IPAddr ip_addr;
+  glob_t gl;
+  size_t i;
+  int tmp_0;
+  dumpdir_0 = CNF_GetDumpDir();
+  if ((int)*(dumpdir_0 + 0) == '\000') goto return_label;
+  else {
+    int tmp;
+    tmp = snprintf_va_5(pattern,sizeof(pattern),"%s/*.dat",dumpdir_0);
+    if ((unsigned long)tmp >= sizeof(pattern)) goto return_label;
+  }
+  tmp_0 = glob((char const *)(pattern),0,
+               (int (*)(char const *epath, int eerrno))0,& gl);
+  if (tmp_0) goto return_label;
+  i = (unsigned long)0;
+  while (i < gl.gl_pathc) {
+    {
+      size_t tmp_2;
+      size_t tmp_3;
+      int tmp_4;
+      s = strrchr((char const *)*(gl.gl_pathv + i),'/');
+      if (! s) goto __Cont;
+      else {
+        int tmp_1;
+        tmp_1 = snprintf_va_6(name,sizeof(name),"%s",s + 1);
+        if ((unsigned long)tmp_1 >= sizeof(name)) goto __Cont;
+      }
+      tmp_2 = strlen((char const *)(name));
+      if (tmp_2 < (size_t)4) goto __Cont;
+      tmp_3 = strlen((char const *)(name));
+      name[tmp_3 - (size_t)4] = (char)'\000';
+      tmp_4 = strncmp((char const *)(name),"refid:",(unsigned long)6);
+      if (tmp_4) {
+        int tmp_5;
+        tmp_5 = UTI_StringToIP((char const *)(name),& ip_addr);
+        if (! tmp_5) goto __Cont;
+      }
+      unlink((char const *)*(gl.gl_pathv + i));
+    }
+    __Cont: i += (size_t)1;
+  }
+  globfree(& gl);
+  return_label: return;
+}
+
+int SRC_IsSyncPeer(SRC_Instance inst)
+{
+  int __retres;
+  if (inst->index == selected_source_index) {
+    __retres = 1;
+    goto return_label;
+  }
+  else {
+    __retres = 0;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+int SRC_IsReachable(SRC_Instance inst)
+{
+  int __retres;
+  __retres = inst->reachability != 0;
+  return __retres;
+}
+
+int SRC_ReadNumberOfSources(void)
+{
+  return n_sources;
+}
+
+int SRC_ActiveSources(void)
+{
+  int i;
+  int r;
+  r = 0;
+  i = r;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->active) r ++;
+    i ++;
+  }
+  return r;
+}
+
+int SRC_ReportSource(int index_0, RPT_SourceReport *report,
+                     struct timespec *now)
+{
+  int __retres;
+  SRC_Instance src;
+  if (index_0 >= n_sources) goto _LOR;
+  else 
+    if (index_0 < 0) {
+      _LOR: {
+              __retres = 0;
+              goto return_label;
+            }
+    }
+    else {
+      src = *(sources + index_0);
+      if (src->ip_addr) report->ip_addr = *(src->ip_addr);
+      else {
+        report->ip_addr.addr.in4 = src->ref_id;
+        report->ip_addr.family = (unsigned short)1;
+      }
+      switch (src->status) {
+        case (SRC_Status)SRC_FALSETICKER: report->state = RPT_FALSETICKER;
+        break;
+        case (SRC_Status)SRC_JITTERY: report->state = RPT_JITTERY;
+        break;
+        case (SRC_Status)SRC_UNTRUSTED: case (SRC_Status)SRC_WAITS_SOURCES:
+        case (SRC_Status)SRC_NONPREFERRED: case (SRC_Status)SRC_WAITS_UPDATE:
+        case (SRC_Status)SRC_DISTANT: case (SRC_Status)SRC_OUTLIER:
+        report->state = RPT_OUTLIER;
+        break;
+        case (SRC_Status)SRC_UNSELECTED: report->state = RPT_CANDIDATE;
+        break;
+        case (SRC_Status)SRC_SELECTED: report->state = RPT_SYNC;
+        break;
+        default: report->state = RPT_UNREACH;
+        break;
+      }
+      report->sel_options = src->sel_options;
+      report->reachability = src->reachability;
+      SST_DoSourceReport(src->stats,report,now);
+      __retres = 1;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+int SRC_ReportSourcestats(int index_0, RPT_SourcestatsReport *report,
+                          struct timespec *now)
+{
+  int __retres;
+  SRC_Instance src;
+  if (index_0 >= n_sources) goto _LOR;
+  else 
+    if (index_0 < 0) {
+      _LOR: {
+              __retres = 0;
+              goto return_label;
+            }
+    }
+    else {
+      src = *(sources + index_0);
+      report->ref_id = src->ref_id;
+      if (src->ip_addr) report->ip_addr = *(src->ip_addr);
+      else report->ip_addr.family = (unsigned short)0;
+      SST_DoSourcestatsReport(src->stats,report,now);
+      __retres = 1;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+SRC_Type SRC_GetType(int index_0)
+{
+  SRC_Type __retres;
+  if (index_0 >= n_sources) {
+    __retres = (enum __anonenum_SRC_Type_23)(-1);
+    goto return_label;
+  }
+  else 
+    if (index_0 < 0) {
+      __retres = (enum __anonenum_SRC_Type_23)(-1);
+      goto return_label;
+    }
+  __retres = (*(sources + index_0))->type;
+  return_label: return __retres;
+}
+
+static LOG_FileID logfileid_0;
+static void find_min_delay_sample(SST_Stats inst);
+
+static int get_buf_index(SST_Stats inst, int i);
+
+void SST_Initialise(void)
+{
+  int tmp;
+  tmp = CNF_GetLogStatistics();
+  if (tmp) logfileid_0 = LOG_FileOpen("statistics",
+                                      "   Date (UTC) Time     IP Address    Std dev\'n Est offset  Offset sd  Diff freq   Est skew  Stress  Ns  Bs  Nr  Asym");
+  else logfileid_0 = -1;
+  return;
+}
+
+void SST_Finalise(void)
+{
+  return;
+}
+
+SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr, int min_samples_0,
+                             int max_samples_0, double min_delay,
+                             double asymmetry)
+{
+  SST_Stats inst;
+  inst = (SST_Stats)Malloc(sizeof(struct SST_Stats_Record));
+  inst->min_samples = min_samples_0;
+  inst->max_samples = max_samples_0;
+  inst->fixed_min_delay = min_delay;
+  inst->fixed_asymmetry = asymmetry;
+  SST_SetRefid(inst,refid,addr);
+  SST_ResetInstance(inst);
+  return inst;
+}
+
+void SST_DeleteInstance(SST_Stats inst)
+{
+  free((void *)inst);
+  return;
+}
+
+void SST_ResetInstance(SST_Stats inst)
+{
+  inst->n_samples = 0;
+  inst->runs_samples = 0;
+  inst->last_sample = 0;
+  inst->regression_ok = 0;
+  inst->best_single_sample = 0;
+  inst->min_delay_sample = 0;
+  inst->estimated_frequency = (double)0;
+  inst->estimated_frequency_sd = 2000.0 / 1.0e6;
+  inst->skew = 2000.0 / 1.0e6;
+  inst->estimated_offset = 0.0;
+  inst->estimated_offset_sd = 86400.0;
+  UTI_ZeroTimespec(& inst->offset_time);
+  inst->std_dev = 4.0;
+  inst->nruns = 0;
+  inst->asymmetry_run = 0;
+  inst->asymmetry = 0.0;
+  inst->leap = LEAP_Unsynchronised;
+  return;
+}
+
+void SST_SetRefid(SST_Stats inst, uint32_t refid, IPAddr *addr)
+{
+  inst->refid = refid;
+  inst->ip_addr = addr;
+  return;
+}
+
+static void prune_register(SST_Stats inst, int new_oldest)
+{
+  if (! new_oldest) goto return_label;
+  __FC_assert((inst->n_samples >= new_oldest) != 0,"sourcestats.c",280,
+              "inst->n_samples >= new_oldest");
+  inst->n_samples -= new_oldest;
+  inst->runs_samples += new_oldest;
+  if (inst->runs_samples > inst->n_samples * (2 - 1)) inst->runs_samples = 
+                                                      inst->n_samples * (
+                                                      2 - 1);
+  __FC_assert((inst->n_samples + inst->runs_samples <= 64 * 2) != 0,
+              "sourcestats.c",286,
+              "inst->n_samples + inst->runs_samples <= MAX_SAMPLES * REGRESS_RUNS_RATIO");
+  find_min_delay_sample(inst);
+  return_label: return;
+}
+
+void SST_AccumulateSample(SST_Stats inst, NTP_Sample *sample)
+{
+  int n;
+  int m;
+  int tmp_3;
+  if (inst->n_samples > 0) 
+    if (inst->n_samples == 64) goto _LOR;
+    else 
+      if (inst->n_samples == inst->max_samples) _LOR: prune_register(inst,1);
+  if (inst->n_samples) {
+    int tmp_2;
+    tmp_2 = UTI_CompareTimespecs(& inst->sample_times[inst->last_sample],
+                                 & sample->time);
+    if (tmp_2 >= 0) {
+      char *tmp_1;
+      if (inst->ip_addr) tmp_1 = UTI_IPToString(inst->ip_addr);
+      else tmp_1 = UTI_RefidToString(inst->refid);
+      {
+        char *__va_arg0 = tmp_1;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_WARN,
+                    "Out of order sample detected, discarding history for %s",
+                    (void * const *)(__va_args));
+      }
+      SST_ResetInstance(inst);
+    }
+  }
+  tmp_3 = (inst->last_sample + 1) % (64 * 2);
+  inst->last_sample = tmp_3;
+  n = tmp_3;
+  m = n % 64;
+  inst->sample_times[n] = sample->time;
+  inst->offsets[n] = - sample->offset;
+  inst->orig_offsets[m] = - sample->offset;
+  inst->peer_delays[n] = sample->peer_delay;
+  inst->peer_dispersions[m] = sample->peer_dispersion;
+  inst->root_delays[m] = sample->root_delay;
+  inst->root_dispersions[m] = sample->root_dispersion;
+  inst->stratum = sample->stratum;
+  inst->leap = sample->leap;
+  if (inst->peer_delays[n] < inst->fixed_min_delay) inst->peer_delays[n] = 
+                                                    2.0 * inst->fixed_min_delay - inst->peer_delays[n];
+  if (! inst->n_samples) inst->min_delay_sample = n;
+  else 
+    if (inst->peer_delays[n] < inst->peer_delays[inst->min_delay_sample]) 
+      inst->min_delay_sample = n;
+  (inst->n_samples) ++;
+  return;
+}
+
+static int get_runsbuf_index(SST_Stats inst, int i)
+{
+  int __retres;
+  __retres = (int)((unsigned int)((((inst->last_sample + (2 * 64) * 2) - inst->n_samples) + i) + 1) % (unsigned int)(
+                   64 * 2));
+  return __retres;
+}
+
+static int get_buf_index(SST_Stats inst, int i)
+{
+  int __retres;
+  __retres = (int)((unsigned int)((((inst->last_sample + 64 * 2) - inst->n_samples) + i) + 1) % (unsigned int)64);
+  return __retres;
+}
+
+static void convert_to_intervals(SST_Stats inst, double *times_back)
+{
+  struct timespec *ts;
+  int i;
+  ts = & inst->sample_times[inst->last_sample];
+  i = - inst->runs_samples;
+  while (i < inst->n_samples) {
+    {
+      int tmp;
+      ;
+      tmp = get_runsbuf_index(inst,i);
+      ;
+      *(times_back + i) = UTI_DiffTimespecsToDouble(& inst->sample_times[tmp],
+                                                    ts);
+    }
+    i ++;
+  }
+  return;
+}
+
+static void find_best_sample_index(SST_Stats inst, double *times_back)
+{
+  double root_distance;
+  double best_root_distance;
+  double elapsed;
+  int i;
+  int j;
+  int best_index;
+  if (! inst->n_samples) goto return_label;
+  best_index = -1;
+  best_root_distance = 0x1.fffffffffffffp+1023;
+  i = 0;
+  while (i < inst->n_samples) {
+    j = get_buf_index(inst,i);
+    elapsed = - *(times_back + i);
+    __FC_assert((elapsed >= 0.0) != 0,"sourcestats.c",398,"elapsed >= 0.0");
+    root_distance = (inst->root_dispersions[j] + elapsed * inst->skew) + 
+                    0.5 * inst->root_delays[j];
+    if (root_distance < best_root_distance) {
+      best_root_distance = root_distance;
+      best_index = i;
+    }
+    i ++;
+  }
+  __FC_assert((best_index >= 0) != 0,"sourcestats.c",407,"best_index >= 0");
+  inst->best_single_sample = best_index;
+  return_label: return;
+}
+
+static void find_min_delay_sample(SST_Stats inst)
+{
+  int i;
+  int index_0;
+  inst->min_delay_sample = get_runsbuf_index(inst,- inst->runs_samples);
+  i = - inst->runs_samples + 1;
+  while (i < inst->n_samples) {
+    index_0 = get_runsbuf_index(inst,i);
+    if (inst->peer_delays[index_0] < inst->peer_delays[inst->min_delay_sample]) 
+      inst->min_delay_sample = index_0;
+    i ++;
+  }
+  return;
+}
+
+static int estimate_asymmetry(double *times_back, double *offsets,
+                              double *delays, int n, double *asymmetry,
+                              int *asymmetry_run)
+{
+  int __retres;
+  double a;
+  int tmp;
+  int tmp_0;
+  double tmp_1;
+  tmp = RGR_MultipleRegress(times_back,delays,offsets,n,& a);
+  if (tmp) {
+    if (a * (double)*asymmetry_run < 0.0) {
+      _LOR:
+      {
+        *asymmetry = (double)0;
+        *asymmetry_run = (int)0.0;
+        __retres = 0;
+        goto return_label;
+      }
+    }
+  }
+  else goto _LOR;
+  if (a <= - 0.45) {
+    if (*asymmetry_run > -1000) (*asymmetry_run) --; else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (a >= 0.45) 
+      if (*asymmetry_run < 1000) (*asymmetry_run) ++;
+  }
+  tmp_0 = abs(*asymmetry_run);
+  if (tmp_0 < 10) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (a < 0.5) tmp_1 = a; else tmp_1 = 0.5;
+  if (- 0.5 > tmp_1) *asymmetry = - 0.5;
+  else {
+    double tmp_2;
+    if (a < 0.5) tmp_2 = a; else tmp_2 = 0.5;
+    *asymmetry = tmp_2;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static void correct_asymmetry(SST_Stats inst, double *times_back,
+                              double *offsets)
+{
+  double min_delay;
+  double delays[64 * 2];
+  int i;
+  int n;
+  double tmp_1;
+  if (inst->fixed_asymmetry == 0.0) goto return_label;
+  min_delay = SST_MinRoundTripDelay(inst);
+  n = inst->runs_samples + inst->n_samples;
+  i = 0;
+  while (i < n) {
+    int tmp;
+    tmp = get_runsbuf_index(inst,i - inst->runs_samples);
+    delays[i] = inst->peer_delays[tmp] - min_delay;
+    i ++;
+  }
+  tmp_1 = fabs(inst->fixed_asymmetry);
+  if (tmp_1 <= 0.5) inst->asymmetry = inst->fixed_asymmetry;
+  else {
+    int tmp_0;
+    tmp_0 = estimate_asymmetry(times_back,offsets,delays,n,& inst->asymmetry,
+                               & inst->asymmetry_run);
+    if (! tmp_0) goto return_label;
+  }
+  i = 0;
+  while (i < n) {
+    *(offsets + i) -= inst->asymmetry * delays[i];
+    i ++;
+  }
+  return_label: return;
+}
+
+void SST_DoNewRegression(SST_Stats inst)
+{
+  double times_back[64 * 2];
+  double offsets[64 * 2];
+  double peer_distances[64];
+  double weights[64];
+  int degrees_of_freedom;
+  int best_start;
+  int times_back_start;
+  double est_intercept;
+  double est_slope;
+  double est_var;
+  double est_intercept_sd;
+  double est_slope_sd;
+  int i;
+  int j;
+  int nruns;
+  double min_distance;
+  double median_distance;
+  double sd_weight;
+  double sd;
+  double old_skew;
+  double old_freq;
+  double stress;
+  double precision;
+  convert_to_intervals(inst,& times_back[inst->runs_samples]);
+  if (inst->n_samples > 0) {
+    double tmp_1;
+    i = - inst->runs_samples;
+    while (i < inst->n_samples) {
+      {
+        int tmp;
+        tmp = get_runsbuf_index(inst,i);
+        offsets[i + inst->runs_samples] = inst->offsets[tmp];
+      }
+      i ++;
+    }
+    i = 0;
+    min_distance = 0x1.fffffffffffffp+1023;
+    while (i < inst->n_samples) {
+      {
+        int tmp_0;
+        j = get_buf_index(inst,i);
+        tmp_0 = get_runsbuf_index(inst,i);
+        peer_distances[i] = 0.5 * inst->peer_delays[tmp_0] + inst->peer_dispersions[j];
+        if (peer_distances[i] < min_distance) min_distance = peer_distances[i];
+      }
+      i ++;
+    }
+    precision = LCL_GetSysPrecisionAsQuantum();
+    median_distance = RGR_FindMedian(peer_distances,inst->n_samples);
+    sd = (median_distance - min_distance) / 0.7;
+    if (sd < min_distance) tmp_1 = sd; else tmp_1 = min_distance;
+    ;
+    if (precision > tmp_1) sd = precision;
+    else {
+      double tmp_2;
+      if (sd < min_distance) tmp_2 = sd; else tmp_2 = min_distance;
+      sd = tmp_2;
+    }
+    min_distance += precision;
+    i = 0;
+    while (i < inst->n_samples) {
+      sd_weight = 1.0;
+      if (peer_distances[i] > min_distance) sd_weight += (peer_distances[i] - min_distance) / sd;
+      weights[i] = sd_weight * sd_weight;
+      i ++;
+    }
+  }
+  correct_asymmetry(inst,times_back,offsets);
+  inst->regression_ok = RGR_FindBestRegression(& times_back[inst->runs_samples],
+                                               & offsets[inst->runs_samples],
+                                               weights,inst->n_samples,
+                                               inst->runs_samples,
+                                               inst->min_samples,
+                                               & est_intercept,& est_slope,
+                                               & est_var,& est_intercept_sd,
+                                               & est_slope_sd,& best_start,
+                                               & nruns,& degrees_of_freedom);
+  if (inst->regression_ok) {
+    double tmp_3;
+    double tmp_5;
+    double tmp_6;
+    double tmp_8;
+    double tmp_10;
+    old_skew = inst->skew;
+    old_freq = inst->estimated_frequency;
+    inst->estimated_frequency = est_slope;
+    if (est_slope_sd < 1.0e+02) tmp_3 = est_slope_sd; else tmp_3 = 1.0e+02;
+    if (1.0e-12 > tmp_3) inst->estimated_frequency_sd = 1.0e-12;
+    else {
+      double tmp_4;
+      if (est_slope_sd < 1.0e+02) tmp_4 = est_slope_sd; else tmp_4 = 1.0e+02;
+      inst->estimated_frequency_sd = tmp_4;
+    }
+    tmp_5 = RGR_GetTCoef(degrees_of_freedom);
+    inst->skew = est_slope_sd * tmp_5;
+    inst->estimated_offset = est_intercept;
+    inst->offset_time = inst->sample_times[inst->last_sample];
+    inst->estimated_offset_sd = est_intercept_sd;
+    tmp_6 = sqrt(est_var);
+    if (1.0e-9 > tmp_6) inst->std_dev = 1.0e-9;
+    else inst->std_dev = sqrt(est_var);
+    inst->nruns = nruns;
+    if (inst->skew < 1.0e+02) tmp_8 = inst->skew; else tmp_8 = 1.0e+02;
+    if (1.0e-12 > tmp_8) inst->skew = 1.0e-12;
+    else {
+      double tmp_9;
+      if (inst->skew < 1.0e+02) tmp_9 = inst->skew; else tmp_9 = 1.0e+02;
+      inst->skew = tmp_9;
+    }
+    tmp_10 = fabs(old_freq - inst->estimated_frequency);
+    stress = tmp_10 / old_skew;
+    if (logfileid_0 != -1) {
+      char *tmp_13;
+      char *tmp_14;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      if (inst->ip_addr) tmp_13 = UTI_IPToString(inst->ip_addr);
+      else tmp_13 = UTI_RefidToString(inst->refid);
+      tmp_14 = UTI_TimeToLogForm(inst->offset_time.tv_sec);
+      ;
+      {
+        char *__va_arg0 = tmp_14;
+        char *__va_arg1 = tmp_13;
+        double __va_arg2 = inst->std_dev;
+        double __va_arg3 = inst->estimated_offset;
+        double __va_arg4 = inst->estimated_offset_sd;
+        double __va_arg5 = inst->estimated_frequency;
+        double __va_arg6 = inst->skew;
+        double __va_arg7 = stress;
+        int __va_arg8 = inst->n_samples;
+        int __va_arg9 = best_start;
+        int __va_arg10 = inst->nruns;
+        double __va_arg11 = inst->asymmetry;
+        void *__va_args[12] =
+          {& __va_arg0,
+           & __va_arg1,
+           & __va_arg2,
+           & __va_arg3,
+           & __va_arg4,
+           & __va_arg5,
+           & __va_arg6,
+           & __va_arg7,
+           & __va_arg8,
+           & __va_arg9,
+           & __va_arg10,
+           & __va_arg11};
+        LOG_FileWrite(logfileid_0,
+                      "%s %-15s %10.3e %10.3e %10.3e %10.3e %10.3e %7.1e %3d %3d %3d %5.2f",
+                      (void * const *)(__va_args));
+      }
+    }
+    times_back_start = inst->runs_samples + best_start;
+    prune_register(inst,best_start);
+  }
+  else {
+    inst->estimated_frequency = 0.0;
+    inst->estimated_frequency_sd = 2000.0 / 1.0e6;
+    inst->skew = 2000.0 / 1.0e6;
+    times_back_start = 0;
+  }
+  find_best_sample_index(inst,& times_back[times_back_start]);
+  return;
+}
+
+void SST_GetFrequencyRange(SST_Stats inst, double *lo, double *hi)
+{
+  double freq;
+  double skew;
+  freq = inst->estimated_frequency;
+  skew = inst->skew;
+  *lo = freq - skew;
+  *hi = freq + skew;
+  if (skew > 2000.0 / 1.0e6) {
+    *lo = - (2000.0 / 1.0e6);
+    *hi = 2000.0 / 1.0e6;
+  }
+  return;
+}
+
+void SST_GetSelectionData(SST_Stats inst, struct timespec *now, int *stratum,
+                          NTP_Leap *leap, double *offset_lo_limit,
+                          double *offset_hi_limit, double *root_distance,
+                          double *std_dev, double *first_sample_ago,
+                          double *last_sample_ago, int *select_ok)
+{
+  double offset;
+  double sample_elapsed;
+  int i;
+  int j;
+  double tmp;
+  if (! inst->n_samples) {
+    *select_ok = 0;
+    goto return_label;
+  }
+  i = get_runsbuf_index(inst,inst->best_single_sample);
+  j = get_buf_index(inst,inst->best_single_sample);
+  *stratum = inst->stratum;
+  *leap = inst->leap;
+  *std_dev = inst->std_dev;
+  tmp = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]);
+  sample_elapsed = fabs(tmp);
+  offset = inst->offsets[i] + sample_elapsed * inst->estimated_frequency;
+  *root_distance = (0.5 * inst->root_delays[j] + inst->root_dispersions[j]) + 
+                   sample_elapsed * inst->skew;
+  *offset_lo_limit = offset - *root_distance;
+  *offset_hi_limit = offset + *root_distance;
+  i = get_runsbuf_index(inst,0);
+  *first_sample_ago = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]);
+  i = get_runsbuf_index(inst,inst->n_samples - 1);
+  *last_sample_ago = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]);
+  *select_ok = inst->regression_ok;
+  return_label: return;
+}
+
+void SST_GetTrackingData(SST_Stats inst, struct timespec *ref_time,
+                         double *average_offset, double *offset_sd,
+                         double *frequency, double *frequency_sd,
+                         double *skew, double *root_delay,
+                         double *root_dispersion)
+{
+  int i;
+  int j;
+  double elapsed_sample;
+  __FC_assert((inst->n_samples > 0) != 0,"sourcestats.c",713,
+              "inst->n_samples > 0");
+  i = get_runsbuf_index(inst,inst->best_single_sample);
+  j = get_buf_index(inst,inst->best_single_sample);
+  *ref_time = inst->offset_time;
+  *average_offset = inst->estimated_offset;
+  *offset_sd = inst->estimated_offset_sd;
+  *frequency = inst->estimated_frequency;
+  *frequency_sd = inst->estimated_frequency_sd;
+  *skew = inst->skew;
+  *root_delay = inst->root_delays[j];
+  elapsed_sample = UTI_DiffTimespecsToDouble(& inst->offset_time,
+                                             & inst->sample_times[i]);
+  *root_dispersion = (inst->root_dispersions[j] + inst->skew * elapsed_sample) + *offset_sd;
+  return;
+}
+
+void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq,
+                     double doffset)
+{
+  int m;
+  int i;
+  double delta_time;
+  struct timespec *sample;
+  struct timespec prev;
+  double prev_offset;
+  double prev_freq;
+  if (! inst->n_samples) goto return_label;
+  m = - inst->runs_samples;
+  while (m < inst->n_samples) {
+    i = get_runsbuf_index(inst,m);
+    sample = & inst->sample_times[i];
+    prev = *sample;
+    UTI_AdjustTimespec(sample,when,sample,& delta_time,dfreq,doffset);
+    inst->offsets[i] += delta_time;
+    m ++;
+  }
+  prev = inst->offset_time;
+  prev_offset = inst->estimated_offset;
+  prev_freq = inst->estimated_frequency;
+  UTI_AdjustTimespec(& inst->offset_time,when,& inst->offset_time,
+                     & delta_time,dfreq,doffset);
+  inst->estimated_offset += delta_time;
+  inst->estimated_frequency = (inst->estimated_frequency - dfreq) / (
+                              1.0 - dfreq);
+  return_label: return;
+}
+
+void SST_AddDispersion(SST_Stats inst, double dispersion)
+{
+  int m;
+  int i;
+  m = 0;
+  while (m < inst->n_samples) {
+    i = get_buf_index(inst,m);
+    inst->root_dispersions[i] += dispersion;
+    inst->peer_dispersions[i] += dispersion;
+    m ++;
+  }
+  return;
+}
+
+double SST_PredictOffset(SST_Stats inst, struct timespec *when)
+{
+  double __retres;
+  double elapsed;
+  if (inst->n_samples < 3) 
+    if (inst->n_samples > 0) {
+      __retres = inst->offsets[inst->last_sample];
+      goto return_label;
+    }
+    else {
+      __retres = 0.0;
+      goto return_label;
+    }
+  else {
+    elapsed = UTI_DiffTimespecsToDouble(when,& inst->offset_time);
+    __retres = inst->estimated_offset + elapsed * inst->estimated_frequency;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+double SST_MinRoundTripDelay(SST_Stats inst)
+{
+  double __retres;
+  if (inst->fixed_min_delay > 0.0) {
+    __retres = inst->fixed_min_delay;
+    goto return_label;
+  }
+  if (! inst->n_samples) {
+    __retres = 0x1.fffffffffffffp+1023;
+    goto return_label;
+  }
+  __retres = inst->peer_delays[inst->min_delay_sample];
+  return_label: return __retres;
+}
+
+int SST_GetDelayTestData(SST_Stats inst, struct timespec *sample_time,
+                         double *last_sample_ago, double *predicted_offset,
+                         double *min_delay, double *skew, double *std_dev)
+{
+  int __retres;
+  if (inst->n_samples < 6) {
+    __retres = 0;
+    goto return_label;
+  }
+  *last_sample_ago = UTI_DiffTimespecsToDouble(sample_time,
+                                               & inst->offset_time);
+  *predicted_offset = inst->estimated_offset + *last_sample_ago * inst->estimated_frequency;
+  *min_delay = SST_MinRoundTripDelay(inst);
+  *skew = inst->skew;
+  *std_dev = inst->std_dev;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param0;
+ */
+int fprintf_va_6(FILE * __restrict stream, char const * __restrict format,
+                 int param0);
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param9),
+            (indirect: param8), (indirect: param7), (indirect: param6),
+            (indirect: param5), (indirect: param4), (indirect: param3),
+            (indirect: param2), (indirect: param1), (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param9, param8, param7, param6,
+            param5, param4, param3, param2, param1, param0;
+ */
+int fprintf_va_7(FILE * __restrict stream, char const * __restrict format,
+                 unsigned long param0, unsigned long param1, double param2,
+                 double param3, double param4, double param5, double param6,
+                 double param7, double param8, int param9);
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param0;
+ */
+int fprintf_va_8(FILE * __restrict stream, char const * __restrict format,
+                 int param0);
+
+void SST_SaveToFile(SST_Stats inst, FILE *out)
+{
+  int m;
+  int i;
+  int j;
+  fprintf_va_6(out,"%d\n",inst->n_samples);
+  m = 0;
+  while (m < inst->n_samples) {
+    i = get_runsbuf_index(inst,m);
+    j = get_buf_index(inst,m);
+    fprintf_va_7(out,"%08lx %08lx %.6e %.6e %.6e %.6e %.6e %.6e %.6e %d\n",
+                 (unsigned long)inst->sample_times[i].tv_sec,
+                 (unsigned long)inst->sample_times[i].tv_nsec / (unsigned long)1000,
+                 inst->offsets[i],inst->orig_offsets[j],inst->peer_delays[i],
+                 inst->peer_dispersions[j],inst->root_delays[j],
+                 inst->root_dispersions[j],1.0,inst->stratum);
+    m ++;
+  }
+  fprintf_va_8(out,"%d\n",inst->asymmetry_run);
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_60(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param9);
+    requires \valid(param8);
+    requires \valid(param7);
+    requires \valid(param6);
+    requires \valid(param5);
+    requires \valid(param4);
+    requires \valid(param3);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param9);
+    ensures \initialized(param8);
+    ensures \initialized(param7);
+    ensures \initialized(param6);
+    ensures \initialized(param5);
+    ensures \initialized(param4);
+    ensures \initialized(param3);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param9, *param8, *param7, *param6, *param5, *param4,
+            *param3, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param9
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param8
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param7
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param6
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param5
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param4
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param3
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_61(char const * __restrict s, char const * __restrict format,
+                 unsigned long *param0, unsigned long *param1,
+                 double *param2, double *param3, double *param4,
+                 double *param5, double *param6, double *param7,
+                 double *param8, int *param9);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_62(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+int SST_LoadFromFile(SST_Stats inst, FILE *in)
+{
+  int __retres;
+  uint64_t sec;
+  unsigned long usec;
+  int i;
+  char line[1024];
+  double weight;
+  char *tmp_3;
+  SST_ResetInstance(inst);
+  tmp_3 = fgets(line,(int)sizeof(line),in);
+  if (tmp_3) {
+    int tmp_4;
+    tmp_4 = sscanf_va_60((char const *)(line),"%d",& inst->n_samples);
+    if (tmp_4 == 1) {
+      if (inst->n_samples >= 0) {
+        if (inst->n_samples <= 64) {
+          char *tmp_1;
+          i = 0;
+          while (i < inst->n_samples) {
+            {
+              char *tmp;
+              tmp = fgets(line,(int)sizeof(line),in);
+              if (tmp) {
+                int tmp_0;
+                tmp_0 = sscanf_va_61((char const *)(line),
+                                     "%lx%lx%lf%lf%lf%lf%lf%lf%lf%d\n",
+                                     (unsigned long *)(& sec),& usec,
+                                     & inst->offsets[i],
+                                     & inst->orig_offsets[i],
+                                     & inst->peer_delays[i],
+                                     & inst->peer_dispersions[i],
+                                     & inst->root_delays[i],
+                                     & inst->root_dispersions[i],& weight,
+                                     & inst->stratum);
+                if (tmp_0 != 10) {
+                  _LOR:
+                  {
+                    inst->n_samples = 0;
+                    __retres = 0;
+                    goto return_label;
+                  }
+                }
+                else {
+                  inst->sample_times[i].tv_sec = (long)sec;
+                  inst->sample_times[i].tv_nsec = (long)((unsigned long)1000 * usec);
+                  UTI_NormaliseTimespec(& inst->sample_times[i]);
+                }
+              }
+              else goto _LOR;
+            }
+            i ++;
+          }
+          tmp_1 = fgets(line,(int)sizeof(line),in);
+          if (tmp_1) {
+            int tmp_2;
+            tmp_2 = sscanf_va_62((char const *)(line),"%d\n",
+                                 & inst->asymmetry_run);
+            if (tmp_2 != 1) inst->asymmetry_run = 0;
+          }
+          else inst->asymmetry_run = 0;
+        }
+        else goto _LAND_1;
+      }
+      else goto _LAND_1;
+    }
+    else goto _LAND_1;
+  }
+  else {
+    _LAND_1: {
+               inst->n_samples = 0;
+               __retres = 0;
+               goto return_label;
+             }
+  }
+  if (! inst->n_samples) {
+    __retres = 1;
+    goto return_label;
+  }
+  inst->last_sample = inst->n_samples - 1;
+  find_min_delay_sample(inst);
+  SST_DoNewRegression(inst);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void SST_DoSourceReport(SST_Stats inst, RPT_SourceReport *report,
+                        struct timespec *now)
+{
+  int i;
+  int j;
+  struct timespec last_sample_time;
+  if (inst->n_samples > 0) {
+    double tmp;
+    i = get_runsbuf_index(inst,inst->n_samples - 1);
+    j = get_buf_index(inst,inst->n_samples - 1);
+    report->orig_latest_meas = inst->orig_offsets[j];
+    report->latest_meas = inst->offsets[i];
+    report->latest_meas_err = 0.5 * inst->root_delays[j] + inst->root_dispersions[j];
+    report->stratum = inst->stratum;
+    last_sample_time = inst->sample_times[i];
+    last_sample_time.tv_nsec = (long)0;
+    tmp = UTI_DiffTimespecsToDouble(now,& last_sample_time);
+    report->latest_meas_ago = (unsigned long)tmp;
+  }
+  else {
+    report->latest_meas_ago = (unsigned long)((unsigned int)(-1));
+    report->orig_latest_meas = (double)0;
+    report->latest_meas = (double)0;
+    report->latest_meas_err = (double)0;
+    report->stratum = 0;
+  }
+  return;
+}
+
+int SST_Samples(SST_Stats inst)
+{
+  int __retres;
+  __retres = inst->n_samples;
+  return __retres;
+}
+
+void SST_DoSourcestatsReport(SST_Stats inst, RPT_SourcestatsReport *report,
+                             struct timespec *now)
+{
+  double dspan;
+  double elapsed;
+  double sample_elapsed;
+  int li;
+  int lj;
+  int bi;
+  int bj;
+  report->n_samples = (unsigned long)inst->n_samples;
+  report->n_runs = (unsigned long)inst->nruns;
+  if (inst->n_samples > 1) {
+    int tmp;
+    li = get_runsbuf_index(inst,inst->n_samples - 1);
+    lj = get_buf_index(inst,inst->n_samples - 1);
+    tmp = get_runsbuf_index(inst,0);
+    ;
+    ;
+    dspan = UTI_DiffTimespecsToDouble(& inst->sample_times[li],
+                                      & inst->sample_times[tmp]);
+    report->span_seconds = (unsigned long)(dspan + 0.5);
+    if (inst->n_samples > 3) {
+      elapsed = UTI_DiffTimespecsToDouble(now,& inst->offset_time);
+      bi = get_runsbuf_index(inst,inst->best_single_sample);
+      bj = get_buf_index(inst,inst->best_single_sample);
+      sample_elapsed = UTI_DiffTimespecsToDouble(now,
+                                                 & inst->sample_times[bi]);
+      report->est_offset = inst->estimated_offset + elapsed * inst->estimated_frequency;
+      report->est_offset_err = (inst->estimated_offset_sd + sample_elapsed * inst->skew) + (
+                               0.5 * inst->root_delays[bj] + inst->root_dispersions[bj]);
+    }
+    else {
+      report->est_offset = inst->offsets[li];
+      report->est_offset_err = 0.5 * inst->root_delays[lj] + inst->root_dispersions[lj];
+    }
+  }
+  else {
+    report->span_seconds = (unsigned long)0;
+    report->est_offset = (double)0;
+    report->est_offset_err = (double)0;
+  }
+  report->resid_freq_ppm = 1.0e6 * inst->estimated_frequency;
+  report->skew_ppm = 1.0e6 * inst->skew;
+  report->sd = inst->std_dev;
+  return;
+}
+
+double SST_GetJitterAsymmetry(SST_Stats inst)
+{
+  double __retres;
+  __retres = inst->asymmetry;
+  return __retres;
+}
+
+void UTI_ZeroTimespec(struct timespec *ts)
+{
+  ts->tv_sec = (long)0;
+  ts->tv_nsec = (long)0;
+  return;
+}
+
+int UTI_IsZeroTimespec(struct timespec *ts)
+{
+  int tmp;
+  if (! ts->tv_sec) 
+    if (! ts->tv_nsec) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  return tmp;
+}
+
+void UTI_TimevalToTimespec(struct timeval *tv, struct timespec *ts)
+{
+  ts->tv_sec = tv->tv_sec;
+  ts->tv_nsec = (long)(1000 * tv->tv_usec);
+  return;
+}
+
+void UTI_TimespecToTimeval(struct timespec *ts, struct timeval *tv)
+{
+  tv->tv_sec = ts->tv_sec;
+  tv->tv_usec = (int)(ts->tv_nsec / (long)1000);
+  return;
+}
+
+double UTI_TimespecToDouble(struct timespec *ts)
+{
+  double __retres;
+  __retres = (double)ts->tv_sec + 1.0e-9 * (double)ts->tv_nsec;
+  return __retres;
+}
+
+void UTI_DoubleToTimespec(double d, struct timespec *ts)
+{
+  ts->tv_sec = (long)d;
+  ts->tv_nsec = (long)(1.0e9 * (d - (double)ts->tv_sec));
+  UTI_NormaliseTimespec(ts);
+  return;
+}
+
+void UTI_NormaliseTimespec(struct timespec *ts)
+{
+  if (ts->tv_nsec >= (long)1000000000) goto _LOR;
+  else 
+    if (ts->tv_nsec < (long)0) {
+      _LOR:
+      {
+        ts->tv_sec += ts->tv_nsec / (long)1000000000;
+        ts->tv_nsec %= (long)1000000000;
+        if (ts->tv_nsec < (long)0) {
+          (ts->tv_sec) --;
+          ts->tv_nsec += (long)1000000000;
+        }
+      }
+    }
+  return;
+}
+
+double UTI_TimevalToDouble(struct timeval *tv)
+{
+  double __retres;
+  __retres = (double)tv->tv_sec + 1.0e-6 * (double)tv->tv_usec;
+  return __retres;
+}
+
+void UTI_DoubleToTimeval(double a, struct timeval *b)
+{
+  double frac_part;
+  b->tv_sec = (long)a;
+  frac_part = 1.0e6 * (a - (double)b->tv_sec);
+  if (frac_part > (double)0) b->tv_usec = (int)(frac_part + 0.5);
+  else b->tv_usec = (int)(frac_part - 0.5);
+  UTI_NormaliseTimeval(b);
+  return;
+}
+
+void UTI_NormaliseTimeval(struct timeval *x)
+{
+  if (x->tv_usec >= 1000000) goto _LOR;
+  else 
+    if (x->tv_usec <= -1000000) {
+      _LOR:
+      {
+        x->tv_sec += (time_t)(x->tv_usec / 1000000);
+        x->tv_usec %= 1000000;
+      }
+    }
+  if (x->tv_usec < 0) {
+    x->tv_sec -= (time_t)1;
+    x->tv_usec += 1000000;
+  }
+  return;
+}
+
+int UTI_CompareTimespecs(struct timespec *a, struct timespec *b)
+{
+  int __retres;
+  if (a->tv_sec < b->tv_sec) {
+    __retres = -1;
+    goto return_label;
+  }
+  if (a->tv_sec > b->tv_sec) {
+    __retres = 1;
+    goto return_label;
+  }
+  if (a->tv_nsec < b->tv_nsec) {
+    __retres = -1;
+    goto return_label;
+  }
+  if (a->tv_nsec > b->tv_nsec) {
+    __retres = 1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void UTI_DiffTimespecs(struct timespec *result, struct timespec *a,
+                       struct timespec *b)
+{
+  result->tv_sec = a->tv_sec - b->tv_sec;
+  result->tv_nsec = a->tv_nsec - b->tv_nsec;
+  UTI_NormaliseTimespec(result);
+  return;
+}
+
+double UTI_DiffTimespecsToDouble(struct timespec *a, struct timespec *b)
+{
+  double __retres;
+  __retres = ((double)a->tv_sec - (double)b->tv_sec) + 1.0e-9 * (double)(
+                                                       a->tv_nsec - b->tv_nsec);
+  return __retres;
+}
+
+void UTI_AddDoubleToTimespec(struct timespec *start, double increment,
+                             struct timespec *end)
+{
+  time_t int_part;
+  int_part = (long)increment;
+  end->tv_sec = start->tv_sec + int_part;
+  end->tv_nsec = (long)((double)start->tv_nsec + 1.0e9 * (increment - (double)int_part));
+  UTI_NormaliseTimespec(end);
+  return;
+}
+
+void UTI_AverageDiffTimespecs(struct timespec *earlier,
+                              struct timespec *later,
+                              struct timespec *average, double *diff)
+{
+  *diff = UTI_DiffTimespecsToDouble(later,earlier);
+  UTI_AddDoubleToTimespec(earlier,*diff / 2.0,average);
+  return;
+}
+
+void UTI_AddDiffToTimespec(struct timespec *a, struct timespec *b,
+                           struct timespec *c, struct timespec *result)
+{
+  double diff;
+  diff = UTI_DiffTimespecsToDouble(a,b);
+  UTI_AddDoubleToTimespec(c,diff,result);
+  return;
+}
+
+static char buffer_pool[16][64];
+static int pool_ptr = 0;
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: param1), (indirect: param0);
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param1, param0;
+ */
+int snprintf_va_7(char * __restrict s, size_t n,
+                  char const * __restrict format, long param0,
+                  unsigned long param1);
+
+char *UTI_TimespecToString(struct timespec *ts)
+{
+  char *result;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  snprintf_va_7(result,(unsigned long)64,"%ld.%09lu",ts->tv_sec,
+                (unsigned long)ts->tv_nsec);
+  return result;
+}
+
+char *UTI_Ntp64ToString(NTP_int64 *ntp_ts)
+{
+  struct timespec ts;
+  char *tmp;
+  UTI_Ntp64ToTimespec(ntp_ts,& ts);
+  tmp = UTI_TimespecToString(& ts);
+  return tmp;
+}
+
+char *UTI_RefidToString(uint32_t ref_id)
+{
+  unsigned int i;
+  unsigned int j;
+  unsigned int c;
+  char *result;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  j = (unsigned int)0;
+  i = j;
+  while (1) {
+    if (i < (unsigned int)4) {
+      if (! (i < (unsigned int)(64 - 1))) break;
+    }
+    else break;
+    {
+      int tmp_0;
+      c = (ref_id >> ((unsigned int)24 - i * (unsigned int)8)) & (unsigned int)0xff;
+      tmp_0 = isprint((int)c);
+      if (tmp_0) {
+        unsigned int tmp;
+        tmp = j;
+        j ++;
+        *(result + tmp) = (char)c;
+      }
+    }
+    i ++;
+  }
+  *(result + j) = (char)'\000';
+  return result;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result \from (indirect: n), (indirect: *(format + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..)));
+ */
+int snprintf_va_8(char * __restrict s, size_t n,
+                  char const * __restrict format);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: param3), (indirect: param2), (indirect: param1),
+            (indirect: param0);
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param3, param2,
+            param1, param0;
+ */
+int snprintf_va_9(char * __restrict s, size_t n,
+                  char const * __restrict format, unsigned long param0,
+                  unsigned long param1, unsigned long param2,
+                  unsigned long param3);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))), (indirect: param0);
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param0;
+ */
+int snprintf_va_10(char * __restrict s, size_t n,
+                   char const * __restrict format, unsigned int param0);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result \from (indirect: n), (indirect: *(format + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..)));
+ */
+int snprintf_va_11(char * __restrict s, size_t n,
+                   char const * __restrict format);
+
+char *UTI_IPToString(IPAddr *addr)
+{
+  unsigned long a;
+  unsigned long b;
+  unsigned long c;
+  unsigned long d;
+  unsigned long ip;
+  uint8_t *ip6;
+  char *result;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  switch ((int)addr->family) {
+    case 0: snprintf_va_8(result,(unsigned long)64,"[UNSPEC]");
+    break;
+    case 1: ip = (unsigned long)addr->addr.in4;
+    a = (ip >> 24) & (unsigned long)0xff;
+    b = (ip >> 16) & (unsigned long)0xff;
+    c = (ip >> 8) & (unsigned long)0xff;
+    d = (ip >> 0) & (unsigned long)0xff;
+    snprintf_va_9(result,(unsigned long)64,"%lu.%lu.%lu.%lu",a,b,c,d);
+    break;
+    case 2: ip6 = addr->addr.in6;
+    __FC_assert((64 >= 40) != 0,"util.c",308,"BUFFER_LENGTH >= 40");
+    a = (unsigned long)0;
+    while (a < (unsigned long)8) {
+      snprintf_va_10(result + a * (unsigned long)5,
+                     (unsigned long)40 - a * (unsigned long)5,"%04x:",
+                     (unsigned int)(((int)*(ip6 + (unsigned long)2 * a) << 8) | (int)*(
+                                    ip6 + ((unsigned long)2 * a + (unsigned long)1))));
+      a ++;
+    }
+    break;
+    default: snprintf_va_11(result,(unsigned long)64,"[UNKNOWN]");
+  }
+  return result;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param3);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param3);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param3, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param3
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_63(char const * __restrict s, char const * __restrict format,
+                 unsigned long *param0, unsigned long *param1,
+                 unsigned long *param2, unsigned long *param3);
+
+int UTI_StringToIP(char const *addr, IPAddr *ip)
+{
+  int __retres;
+  unsigned long a;
+  unsigned long b;
+  unsigned long c;
+  unsigned long d;
+  unsigned long n;
+  int tmp;
+  tmp = sscanf_va_63(addr,"%lu.%lu.%lu.%lu",& a,& b,& c,& d);
+  n = (unsigned long)tmp;
+  if (n == (unsigned long)4) {
+    ip->family = (unsigned short)1;
+    ip->_pad = (unsigned short)0;
+    ip->addr.in4 = (unsigned int)(((((a & (unsigned long)0xff) << 24) | (
+                                    (b & (unsigned long)0xff) << 16)) | (
+                                   (c & (unsigned long)0xff) << 8)) | (
+                                  d & (unsigned long)0xff));
+    __retres = 1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+static int UTI_IPToRefid_MD5_hash = -1;
+uint32_t UTI_IPToRefid(IPAddr *ip)
+{
+  uint32_t __retres;
+  unsigned char buf[16];
+  switch ((int)ip->family) {
+    case 1: ;
+    __retres = ip->addr.in4;
+    goto return_label;
+    case 2: ;
+    if (UTI_IPToRefid_MD5_hash < 0) UTI_IPToRefid_MD5_hash = HSH_GetHashId
+                                    ("MD5");
+    if (UTI_IPToRefid_MD5_hash < 0) goto _LOR;
+    else {
+      unsigned int tmp;
+      tmp = HSH_Hash(UTI_IPToRefid_MD5_hash,
+                     (unsigned char const *)(ip->addr.in6),
+                     (unsigned int)sizeof(ip->addr.in6),
+                     (unsigned char const *)0,(unsigned int)0,buf,
+                     (unsigned int)sizeof(buf));
+      if ((unsigned long)tmp != sizeof(buf)) {
+        _LOR:
+        {
+          {
+            void *__va_args[1] = {(void *)0};
+            LOG_Message(LOGS_FATAL,"Could not get MD5",
+                        (void * const *)(__va_args));
+          }
+          exit(1);
+        }
+      }
+    }
+    __retres = ((((unsigned int)buf[0] << 24) | (unsigned int)((int)buf[1] << 16)) | (unsigned int)(
+                (int)buf[2] << 8)) | (unsigned int)buf[3];
+    goto return_label;
+  }
+  __retres = (unsigned int)0;
+  return_label: return __retres;
+}
+
+static uint32_t UTI_IPToHash_seed = (unsigned int)0;
+uint32_t UTI_IPToHash(IPAddr *ip)
+{
+  uint32_t __retres;
+  unsigned char *addr;
+  unsigned int i;
+  unsigned int len;
+  uint32_t hash;
+  switch ((int)ip->family) {
+    case 1: addr = (unsigned char *)(& ip->addr.in4);
+    len = (unsigned int)sizeof(ip->addr.in4);
+    break;
+    case 2: addr = (unsigned char *)(ip->addr.in6);
+    len = (unsigned int)sizeof(ip->addr.in6);
+    break;
+    default: __retres = (unsigned int)0;
+    goto return_label;
+  }
+  while (! UTI_IPToHash_seed) UTI_GetRandomBytes((void *)(& UTI_IPToHash_seed),
+                                                 (unsigned int)sizeof(UTI_IPToHash_seed));
+  i = (unsigned int)0;
+  hash = UTI_IPToHash_seed;
+  while (i < len) {
+    hash = (uint32_t)71 * hash + (uint32_t)*(addr + i);
+    i ++;
+  }
+  __retres = hash + UTI_IPToHash_seed;
+  return_label: return __retres;
+}
+
+void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest)
+{
+  memset((void *)dest,0,sizeof(IPAddr));
+  dest->family = htons(src->family);
+  switch ((int)src->family) {
+    case 1: dest->addr.in4 = htonl(src->addr.in4);
+    break;
+    case 2:
+    memcpy((void *)(dest->addr.in6),(void const *)(src->addr.in6),
+           sizeof(dest->addr.in6));
+    break;
+    default: dest->family = htons((unsigned short)0);
+  }
+  return;
+}
+
+void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest)
+{
+  dest->family = ntohs(src->family);
+  dest->_pad = (unsigned short)0;
+  switch ((int)dest->family) {
+    case 1: dest->addr.in4 = ntohl(src->addr.in4);
+    break;
+    case 2:
+    memcpy((void *)(dest->addr.in6),(void const *)(src->addr.in6),
+           sizeof(dest->addr.in6));
+    break;
+    default: dest->family = (unsigned short)0;
+  }
+  return;
+}
+
+int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask)
+{
+  int __retres;
+  int i;
+  int d;
+  if ((int)a->family != (int)b->family) {
+    __retres = (int)a->family - (int)b->family;
+    goto return_label;
+  }
+  if (mask) 
+    if ((int)mask->family != (int)b->family) mask = (IPAddr *)0;
+  switch ((int)a->family) {
+    case 0: __retres = 0;
+    goto return_label;
+    case 1: ;
+    if (mask) {
+      __retres = (int)((a->addr.in4 & mask->addr.in4) - (b->addr.in4 & mask->addr.in4));
+      goto return_label;
+    }
+    else {
+      __retres = (int)(a->addr.in4 - b->addr.in4);
+      goto return_label;
+    }
+    case 2: i = 0;
+    d = 0;
+    while (1) {
+      if (! d) {
+        if (! (i < 16)) break;
+      }
+      else break;
+      if (mask) d = ((int)a->addr.in6[i] & (int)mask->addr.in6[i]) - (
+                    (int)b->addr.in6[i] & (int)mask->addr.in6[i]);
+      else d = (int)a->addr.in6[i] - (int)b->addr.in6[i];
+      i ++;
+    }
+    __retres = d;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void UTI_SockaddrToIPAndPort(struct sockaddr *sa, IPAddr *ip,
+                             unsigned short *port)
+{
+  switch ((int)sa->sa_family) {
+    case 2: ip->family = (unsigned short)1;
+    ip->addr.in4 = ntohl(((struct sockaddr_in *)sa)->sin_addr.s_addr);
+    *port = ntohs(((struct sockaddr_in *)sa)->sin_port);
+    break;
+    default: ip->family = (unsigned short)0;
+    *port = (unsigned short)0;
+  }
+  return;
+}
+
+int UTI_IPAndPortToSockaddr(IPAddr *ip, unsigned short port,
+                            struct sockaddr *sa)
+{
+  int __retres;
+  switch ((int)ip->family) {
+    case 1: memset((void *)sa,0,sizeof(struct sockaddr_in));
+    sa->sa_family = (unsigned short)2;
+    ((struct sockaddr_in *)sa)->sin_addr.s_addr = htonl(ip->addr.in4);
+    ((struct sockaddr_in *)sa)->sin_port = htons(port);
+    __retres = (int)sizeof(struct sockaddr_in);
+    goto return_label;
+    default: memset((void *)sa,0,sizeof(struct sockaddr));
+    sa->sa_family = (unsigned short)0;
+    __retres = 0;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: param1), (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param1,
+            *(param0 + (0 ..));
+ */
+int snprintf_va_12(char * __restrict s, size_t n,
+                   char const * __restrict format, char *param0, int param1);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_nstring(param1, param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param1 + (0 ..))), (indirect: param0);
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            *(param1 + (0 ..)), param0;
+ */
+int snprintf_va_13(char * __restrict s, size_t n,
+                   char const * __restrict format, int param0, char *param1);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result \from (indirect: n), (indirect: *(format + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..)));
+ */
+int snprintf_va_14(char * __restrict s, size_t n,
+                   char const * __restrict format);
+
+char *UTI_SockaddrToString(struct sockaddr *sa)
+{
+  unsigned short port;
+  IPAddr ip;
+  char *result;
+  char *sun_path;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  switch ((int)sa->sa_family) {
+    char *tmp;
+    size_t tmp_0;
+    case 2: case 10: UTI_SockaddrToIPAndPort(sa,& ip,& port);
+    ;
+    tmp = UTI_IPToString(& ip);
+    ;
+    snprintf_va_12(result,(unsigned long)64,"%s:%hu",tmp,(int)port);
+    break;
+    case 1: sun_path = ((struct sockaddr_un *)sa)->sun_path;
+    snprintf_va_13(result,(unsigned long)64,"%.*s",64 - 1,sun_path);
+    tmp_0 = strlen((char const *)sun_path);
+    if (tmp_0 >= (size_t)64) *(result + (64 - 2)) = (char)'>';
+    break;
+    default: snprintf_va_14(result,(unsigned long)64,"[UNKNOWN]");
+  }
+  return result;
+}
+
+char const *UTI_SockaddrFamilyToString(int family)
+{
+  char const *__retres;
+  switch (family) {
+    case 2: __retres = "IPv4";
+    goto return_label;
+    case 10: __retres = "IPv6";
+    goto return_label;
+    case 1: __retres = "Unix";
+    goto return_label;
+    case 0: __retres = "UNSPEC";
+    goto return_label;
+    default: __retres = "?";
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result \from (indirect: n), (indirect: *(format + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..)));
+ */
+int snprintf_va_15(char * __restrict s, size_t n,
+                   char const * __restrict format);
+
+char *UTI_TimeToLogForm(time_t t)
+{
+  struct tm *stm;
+  char *result;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  stm = gmtime((time_t const *)(& t));
+  if (stm) strftime(result,(unsigned long)64,"%Y-%m-%d %H:%M:%S",
+                    (struct tm const *)stm);
+  else snprintf_va_15(result,(unsigned long)64,"INVALID    INVALID ");
+  return result;
+}
+
+void UTI_AdjustTimespec(struct timespec *old_ts, struct timespec *when,
+                        struct timespec *new_ts, double *delta_time,
+                        double dfreq, double doffset)
+{
+  double elapsed;
+  elapsed = UTI_DiffTimespecsToDouble(when,old_ts);
+  *delta_time = elapsed * dfreq - doffset;
+  UTI_AddDoubleToTimespec(old_ts,*delta_time,new_ts);
+  return;
+}
+
+void UTI_GetNtp64Fuzz(NTP_int64 *ts, int precision)
+{
+  int start;
+  int bits;
+  int tmp;
+  uint32_t tmp_0;
+  if (precision >= -32) 
+    if (precision <= 32) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  __FC_assert(tmp != 0,"util.c",644,"precision >= -32 && precision <= 32");
+  __FC_assert((sizeof(*ts) == (unsigned long)8) != 0,"util.c",645,
+              "sizeof (*ts) == 8");
+  start = (int)(sizeof(*ts) - (unsigned long)(((precision + 32) + 7) / 8));
+  tmp_0 = (unsigned int)0;
+  ts->lo = tmp_0;
+  ts->hi = tmp_0;
+  UTI_GetRandomBytes((void *)((unsigned char *)ts + start),
+                     (unsigned int)(sizeof(*ts) - (unsigned long)start));
+  bits = (precision + 32) % 8;
+  if (bits) *((unsigned char *)ts + start) = (unsigned char)((unsigned int)*(
+                                                             (unsigned char *)ts + start) % (
+                                                             1U << bits));
+  return;
+}
+
+double UTI_Ntp32ToDouble(NTP_int32 x)
+{
+  double __retres;
+  uint32_t tmp;
+  tmp = ntohl(x);
+  __retres = (double)tmp / 65536.0;
+  return __retres;
+}
+
+NTP_int32 UTI_DoubleToNtp32(double x)
+{
+  NTP_int32 r;
+  NTP_int32 tmp;
+  if (x >= 4294967295.0 / 65536.0) r = 0xffffffff;
+  else 
+    if (x <= 0.0) r = (unsigned int)0;
+    else {
+      x *= 65536.0;
+      r = (unsigned int)x;
+      if ((double)r < x) r += (NTP_int32)1;
+    }
+  tmp = htonl(r);
+  return tmp;
+}
+
+void UTI_ZeroNtp64(NTP_int64 *ts)
+{
+  uint32_t tmp;
+  tmp = htonl((unsigned int)0);
+  ts->lo = tmp;
+  ts->hi = tmp;
+  return;
+}
+
+int UTI_IsZeroNtp64(NTP_int64 *ts)
+{
+  int tmp;
+  if (! ts->hi) 
+    if (! ts->lo) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  return tmp;
+}
+
+int UTI_CompareNtp64(NTP_int64 *a, NTP_int64 *b)
+{
+  int __retres;
+  int32_t diff;
+  uint32_t tmp;
+  uint32_t tmp_0;
+  int tmp_3;
+  uint32_t tmp_1;
+  uint32_t tmp_2;
+  if (a->hi == b->hi) 
+    if (a->lo == b->lo) {
+      __retres = 0;
+      goto return_label;
+    }
+  tmp = ntohl(a->hi);
+  tmp_0 = ntohl(b->hi);
+  diff = (int)(tmp - tmp_0);
+  if (diff < 0) {
+    __retres = -1;
+    goto return_label;
+  }
+  if (diff > 0) {
+    __retres = 1;
+    goto return_label;
+  }
+  tmp_1 = ntohl(a->lo);
+  tmp_2 = ntohl(b->lo);
+  if (tmp_1 < tmp_2) tmp_3 = -1; else tmp_3 = 1;
+  __retres = tmp_3;
+  return_label: return __retres;
+}
+
+int UTI_IsEqualAnyNtp64(NTP_int64 *a, NTP_int64 *b1, NTP_int64 *b2,
+                        NTP_int64 *b3)
+{
+  int __retres;
+  if (b1) 
+    if (a->lo == b1->lo) 
+      if (a->hi == b1->hi) {
+        __retres = 1;
+        goto return_label;
+      }
+  if (b2) 
+    if (a->lo == b2->lo) 
+      if (a->hi == b2->hi) {
+        __retres = 1;
+        goto return_label;
+      }
+  if (b3) 
+    if (a->lo == b3->lo) 
+      if (a->hi == b3->hi) {
+        __retres = 1;
+        goto return_label;
+      }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void UTI_TimespecToNtp64(struct timespec *src, NTP_int64 *dest,
+                         NTP_int64 *fuzz)
+{
+  uint32_t hi;
+  uint32_t lo;
+  uint32_t sec;
+  uint32_t nsec;
+  sec = (unsigned int)src->tv_sec;
+  nsec = (unsigned int)src->tv_nsec;
+  if (! nsec) {
+    if (! sec) {
+      lo = (unsigned int)0;
+      hi = lo;
+    }
+    else goto _LAND;
+  }
+  else {
+    _LAND:
+    {
+      hi = htonl((unsigned int)((unsigned long)sec + 0x83aa7e80UL));
+      lo = htonl((unsigned int)(4.294967296 * (double)nsec));
+      if (fuzz) {
+        hi ^= fuzz->hi;
+        lo ^= fuzz->lo;
+      }
+    }
+  }
+  dest->hi = hi;
+  dest->lo = lo;
+  return;
+}
+
+void UTI_Ntp64ToTimespec(NTP_int64 *src, struct timespec *dest)
+{
+  uint32_t ntp_sec;
+  uint32_t ntp_frac;
+  int tmp;
+  tmp = UTI_IsZeroNtp64(src);
+  if (tmp) {
+    UTI_ZeroTimespec(dest);
+    goto return_label;
+  }
+  ntp_sec = ntohl(src->hi);
+  ntp_frac = ntohl(src->lo);
+  dest->tv_sec = (long)(ntp_sec - (unsigned int)((unsigned long long)(
+                                                 1516643532LL - (long long)(
+                                                 (18250 * 24) * 3600)) + (unsigned long long)0x83aa7e80UL)) + (long)(
+                 1516643532LL - (long long)((18250 * 24) * 3600));
+  dest->tv_nsec = (long)((double)ntp_frac / 4.294967296);
+  return_label: return;
+}
+
+int UTI_IsTimeOffsetSane(struct timespec *ts, double offset)
+{
+  int __retres;
+  double t;
+  double tmp;
+  if (offset > - 4294967296.0) {
+    if (! (offset < 4294967296.0)) {
+      __retres = 0;
+      goto return_label;
+    }
+  }
+  else {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = UTI_TimespecToDouble(ts);
+  t = tmp + offset;
+  if (t < 0.0) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (t < (double)(1516643532LL - (long long)((18250 * 24) * 3600))) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (t > (double)((1516643532LL - (long long)((18250 * 24) * 3600)) + (
+                     1LL << 32))) {
+      __retres = 0;
+      goto return_label;
+    }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+double UTI_Log2ToDouble(int l)
+{
+  double __retres;
+  if (l >= 0) {
+    if (l > 31) l = 31;
+    __retres = (double)((unsigned int)1 << l);
+    goto return_label;
+  }
+  else {
+    if (l < -31) l = -31;
+    __retres = 1.0 / (double)((unsigned int)1 << - l);
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+void UTI_TimespecNetworkToHost(Timespec *src, struct timespec *dest)
+{
+  uint32_t sec_low;
+  uint32_t nsec;
+  uint32_t sec_high;
+  sec_low = ntohl(src->tv_sec_low);
+  sec_high = ntohl(src->tv_sec_high);
+  if (sec_high == (uint32_t)0x7fffffff) sec_high = (unsigned int)0;
+  dest->tv_sec = (long)(((unsigned long)sec_high << 32) | (unsigned long)sec_low);
+  nsec = ntohl(src->tv_nsec);
+  if (nsec < 999999999U) dest->tv_nsec = (long)nsec;
+  else dest->tv_nsec = (long)999999999U;
+  return;
+}
+
+void UTI_TimespecHostToNetwork(struct timespec *src, Timespec *dest)
+{
+  dest->tv_nsec = htonl((unsigned int)src->tv_nsec);
+  dest->tv_sec_high = htonl((unsigned int)((unsigned long)src->tv_sec >> 32));
+  dest->tv_sec_low = htonl((unsigned int)src->tv_sec);
+  return;
+}
+
+double UTI_FloatNetworkToHost(Float f)
+{
+  double __retres;
+  int32_t exp_0;
+  int32_t coef;
+  uint32_t x;
+  double tmp;
+  x = ntohl((unsigned int)f.f);
+  exp_0 = (int)(x >> ((int)sizeof(int32_t) * 8 - 7));
+  if (exp_0 >= 1 << (7 - 1)) exp_0 -= 1 << 7;
+  exp_0 -= (int)sizeof(int32_t) * 8 - 7;
+  coef = (int)(x % (1U << ((int)sizeof(int32_t) * 8 - 7)));
+  if (coef >= 1 << (((int)sizeof(int32_t) * 8 - 7) - 1)) coef -= 1 << (
+                                                                 (int)sizeof(int32_t) * 8 - 7);
+  tmp = pow(2.0,(double)exp_0);
+  ;
+  __retres = (double)coef * tmp;
+  return __retres;
+}
+
+Float UTI_FloatHostToNetwork(double x)
+{
+  int32_t exp_0;
+  int32_t coef;
+  int32_t neg;
+  Float f;
+  uint32_t tmp_2;
+  if (x < 0.0) {
+    x = - x;
+    neg = 1;
+  }
+  else 
+    if (x >= 0.0) neg = 0;
+    else {
+      x = 0.0;
+      neg = 0;
+    }
+  if (x < 1.0e-100) {
+    coef = 0;
+    exp_0 = coef;
+  }
+  else 
+    if (x > 1.0e100) {
+      exp_0 = - (- (1 << (7 - 1))) - 1;
+      coef = (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg;
+    }
+    else {
+      double tmp;
+      double tmp_0;
+      double tmp_1;
+      tmp = log(x);
+      tmp_0 = log((double)2);
+      exp_0 = (int)(tmp / tmp_0 + (double)1);
+      tmp_1 = pow(2.0,(double)(- exp_0 + ((int)sizeof(int32_t) * 8 - 7)));
+      coef = (int)(x * tmp_1 + 0.5);
+      __FC_assert((coef > 0) != 0,"util.c",949,"coef > 0");
+      while (coef > (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg) {
+        coef >>= 1;
+        exp_0 ++;
+      }
+      if (exp_0 > - (- (1 << (7 - 1))) - 1) {
+        exp_0 = - (- (1 << (7 - 1))) - 1;
+        coef = (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg;
+      }
+      else 
+        if (exp_0 < - (1 << (7 - 1))) 
+          if (exp_0 + ((int)sizeof(int32_t) * 8 - 7) >= - (1 << (7 - 1))) {
+            coef >>= - (1 << (7 - 1)) - exp_0;
+            exp_0 = - (1 << (7 - 1));
+          }
+          else {
+            coef = 0;
+            exp_0 = coef;
+          }
+    }
+  if (neg) coef = (int)(((unsigned int)(- coef) << 7) >> 7);
+  tmp_2 = htonl(((unsigned int)exp_0 << ((int)sizeof(int32_t) * 8 - 7)) | (unsigned int)coef);
+  f.f = (int)tmp_2;
+  return f;
+}
+
+int UTI_FdSetCloexec(int fd)
+{
+  int __retres;
+  int flags;
+  flags = __va_fcntl_void(fd,1);
+  if (flags != -1) {
+    int tmp_0;
+    int tmp;
+    flags |= 1;
+    tmp = __va_fcntl_int(fd,2,flags);
+    if (tmp) tmp_0 = 0; else tmp_0 = 1;
+    __retres = tmp_0;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void UTI_SetQuitSignalsHandler(void (*handler)(int ), int ignore_sigpipe)
+{
+  struct sigaction sa;
+  int tmp;
+  int tmp_0;
+  int tmp_1;
+  int tmp_2;
+  int tmp_3;
+  int tmp_4;
+  sa.sa_handler = handler;
+  sa.sa_flags = 0x10000000;
+  tmp = sigemptyset(& sa.sa_mask);
+  if (tmp < 0) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"sigemptyset() failed",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  tmp_0 = sigaction(2,(struct sigaction const *)(& sa),(struct sigaction *)0);
+  if (tmp_0 < 0) {
+    {
+      int __va_arg0 = 2;
+      void *__va_args_13[1] = {& __va_arg0};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_13));
+    }
+    exit(1);
+  }
+  tmp_1 = sigaction(15,(struct sigaction const *)(& sa),
+                    (struct sigaction *)0);
+  if (tmp_1 < 0) {
+    {
+      int __va_arg0_15 = 15;
+      void *__va_args_17[1] = {& __va_arg0_15};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_17));
+    }
+    exit(1);
+  }
+  tmp_2 = sigaction(3,(struct sigaction const *)(& sa),(struct sigaction *)0);
+  if (tmp_2 < 0) {
+    {
+      int __va_arg0_19 = 3;
+      void *__va_args_21[1] = {& __va_arg0_19};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_21));
+    }
+    exit(1);
+  }
+  tmp_3 = sigaction(1,(struct sigaction const *)(& sa),(struct sigaction *)0);
+  if (tmp_3 < 0) {
+    {
+      int __va_arg0_23 = 1;
+      void *__va_args_25[1] = {& __va_arg0_23};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_25));
+    }
+    exit(1);
+  }
+  if (ignore_sigpipe) sa.sa_handler = SIG_IGN;
+  tmp_4 = sigaction(13,(struct sigaction const *)(& sa),
+                    (struct sigaction *)0);
+  if (tmp_4 < 0) {
+    {
+      int __va_arg0_27 = 13;
+      void *__va_args_29[1] = {& __va_arg0_27};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_29));
+    }
+    exit(1);
+  }
+  return;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_16(char * __restrict s, size_t n,
+                   char const * __restrict format, char *param0);
+
+char *UTI_PathToDir(char const *path)
+{
+  char *__retres;
+  char *dir;
+  char *slash;
+  slash = strrchr(path,'/');
+  if (! slash) {
+    char *tmp;
+    tmp = Strdup(".");
+    __retres = tmp;
+    goto return_label;
+  }
+  if ((void *)slash == (void *)path) {
+    char *tmp_0;
+    tmp_0 = Strdup("/");
+    __retres = tmp_0;
+    goto return_label;
+  }
+  dir = (char *)Malloc((unsigned long)((slash - path) + (long)1));
+  snprintf_va_16(dir,(unsigned long)((slash - path) + (long)1),"%s",
+                 (char *)path);
+  __retres = dir;
+  return_label: return __retres;
+}
+
+static int create_dir(char *p, mode_t mode_0, uid_t uid, gid_t gid)
+{
+  int __retres;
+  int status;
+  struct stat buf;
+  int tmp_1;
+  int tmp_3;
+  status = stat((char const *)p,& buf);
+  if (status < 0) {
+    if (__fc_errno != 2) {
+      char *tmp;
+      tmp = strerror(__fc_errno);
+      ;
+      {
+        char *__va_arg0 = p;
+        char *__va_arg1 = tmp;
+        void *__va_args[2] = {& __va_arg0, & __va_arg1};
+        LOG_Message(LOGS_ERR,"Could not access %s : %s",
+                    (void * const *)(__va_args));
+      }
+      __retres = 0;
+      goto return_label;
+    }
+  }
+  else {
+    if ((buf.st_mode & (unsigned int)0170000) == (unsigned int)0040000) {
+      __retres = 1;
+      goto return_label;
+    }
+    {
+      char *__va_arg0_16 = p;
+      void *__va_args_18[1] = {& __va_arg0_16};
+      LOG_Message(LOGS_ERR,"%s is not directory",
+                  (void * const *)(__va_args_18));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  tmp_1 = mkdir((char const *)p,mode_0);
+  if (tmp_1 < 0) {
+    char *tmp_0;
+    tmp_0 = strerror(__fc_errno);
+    ;
+    {
+      char *__va_arg0_20 = p;
+      char *__va_arg1_22 = tmp_0;
+      void *__va_args_24[2] = {& __va_arg0_20, & __va_arg1_22};
+      LOG_Message(LOGS_ERR,"Could not create directory %s : %s",
+                  (void * const *)(__va_args_24));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  tmp_3 = chown((char const *)p,uid,gid);
+  if (tmp_3 < 0) {
+    char *tmp_2;
+    tmp_2 = strerror(__fc_errno);
+    ;
+    {
+      char *__va_arg0_26 = p;
+      char *__va_arg1_28 = tmp_2;
+      void *__va_args_30[2] = {& __va_arg0_26, & __va_arg1_28};
+      LOG_Message(LOGS_ERR,"Could not change ownership of %s : %s",
+                  (void * const *)(__va_args_30));
+    }
+    rmdir((char const *)p);
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int UTI_CreateDirAndParents(char const *path, mode_t mode_0, uid_t uid,
+                            gid_t gid)
+{
+  int __retres;
+  char *p;
+  int i;
+  int j;
+  int k;
+  int last;
+  int tmp;
+  void *tmp_1;
+  size_t tmp_0;
+  tmp = strcmp(path,".");
+  if (! tmp) {
+    __retres = 1;
+    goto return_label;
+  }
+  tmp_0 = strlen(path);
+  tmp_1 = Malloc((size_t)1 + tmp_0);
+  p = (char *)tmp_1;
+  k = 0;
+  i = k;
+  while (1) {
+    {
+      int tmp_2;
+      int tmp_3;
+      tmp_2 = i;
+      i ++;
+      tmp_3 = k;
+      k ++;
+      *(p + tmp_2) = *(path + tmp_3);
+      if ((int)*(path + k) == '/') goto _LOR;
+      else 
+        if (! *(path + k)) {
+          _LOR:
+          {
+            int tmp_7;
+            gid_t tmp_4;
+            uid_t tmp_5;
+            mode_t tmp_6;
+            last = 1;
+            j = k;
+            while (*(path + j)) {
+              if ((int)*(path + j) != '/') {
+                k = j - 1;
+                last = 0;
+                break;
+              }
+              j ++;
+            }
+            *(p + i) = (char)0;
+            if (last) tmp_4 = gid; else tmp_4 = (unsigned int)0;
+            if (last) tmp_5 = uid; else tmp_5 = (unsigned int)0;
+            if (last) tmp_6 = mode_0; else tmp_6 = (unsigned int)0755;
+            ;
+            tmp_7 = create_dir(p,tmp_6,tmp_5,tmp_4);
+            if (! tmp_7) {
+              free((void *)p);
+              __retres = 0;
+              goto return_label;
+            }
+            if (last) break;
+          }
+        }
+      if (! *(path + k)) break;
+    }
+  }
+  free((void *)p);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int UTI_CheckDirPermissions(char const *path, mode_t perm, uid_t uid,
+                            gid_t gid)
+{
+  int __retres;
+  struct stat buf;
+  int tmp_0;
+  tmp_0 = stat(path,& buf);
+  if (tmp_0) {
+    char *tmp;
+    tmp = strerror(__fc_errno);
+    ;
+    {
+      char const *__va_arg0 = path;
+      char *__va_arg1 = tmp;
+      void *__va_args[2] = {& __va_arg0, & __va_arg1};
+      LOG_Message(LOGS_ERR,"Could not access %s : %s",
+                  (void * const *)(__va_args));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  if (! ((buf.st_mode & (unsigned int)0170000) == (unsigned int)0040000)) {
+    {
+      char const *__va_arg0_12 = path;
+      void *__va_args_14[1] = {& __va_arg0_12};
+      LOG_Message(LOGS_ERR,"%s is not directory",
+                  (void * const *)(__va_args_14));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  if ((buf.st_mode & (unsigned int)0777) & ~ perm) {
+    {
+      char const *__va_arg0_16 = path;
+      void *__va_args_18[1] = {& __va_arg0_16};
+      LOG_Message(LOGS_ERR,"Wrong permissions on %s",
+                  (void * const *)(__va_args_18));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  if (buf.st_uid != uid) {
+    {
+      char const *__va_arg0_20 = path;
+      char const *__va_arg1_22 = "UID";
+      uid_t __va_arg2 = uid;
+      void *__va_args_25[3] = {& __va_arg0_20, & __va_arg1_22, & __va_arg2};
+      LOG_Message(LOGS_ERR,"Wrong owner of %s (%s != %u)",
+                  (void * const *)(__va_args_25));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  if (buf.st_gid != gid) {
+    {
+      char const *__va_arg0_27 = path;
+      char const *__va_arg1_29 = "GID";
+      gid_t __va_arg2_31 = gid;
+      void *__va_args_33[3] =
+        {& __va_arg0_27, & __va_arg1_29, & __va_arg2_31};
+      LOG_Message(LOGS_ERR,"Wrong owner of %s (%s != %u)",
+                  (void * const *)(__va_args_33));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void UTI_DropRoot(uid_t uid, gid_t gid)
+{
+  int tmp_0;
+  int tmp_2;
+  int tmp_4;
+  tmp_0 = setgroups((unsigned long)0,(gid_t const *)0);
+  if (tmp_0) {
+    char *tmp;
+    tmp = strerror(__fc_errno);
+    {
+      char *__va_arg0 = tmp;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_FATAL,"setgroups() failed : %s",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  tmp_2 = setgid(gid);
+  if (tmp_2) {
+    char *tmp_1;
+    tmp_1 = strerror(__fc_errno);
+    ;
+    {
+      gid_t __va_arg0_12 = gid;
+      char *__va_arg1 = tmp_1;
+      void *__va_args_15[2] = {& __va_arg0_12, & __va_arg1};
+      LOG_Message(LOGS_FATAL,"setgid(%u) failed : %s",
+                  (void * const *)(__va_args_15));
+    }
+    exit(1);
+  }
+  tmp_4 = setuid(uid);
+  if (tmp_4) {
+    char *tmp_3;
+    tmp_3 = strerror(__fc_errno);
+    ;
+    {
+      uid_t __va_arg0_17 = uid;
+      char *__va_arg1_19 = tmp_3;
+      void *__va_args_21[2] = {& __va_arg0_17, & __va_arg1_19};
+      LOG_Message(LOGS_FATAL,"setuid(%u) failed : %s",
+                  (void * const *)(__va_args_21));
+    }
+    exit(1);
+  }
+  return;
+}
+
+static FILE *UTI_GetRandomBytesUrandom_f = (FILE *)0;
+void UTI_GetRandomBytesUrandom(void *buf, unsigned int len)
+{
+  size_t tmp_0;
+  if (! UTI_GetRandomBytesUrandom_f) UTI_GetRandomBytesUrandom_f = fopen
+                                     ("/dev/urandom","r");
+  if (! UTI_GetRandomBytesUrandom_f) {
+    char *tmp;
+    tmp = strerror(__fc_errno);
+    {
+      char const *__va_arg0 = "/dev/urandom";
+      char *__va_arg1 = tmp;
+      void *__va_args[2] = {& __va_arg0, & __va_arg1};
+      LOG_Message(LOGS_FATAL,"Can\'t open %s : %s",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  tmp_0 = fread(buf,(unsigned long)1,(unsigned long)len,
+                UTI_GetRandomBytesUrandom_f);
+  ;
+  if (tmp_0 != (size_t)len) {
+    {
+      char const *__va_arg0_9 = "/dev/urandom";
+      void *__va_args_11[1] = {& __va_arg0_9};
+      LOG_Message(LOGS_FATAL,"Can\'t read from %s",
+                  (void * const *)(__va_args_11));
+    }
+    exit(1);
+  }
+  return;
+}
+
+void UTI_GetRandomBytes(void *buf, unsigned int len)
+{
+  UTI_GetRandomBytesUrandom(buf,len);
+  return;
+}
+
+void DNS_Name2IPAddressAsync(char const *name,
+                             void (*handler)(DNS_Status status, int n_addrs,
+                                             IPAddr *ip_addrs, void *anything),
+                             void *anything);
+
+void NSD_Initialise(void);
+
+void NSD_Finalise(void);
+
+int NSD_GetAuthDelay(uint32_t key_id);
+
+int NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet,
+                          NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr, int length);
+
+static void resolve_name(int fd, int event, void *anything)
+{
+  struct DNS_Async_Instance *inst;
+  IPAddr addrs[16];
+  DNS_Status status;
+  int i;
+  inst = (struct DNS_Async_Instance *)anything;
+  SCH_RemoveFileHandler(inst->pipe[0]);
+  close(inst->pipe[0]);
+  close(inst->pipe[1]);
+  status = DNS_Name2IPAddress(inst->name,addrs,16);
+  i = 0;
+  while (1) {
+    if (status == (unsigned int)DNS_Success) 
+      if (i < 16) {
+        if (! ((int)addrs[i].family != 0)) break;
+      }
+      else break;
+    else break;
+    i ++;
+  }
+  (*(inst->handler))(status,i,addrs,inst->arg);
+  free((void *)inst);
+  return;
+}
+
+void DNS_Name2IPAddressAsync(char const *name,
+                             void (*handler)(DNS_Status status, int n_addrs,
+                                             IPAddr *ip_addrs, void *anything),
+                             void *anything)
+{
+  struct DNS_Async_Instance *inst;
+  int tmp_0;
+  ssize_t tmp_1;
+  inst = (struct DNS_Async_Instance *)Malloc(sizeof(struct DNS_Async_Instance));
+  inst->name = name;
+  inst->handler = handler;
+  inst->arg = anything;
+  tmp_0 = pipe(inst->pipe);
+  if (tmp_0) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"pipe() failed",(void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  UTI_FdSetCloexec(inst->pipe[0]);
+  UTI_FdSetCloexec(inst->pipe[1]);
+  SCH_AddFileHandler(inst->pipe[0],1,& resolve_name,(void *)inst);
+  tmp_1 = write(inst->pipe[1],(void const *)"",(unsigned long)1);
+  return;
+}
+
+void NSD_Initialise(void)
+{
+  return;
+}
+
+void NSD_Finalise(void)
+{
+  return;
+}
+
+int NSD_GetAuthDelay(uint32_t key_id)
+{
+  int __retres;
+  __retres = 0;
+  return __retres;
+}
+
+int NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet,
+                          NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr, int length)
+{
+  int __retres;
+  __retres = 0;
+  return __retres;
+}
+
+int volatile qsort_nondet;
+int eva_main(void)
+{
+  char argv0[256];
+  char argv1[256];
+  char argv2[256];
+  char argv3[256];
+  char argv4[256];
+  int tmp_0;
+  int argc = Frama_C_interval(0,5);
+  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0};
+  {
+    int i = 0;
+    /*@ loop unroll 5; */
+    while (i < 5) {
+      Frama_C_make_unknown(argv[i],(unsigned long)255);
+      *(argv[i] + 255) = (char)0;
+      i ++;
+    }
+  }
+  tmp_0 = main(argc,argv);
+  return tmp_0;
+}
+
+static struct timespec current_time;
+static NTP_Receive_Buffer req_buffer;
+static NTP_Receive_Buffer res_buffer;
+static int req_length;
+static int res_length;
+static SCH_TimeoutID add_timeout_in_class(double min_delay,
+                                          double separation,
+                                          double randomness,
+                                          SCH_TimeoutClass class,
+                                          void (*handler)(SCH_ArbitraryArgument ),
+                                          SCH_ArbitraryArgument arg)
+{
+  SCH_TimeoutID __retres;
+  __retres = (unsigned int)102;
+  return __retres;
+}
+
+extern SPF_Instance SPF_CreateInstance(int min_samples, int max_samples,
+                                       double max_dispersion,
+                                       double combine_ratio);
+
+extern void SPF_DestroyInstance(SPF_Instance filter);
+
+extern int SPF_AccumulateSample(SPF_Instance filter, NTP_Sample *sample);
+
+extern int SPF_GetNumberOfSamples(SPF_Instance filter);
+
+extern void SPF_DropSamples(SPF_Instance filter);
+
+extern int SPF_GetFilteredSample(SPF_Instance filter, NTP_Sample *sample);
+
+extern void SPF_SlewSamples(SPF_Instance filter, struct timespec *when,
+                            double dfreq, double doffset);
+
+static LOG_FileID logfileid_1;
+static int log_raw_measurements;
+static ARR_Instance broadcasts_0;
+static int server_sock_fd4_0;
+static int server_sock_fd6;
+static ADF_AuthTable access_auth_table;
+static char const leap_chars[4] =
+  {(char)'N', (char)'+', (char)'-', (char)'?'};
+static char const tss_chars[3] = {(char)'D', (char)'K', (char)'H'};
+static void transmit_timeout(void *arg);
+
+static double get_transmit_delay(NCR_Instance inst, int on_tx, double last_tx);
+
+static double get_separation(int poll);
+
+static void do_size_checks(void)
+{
+  __FC_assert((sizeof(NTP_int32) == (unsigned long)4) != 0,"ntp_core.c",324,
+              "sizeof(NTP_int32) == 4");
+  __FC_assert((sizeof(NTP_int64) == (unsigned long)8) != 0,"ntp_core.c",325,
+              "sizeof(NTP_int64) == 8");
+  __FC_assert((0UL == (unsigned long)0) != 0,"ntp_core.c",328,
+              "offsetof(NTP_Packet, lvm) == 0");
+  __FC_assert((1UL == (unsigned long)1) != 0,"ntp_core.c",329,
+              "offsetof(NTP_Packet, stratum) == 1");
+  __FC_assert((2UL == (unsigned long)2) != 0,"ntp_core.c",330,
+              "offsetof(NTP_Packet, poll) == 2");
+  __FC_assert((3UL == (unsigned long)3) != 0,"ntp_core.c",331,
+              "offsetof(NTP_Packet, precision) == 3");
+  __FC_assert((4UL == (unsigned long)4) != 0,"ntp_core.c",332,
+              "offsetof(NTP_Packet, root_delay) == 4");
+  __FC_assert((8UL == (unsigned long)8) != 0,"ntp_core.c",333,
+              "offsetof(NTP_Packet, root_dispersion) == 8");
+  __FC_assert((12UL == (unsigned long)12) != 0,"ntp_core.c",334,
+              "offsetof(NTP_Packet, reference_id) == 12");
+  __FC_assert((16UL == (unsigned long)16) != 0,"ntp_core.c",335,
+              "offsetof(NTP_Packet, reference_ts) == 16");
+  __FC_assert((24UL == (unsigned long)24) != 0,"ntp_core.c",336,
+              "offsetof(NTP_Packet, originate_ts) == 24");
+  __FC_assert((32UL == (unsigned long)32) != 0,"ntp_core.c",337,
+              "offsetof(NTP_Packet, receive_ts) == 32");
+  __FC_assert((40UL == (unsigned long)40) != 0,"ntp_core.c",338,
+              "offsetof(NTP_Packet, transmit_ts) == 40");
+  return;
+}
+
+static void do_time_checks(void)
+{
+  struct timespec now;
+  NTP_int64 nts1;
+  NTP_int64 nts2;
+  int r;
+  int tmp;
+  time_t warning_advance = (long)(((3600 * 24) * 365) * 10);
+  struct timespec ts1 =
+    {.tv_sec = (long)(1516643532LL - (long long)((18250 * 24) * 3600)),
+     .tv_nsec = (long)1};
+  struct timespec ts2 =
+    {.tv_sec = (long)((1516643532LL - (long long)((18250 * 24) * 3600)) - (long long)1),
+     .tv_nsec = (long)1};
+  UTI_TimespecToNtp64(& ts1,& nts1,(NTP_int64 *)0);
+  UTI_TimespecToNtp64(& ts2,& nts2,(NTP_int64 *)0);
+  UTI_Ntp64ToTimespec(& nts1,& ts1);
+  UTI_Ntp64ToTimespec(& nts2,& ts2);
+  if ((long long)ts1.tv_sec == 1516643532LL - (long long)((18250 * 24) * 3600)) 
+    if (((unsigned long long)ts1.tv_sec + (1ULL << 32)) - (unsigned long long)1 == (unsigned long long)ts2.tv_sec) 
+      tmp = 1;
+    else tmp = 0;
+  else tmp = 0;
+  r = tmp;
+  __FC_assert(r != 0,"ntp_core.c",364,"r");
+  now = current_time;
+  if (ts2.tv_sec - now.tv_sec < warning_advance) {
+    char *tmp_0;
+    tmp_0 = UTI_TimeToLogForm(ts2.tv_sec);
+    {
+      char *__va_arg0 = tmp_0;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_WARN,"Assumed NTP time ends at %s!",
+                  (void * const *)(__va_args));
+    }
+  }
+  return;
+}
+
+static void zero_local_timestamp(NTP_Local_Timestamp *ts)
+{
+  UTI_ZeroTimespec(& ts->ts);
+  ts->err = 0.0;
+  ts->source = NTP_TS_DAEMON;
+  return;
+}
+
+void NCR_Initialise(void)
+{
+  int tmp;
+  do_size_checks();
+  do_time_checks();
+  tmp = CNF_GetLogMeasurements(& log_raw_measurements);
+  if (tmp) logfileid_1 = LOG_FileOpen("measurements",
+                                      "   Date (UTC) Time     IP Address   L St 123 567 ABCD  LP RP Score    Offset  Peer del. Peer disp.  Root del. Root disp. Refid     MTxRx");
+  else logfileid_1 = -1;
+  access_auth_table = ADF_CreateTable();
+  broadcasts_0 = ARR_CreateInstance((unsigned int)sizeof(BroadcastDestination));
+  server_sock_fd4_0 = -2;
+  server_sock_fd6 = -2;
+  return;
+}
+
+void NCR_Finalise(void)
+{
+  unsigned int i;
+  if (server_sock_fd4_0 != -2) __FC_assert((server_sock_fd4_0 == 100) != 0,
+                                           "ntp_core.c",414,
+                                           "server_sock_fd4 == 100");
+  if (server_sock_fd6 != -2) __FC_assert((server_sock_fd6 == 100) != 0,
+                                         "ntp_core.c",416,
+                                         "server_sock_fd6 == 100");
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    void *tmp;
+    tmp_0 = ARR_GetSize(broadcasts_0);
+    ;
+    if (! (i < tmp_0)) break;
+    tmp = ARR_GetElement(broadcasts_0,i);
+    ;
+    __FC_assert((((BroadcastDestination *)tmp)->local_addr.sock_fd == 100) != 0,
+                "ntp_core.c",419,
+                "((BroadcastDestination *)ARR_GetElement(broadcasts, i))->local_addr.sock_fd == 100");
+    i ++;
+  }
+  ARR_DestroyInstance(broadcasts_0);
+  ADF_DestroyTable(access_auth_table);
+  return;
+}
+
+static void restart_timeout(NCR_Instance inst, double delay)
+{
+  int tmp;
+  int tmp_0;
+  int tmp_1;
+  double tmp_2;
+  if (inst->tx_suspended) {
+    __FC_assert(! inst->tx_timeout_id != 0,"ntp_core.c",432,
+                "!inst->tx_timeout_id");
+    goto return_label;
+  }
+  if (! inst->rx_timeout_id) tmp = 1;
+  else 
+    if (inst->rx_timeout_id == (SCH_TimeoutID)102) tmp = 1; else tmp = 0;
+  __FC_assert(tmp != 0,"ntp_core.c",437,
+              "!inst->rx_timeout_id || inst->rx_timeout_id == 102");
+  inst->rx_timeout_id = (unsigned int)0;
+  if (! inst->tx_timeout_id) tmp_0 = 1;
+  else 
+    if (inst->tx_timeout_id == (SCH_TimeoutID)102) tmp_0 = 1; else tmp_0 = 0;
+  __FC_assert(tmp_0 != 0,"ntp_core.c",439,
+              "!inst->tx_timeout_id || inst->tx_timeout_id == 102");
+  ;
+  if (inst->mode == (unsigned int)MODE_CLIENT) tmp_1 = SCH_NtpClientClass;
+  else tmp_1 = SCH_NtpPeerClass;
+  tmp_2 = get_separation(inst->local_poll);
+  ;
+  inst->tx_timeout_id = add_timeout_in_class(delay,tmp_2,0.02,
+                                             (enum __anonenum_SCH_TimeoutClass_30)tmp_1,
+                                             & transmit_timeout,(void *)inst);
+  return_label: return;
+}
+
+static void start_initial_timeout(NCR_Instance inst)
+{
+  double delay;
+  double last_tx;
+  struct timespec now;
+  double tmp;
+  if (! inst->tx_timeout_id) SRC_SetActive(inst->source);
+  SCH_GetLastEventTime(& now,(double *)0,(struct timespec *)0);
+  last_tx = UTI_DiffTimespecsToDouble(& now,& inst->local_tx.ts);
+  if (last_tx < 0.0) last_tx = 0.0;
+  tmp = get_transmit_delay(inst,0,0.0);
+  delay = tmp - last_tx;
+  if (delay < 0.2) delay = 0.2;
+  restart_timeout(inst,delay);
+  return;
+}
+
+static void close_client_socket(NCR_Instance inst)
+{
+  int tmp;
+  if (inst->mode == (unsigned int)MODE_CLIENT) 
+    if (inst->local_addr.sock_fd != -2) {
+      __FC_assert((inst->local_addr.sock_fd == 101) != 0,"ntp_core.c",484,
+                  "inst->local_addr.sock_fd == 101");
+      inst->local_addr.sock_fd = -2;
+    }
+  if (! inst->rx_timeout_id) tmp = 1;
+  else 
+    if (inst->rx_timeout_id == (SCH_TimeoutID)102) tmp = 1; else tmp = 0;
+  __FC_assert(tmp != 0,"ntp_core.c",488,
+              "!inst->rx_timeout_id || inst->rx_timeout_id == 102");
+  inst->rx_timeout_id = (unsigned int)0;
+  return;
+}
+
+static void take_offline(NCR_Instance inst)
+{
+  int tmp;
+  inst->opmode = MD_OFFLINE;
+  if (! inst->tx_timeout_id) tmp = 1;
+  else 
+    if (inst->tx_timeout_id == (SCH_TimeoutID)102) tmp = 1; else tmp = 0;
+  __FC_assert(tmp != 0,"ntp_core.c",499,
+              "!inst->tx_timeout_id || inst->tx_timeout_id == 102");
+  inst->tx_timeout_id = (unsigned int)0;
+  SRC_UnsetActive(inst->source);
+  close_client_socket(inst);
+  NCR_ResetInstance(inst);
+  return;
+}
+
+NCR_Instance NCR_GetInstance(NTP_Remote_Address *remote_addr,
+                             NTP_Source_Type type, SourceParameters *params)
+{
+  NCR_Instance result;
+  double tmp_0;
+  double tmp_2;
+  double tmp_4;
+  uint32_t tmp_13;
+  result = (NCR_Instance)Malloc(sizeof(struct NCR_Instance_Record));
+  result->remote_addr = *remote_addr;
+  result->local_addr.ip_addr.family = (unsigned short)0;
+  result->local_addr.if_index = -1;
+  switch (type) {
+    case (NTP_Source_Type)NTP_SERVER: result->local_addr.sock_fd = -2;
+    result->mode = MODE_CLIENT;
+    break;
+    case (NTP_Source_Type)NTP_PEER:
+    if ((int)remote_addr->ip_addr.family != 0) result->local_addr.sock_fd = 100;
+    else result->local_addr.sock_fd = 0;
+    result->mode = MODE_ACTIVE;
+    break;
+    default: __FC_assert(0 != 0,"ntp_core.c",537,"0");
+  }
+  result->interleaved = params->interleaved;
+  result->minpoll = params->minpoll;
+  if (result->minpoll < -6) result->minpoll = 6;
+  else 
+    if (result->minpoll > 24) result->minpoll = 24;
+  result->maxpoll = params->maxpoll;
+  if (result->maxpoll < -6) result->maxpoll = 10;
+  else 
+    if (result->maxpoll > 24) result->maxpoll = 24;
+  if (result->maxpoll < result->minpoll) result->maxpoll = result->minpoll;
+  result->min_stratum = params->min_stratum;
+  if (result->min_stratum >= 16) result->min_stratum = 16 - 1;
+  result->presend_minpoll = params->presend_minpoll;
+  if (result->presend_minpoll <= 24) 
+    if (result->mode != (unsigned int)MODE_CLIENT) result->presend_minpoll = 
+                                                   24 + 1;
+  if (params->max_delay < 1.0e3) tmp_0 = params->max_delay;
+  else tmp_0 = 1.0e3;
+  if (0.0 > tmp_0) result->max_delay = 0.0;
+  else {
+    double tmp_1;
+    if (params->max_delay < 1.0e3) tmp_1 = params->max_delay;
+    else tmp_1 = 1.0e3;
+    result->max_delay = tmp_1;
+  }
+  if (params->max_delay_ratio < 1.0e6) tmp_2 = params->max_delay_ratio;
+  else tmp_2 = 1.0e6;
+  if (0.0 > tmp_2) result->max_delay_ratio = 0.0;
+  else {
+    double tmp_3;
+    if (params->max_delay_ratio < 1.0e6) tmp_3 = params->max_delay_ratio;
+    else tmp_3 = 1.0e6;
+    result->max_delay_ratio = tmp_3;
+  }
+  if (params->max_delay_dev_ratio < 1.0e6) tmp_4 = params->max_delay_dev_ratio;
+  else tmp_4 = 1.0e6;
+  if (0.0 > tmp_4) result->max_delay_dev_ratio = 0.0;
+  else {
+    double tmp_5;
+    if (params->max_delay_dev_ratio < 1.0e6) tmp_5 = params->max_delay_dev_ratio;
+    else tmp_5 = 1.0e6;
+    result->max_delay_dev_ratio = tmp_5;
+  }
+  result->offset_correction = params->offset;
+  result->auto_burst = params->burst;
+  result->auto_offline = params->auto_offline;
+  result->poll_target = params->poll_target;
+  result->version = 4;
+  if (params->authkey == (uint32_t)0) {
+    result->auth_mode = AUTH_NONE;
+    result->auth_key_id = (unsigned int)0;
+  }
+  else {
+    int tmp_9;
+    int tmp_10;
+    result->auth_mode = AUTH_SYMMETRIC;
+    result->auth_key_id = params->authkey;
+    tmp_9 = KEY_KeyKnown(result->auth_key_id);
+    if (tmp_9) {
+      int tmp_8;
+      tmp_8 = KEY_CheckKeyLength(result->auth_key_id);
+      if (! tmp_8) {
+        char *tmp_7;
+        tmp_7 = UTI_IPToString(& result->remote_addr.ip_addr);
+        ;
+        {
+          uint32_t __va_arg0 = result->auth_key_id;
+          char *__va_arg1 = tmp_7;
+          char const *__va_arg2 = "too short";
+          void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2};
+          LOG_Message(LOGS_WARN,"Key %u used by source %s is %s",
+                      (void * const *)(__va_args));
+        }
+      }
+    }
+    else {
+      char *tmp_6;
+      tmp_6 = UTI_IPToString(& result->remote_addr.ip_addr);
+      ;
+      {
+        uint32_t __va_arg0_26 = result->auth_key_id;
+        char *__va_arg1_28 = tmp_6;
+        char const *__va_arg2_30 = "missing";
+        void *__va_args_32[3] =
+          {& __va_arg0_26, & __va_arg1_28, & __va_arg2_30};
+        LOG_Message(LOGS_WARN,"Key %u used by source %s is %s",
+                    (void * const *)(__va_args_32));
+      }
+    }
+    tmp_10 = KEY_GetAuthLength(result->auth_key_id);
+    if (tmp_10 + 4 > 4 + 20) result->version = 3;
+  }
+  if (params->version) {
+    int tmp_11;
+    if (params->version < 4) tmp_11 = params->version; else tmp_11 = 4;
+    if (1 > tmp_11) result->version = 1;
+    else {
+      int tmp_12;
+      if (params->version < 4) tmp_12 = params->version; else tmp_12 = 4;
+      result->version = tmp_12;
+    }
+  }
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  tmp_13 = UTI_IPToRefid(& remote_addr->ip_addr);
+  result->source = SRC_CreateNewInstance(tmp_13,SRC_NTP,params->sel_options,
+                                         & result->remote_addr.ip_addr,
+                                         params->min_samples,
+                                         params->max_samples,
+                                         params->min_delay,params->asymmetry);
+  if (params->filter_length >= 1) result->filter = SPF_CreateInstance
+                                  (params->filter_length,
+                                   params->filter_length,16.0,0.0);
+  else result->filter = (struct SPF_Instance_Record *)0;
+  result->rx_timeout_id = (unsigned int)0;
+  result->tx_timeout_id = (unsigned int)0;
+  result->tx_suspended = 1;
+  if (params->connectivity == (unsigned int)SRC_ONLINE) result->opmode = MD_ONLINE;
+  else 
+    if (params->connectivity == (unsigned int)SRC_MAYBE_ONLINE) {
+      int tmp_14;
+      tmp_14 = NIO_IsServerConnectable(remote_addr);
+      if (tmp_14) result->opmode = MD_ONLINE;
+      else result->opmode = MD_OFFLINE;
+    }
+    else result->opmode = MD_OFFLINE;
+  result->local_poll = result->minpoll;
+  result->poll_score = 0.0;
+  zero_local_timestamp(& result->local_tx);
+  result->burst_good_samples_to_go = 0;
+  result->burst_total_samples_to_go = 0;
+  memset((void *)(& result->report),0,sizeof(result->report));
+  NCR_ResetInstance(result);
+  if (params->iburst) NCR_InitiateSampleBurst(result,4,8);
+  return result;
+}
+
+void NCR_DestroyInstance(NCR_Instance instance)
+{
+  if (instance->opmode != (unsigned int)MD_OFFLINE) take_offline(instance);
+  if (instance->mode == (unsigned int)MODE_ACTIVE) __FC_assert((instance->local_addr.sock_fd == 100) != 0,
+                                                               "ntp_core.c",
+                                                               645,
+                                                               "instance->local_addr.sock_fd == 100");
+  if (instance->filter) SPF_DestroyInstance(instance->filter);
+  SRC_DestroyInstance(instance->source);
+  free((void *)instance);
+  return;
+}
+
+void NCR_StartInstance(NCR_Instance instance)
+{
+  instance->tx_suspended = 0;
+  if (instance->opmode != (unsigned int)MD_OFFLINE) start_initial_timeout
+                                                    (instance);
+  return;
+}
+
+void NCR_ResetInstance(NCR_Instance instance)
+{
+  instance->tx_count = (unsigned int)0;
+  instance->presend_done = 0;
+  instance->remote_poll = 0;
+  instance->remote_stratum = 0;
+  instance->valid_rx = 0;
+  instance->valid_timestamps = 0;
+  UTI_ZeroNtp64(& instance->remote_ntp_rx);
+  UTI_ZeroNtp64(& instance->remote_ntp_tx);
+  UTI_ZeroNtp64(& instance->local_ntp_rx);
+  UTI_ZeroNtp64(& instance->local_ntp_tx);
+  zero_local_timestamp(& instance->local_rx);
+  zero_local_timestamp(& instance->prev_local_tx);
+  instance->prev_local_poll = 0;
+  instance->prev_tx_count = (unsigned int)0;
+  instance->updated_init_timestamps = 0;
+  UTI_ZeroNtp64(& instance->init_remote_ntp_tx);
+  zero_local_timestamp(& instance->init_local_rx);
+  if (instance->filter) SPF_DropSamples(instance->filter);
+  return;
+}
+
+void NCR_ResetPoll(NCR_Instance instance)
+{
+  if (instance->local_poll != instance->minpoll) {
+    instance->local_poll = instance->minpoll;
+    if (instance->tx_timeout_id) {
+      double tmp;
+      tmp = get_transmit_delay(instance,0,0.0);
+      ;
+      restart_timeout(instance,tmp);
+    }
+  }
+  return;
+}
+
+void NCR_ChangeRemoteAddress(NCR_Instance inst,
+                             NTP_Remote_Address *remote_addr)
+{
+  uint32_t tmp;
+  memset((void *)(& inst->report),0,sizeof(inst->report));
+  NCR_ResetInstance(inst);
+  inst->remote_addr = *remote_addr;
+  if (inst->mode == (unsigned int)MODE_CLIENT) close_client_socket(inst);
+  else {
+    __FC_assert((inst->local_addr.sock_fd == 100) != 0,"ntp_core.c",726,
+                "inst->local_addr.sock_fd == 100");
+    inst->local_addr.ip_addr.family = (unsigned short)0;
+    inst->local_addr.if_index = -1;
+    if ((int)remote_addr->ip_addr.family != 0) inst->local_addr.sock_fd = 100;
+    else inst->local_addr.sock_fd = 0;
+  }
+  ;
+  tmp = UTI_IPToRefid(& remote_addr->ip_addr);
+  ;
+  SRC_SetRefid(inst->source,tmp,& inst->remote_addr.ip_addr);
+  SRC_ResetInstance(inst->source);
+  return;
+}
+
+static void adjust_poll(NCR_Instance inst, double adj)
+{
+  inst->poll_score += adj;
+  if (inst->poll_score >= 1.0) {
+    inst->local_poll += (int)inst->poll_score;
+    inst->poll_score -= (double)((int)inst->poll_score);
+  }
+  if (inst->poll_score < 0.0) {
+    inst->local_poll += (int)(inst->poll_score - 1.0);
+    inst->poll_score -= (double)((int)(inst->poll_score - 1.0));
+  }
+  if (inst->local_poll < inst->minpoll) {
+    inst->local_poll = inst->minpoll;
+    inst->poll_score = (double)0;
+  }
+  else 
+    if (inst->local_poll > inst->maxpoll) {
+      inst->local_poll = inst->maxpoll;
+      inst->poll_score = 1.0;
+    }
+  if (inst->local_poll < 0) {
+    int tmp;
+    tmp = SRC_IsReachable(inst->source);
+    if (tmp) {
+      double tmp_1;
+      SST_Stats tmp_0;
+      tmp_0 = SRC_GetSourcestats(inst->source);
+      tmp_1 = SST_MinRoundTripDelay(tmp_0);
+      if (tmp_1 > 0.01) inst->local_poll = 0;
+    }
+    else inst->local_poll = 0;
+  }
+  return;
+}
+
+static double get_poll_adj(NCR_Instance inst, double error_in_estimate,
+                           double peer_distance)
+{
+  double poll_adj;
+  int samples;
+  if (error_in_estimate > peer_distance) {
+    double tmp;
+    double tmp_0;
+    tmp = log(error_in_estimate / peer_distance);
+    tmp_0 = log(2.0);
+    poll_adj = - tmp / tmp_0;
+  }
+  else {
+    SST_Stats tmp_1;
+    tmp_1 = SRC_GetSourcestats(inst->source);
+    samples = SST_Samples(tmp_1);
+    poll_adj = ((double)samples / (double)inst->poll_target - 1.0) / (double)inst->poll_target;
+    if (samples < inst->poll_target) poll_adj *= 2.0;
+  }
+  return poll_adj;
+}
+
+static int get_transmit_poll(NCR_Instance inst)
+{
+  int poll;
+  poll = inst->local_poll;
+  if (inst->mode == (unsigned int)MODE_ACTIVE) 
+    if (poll > inst->remote_poll) {
+      int tmp;
+      tmp = SRC_IsReachable(inst->source);
+      if (tmp) 
+        if (inst->remote_poll > inst->minpoll) poll = inst->remote_poll;
+        else poll = inst->minpoll;
+    }
+  return poll;
+}
+
+static double get_transmit_delay(NCR_Instance inst, int on_tx, double last_tx)
+{
+  int poll_to_use;
+  int stratum_diff;
+  double delay_time;
+  poll_to_use = get_transmit_poll(inst);
+  delay_time = UTI_Log2ToDouble(poll_to_use);
+  switch (inst->opmode) {
+    case (OperatingMode)MD_OFFLINE: __FC_assert(0 != 0,"ntp_core.c",844,"0");
+    break;
+    case (OperatingMode)MD_ONLINE: ;
+    switch (inst->mode) {
+      int tmp;
+      case (NTP_Mode)MODE_CLIENT: ;
+      if (inst->presend_done) delay_time = 2.0;
+      break;
+      case (NTP_Mode)MODE_ACTIVE:
+      { /* sequence */
+        tmp = REF_GetOurStratum();
+        stratum_diff = inst->remote_stratum - tmp;
+      }
+      if (stratum_diff > 0) {
+        if (last_tx * 1.1 < delay_time) delay_time *= 1.1; else goto _LAND;
+      }
+      else 
+        _LAND:
+        if (! on_tx) 
+          if (! stratum_diff) 
+            if (last_tx / delay_time > 1.1 - 0.5) delay_time *= 1.1;
+      if (last_tx > 0.0) delay_time -= last_tx;
+      if (delay_time < 0.0) delay_time = 0.0;
+      break;
+      default: __FC_assert(0 != 0,"ntp_core.c",873,"0");
+      break;
+    }
+    break;
+    case (OperatingMode)MD_BURST_WAS_ONLINE:
+    case (OperatingMode)MD_BURST_WAS_OFFLINE:
+    if (2.0 < 0.25 * delay_time) delay_time = 2.0;
+    else delay_time = 0.25 * delay_time;
+    break;
+    default: __FC_assert(0 != 0,"ntp_core.c",884,"0");
+    break;
+  }
+  return delay_time;
+}
+
+static double get_separation(int poll)
+{
+  double separation;
+  int tmp;
+  double tmp_2;
+  double tmp_0;
+  if (poll >= -6) 
+    if (poll <= 24) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  __FC_assert(tmp != 0,"ntp_core.c",899,
+              "poll >= MIN_POLL && poll <= MAX_POLL");
+  separation = UTI_Log2ToDouble(poll - 3);
+  if (separation < 0.2) tmp_0 = separation; else tmp_0 = 0.2;
+  if (0.002 > tmp_0) tmp_2 = 0.002;
+  else {
+    double tmp_1;
+    if (separation < 0.2) tmp_1 = separation; else tmp_1 = 0.2;
+    tmp_2 = tmp_1;
+  }
+  return tmp_2;
+}
+
+static void receive_timeout(void *arg)
+{
+  NCR_Instance inst = (struct NCR_Instance_Record *)arg;
+  inst->rx_timeout_id = (unsigned int)0;
+  close_client_socket(inst);
+  return;
+}
+
+static int transmit_packet(NTP_Mode my_mode, int interleaved, int my_poll,
+                           int version, int auth_mode, uint32_t key_id,
+                           NTP_int64 *remote_ntp_rx,
+                           NTP_int64 *remote_ntp_tx,
+                           NTP_Local_Timestamp *local_rx,
+                           NTP_Local_Timestamp *local_tx,
+                           NTP_int64 *local_ntp_rx, NTP_int64 *local_ntp_tx,
+                           NTP_Remote_Address *where_to,
+                           NTP_Local_Address *from)
+{
+  int __retres;
+  NTP_Packet message;
+  int auth_len;
+  int max_auth_len;
+  int length;
+  int ret;
+  int precision;
+  struct timespec local_receive;
+  struct timespec local_transmit;
+  double smooth_offset_0;
+  double local_transmit_err;
+  NTP_int64 ts_fuzz;
+  int are_we_synchronised_0;
+  int our_stratum_0;
+  int smooth_time;
+  NTP_Leap leap_status;
+  uint32_t our_ref_id_0;
+  struct timespec our_ref_time_0;
+  double our_root_delay_0;
+  double our_root_dispersion_0;
+  if (version > 4) version = 4;
+  if (interleaved) 
+    if (! remote_ntp_rx) interleaved = 0;
+    else 
+      if (! local_tx) interleaved = 0;
+      else {
+        int tmp;
+        tmp = UTI_IsZeroTimespec(& local_tx->ts);
+        if (tmp) interleaved = 0;
+      }
+  smooth_time = 0;
+  smooth_offset_0 = 0.0;
+  if (my_mode == (unsigned int)MODE_CLIENT) {
+    precision = 32;
+    our_ref_id_0 = (unsigned int)0;
+    our_stratum_0 = (int)our_ref_id_0;
+    leap_status = (enum __anonenum_NTP_Leap_7)our_stratum_0;
+    our_root_dispersion_0 = 0.0;
+    our_root_delay_0 = our_root_dispersion_0;
+    UTI_ZeroTimespec(& our_ref_time_0);
+  }
+  else {
+    int tmp_3;
+    long tmp_4;
+    SCH_GetLastEventTime(& local_transmit,(double *)0,(struct timespec *)0);
+    REF_GetReferenceParams(& local_transmit,& are_we_synchronised_0,
+                           & leap_status,& our_stratum_0,& our_ref_id_0,
+                           & our_ref_time_0,& our_root_delay_0,
+                           & our_root_dispersion_0);
+    tmp_3 = SMT_IsEnabled();
+    if (tmp_3) 
+      if (my_mode == (unsigned int)MODE_SERVER) goto _LOR;
+      else 
+        if (my_mode == (unsigned int)MODE_BROADCAST) {
+          _LOR:
+          {
+            double tmp_0;
+            double tmp_1;
+            REF_LeapMode tmp_2;
+            smooth_offset_0 = SMT_GetOffset(& local_transmit);
+            tmp_0 = fabs(smooth_offset_0);
+            tmp_1 = LCL_GetSysPrecisionAsQuantum();
+            smooth_time = tmp_0 > tmp_1;
+            tmp_2 = REF_GetLeapMode();
+            if (tmp_2 == (unsigned int)REF_LeapModeSlew) 
+              if (leap_status == (unsigned int)LEAP_InsertSecond) leap_status = LEAP_Normal;
+              else 
+                if (leap_status == (unsigned int)LEAP_DeleteSecond) leap_status = LEAP_Normal;
+          }
+        }
+    tmp_4 = random();
+    precision = (int)(tmp_4 % (long)10 - (long)30);
+  }
+  if (smooth_time) {
+    int tmp_5;
+    tmp_5 = UTI_IsZeroTimespec(& local_rx->ts);
+    if (tmp_5) goto _LAND;
+    else {
+      our_ref_id_0 = (unsigned int)0x7F7F01FFUL;
+      UTI_AddDoubleToTimespec(& our_ref_time_0,smooth_offset_0,
+                              & our_ref_time_0);
+      UTI_AddDoubleToTimespec(& local_rx->ts,smooth_offset_0,& local_receive);
+    }
+  }
+  else _LAND: local_receive = local_rx->ts;
+  message.lvm = (unsigned char)((((leap_status << 6) & (unsigned int)0xc0) | (unsigned int)(
+                                 (version << 3) & 0x38)) | (my_mode & (unsigned int)0x07));
+  if (our_stratum_0 < 16) message.stratum = (unsigned char)our_stratum_0;
+  else message.stratum = (unsigned char)0;
+  message.poll = (signed char)my_poll;
+  message.precision = (signed char)precision;
+  message.root_delay = UTI_DoubleToNtp32(our_root_delay_0);
+  message.root_dispersion = UTI_DoubleToNtp32(our_root_dispersion_0);
+  message.reference_id = htonl(our_ref_id_0);
+  UTI_TimespecToNtp64(& our_ref_time_0,& message.reference_ts,(NTP_int64 *)0);
+  if (my_mode != (unsigned int)MODE_CLIENT) goto _LOR_0;
+  else 
+    if (interleaved) {
+      _LOR_0:
+      {
+        if (interleaved) message.originate_ts = *remote_ntp_rx;
+        else message.originate_ts = *remote_ntp_tx;
+        while (1) {
+          int tmp_6;
+          UTI_GetNtp64Fuzz(& ts_fuzz,precision);
+          UTI_TimespecToNtp64(& local_receive,& message.receive_ts,& ts_fuzz);
+          tmp_6 = UTI_IsZeroNtp64(& message.receive_ts);
+          if (tmp_6) break;
+          else {
+            int tmp_7;
+            tmp_7 = UTI_IsEqualAnyNtp64(& message.receive_ts,
+                                        & message.originate_ts,local_ntp_rx,
+                                        (NTP_int64 *)0);
+            if (! tmp_7) break;
+          }
+        }
+      }
+    }
+    else {
+      UTI_ZeroNtp64(& message.originate_ts);
+      UTI_ZeroNtp64(& message.receive_ts);
+    }
+  while (1) {
+    int tmp_14;
+    UTI_GetNtp64Fuzz(& ts_fuzz,precision);
+    {
+      double *p = & local_transmit_err;
+      local_transmit = current_time;
+      if (p) *p = 0.0;
+    }
+    if (smooth_time) UTI_AddDoubleToTimespec(& local_transmit,
+                                             smooth_offset_0,
+                                             & local_transmit);
+    length = 48;
+    if (auth_mode == AUTH_SYMMETRIC) goto _LOR_1;
+    else 
+      if (auth_mode == AUTH_MSSNTP) {
+        _LOR_1:
+        {
+          int tmp_10;
+          struct timespec *tmp_11;
+          if (auth_mode == AUTH_SYMMETRIC) tmp_10 = KEY_GetAuthDelay(key_id);
+          else tmp_10 = NSD_GetAuthDelay(key_id);
+          local_transmit.tv_nsec += (long)tmp_10;
+          UTI_NormaliseTimespec(& local_transmit);
+          if (interleaved) tmp_11 = & local_tx->ts;
+          else tmp_11 = & local_transmit;
+          UTI_TimespecToNtp64(tmp_11,& message.transmit_ts,& ts_fuzz);
+          if (auth_mode == AUTH_SYMMETRIC) {
+            if (version == 4) max_auth_len = (4 + 20) - 4;
+            else max_auth_len = (int)sizeof(message.auth_data);
+            auth_len = KEY_GenerateAuth(key_id,
+                                        (unsigned char const *)(& message),
+                                        48,
+                                        (unsigned char *)(& message.auth_data),
+                                        max_auth_len);
+            if (! auth_len) {
+              __retres = 0;
+              goto return_label;
+            }
+            message.auth_keyid = htonl(key_id);
+            length = (int)((unsigned long)length + (sizeof(message.auth_keyid) + (unsigned long)auth_len));
+          }
+          else 
+            if (auth_mode == AUTH_MSSNTP) {
+              int tmp_12;
+              tmp_12 = NSD_SignAndSendPacket(key_id,& message,where_to,from,
+                                             length);
+              __retres = tmp_12;
+              goto return_label;
+            }
+        }
+      }
+      else {
+        struct timespec *tmp_13;
+        if (interleaved) tmp_13 = & local_tx->ts;
+        else tmp_13 = & local_transmit;
+        UTI_TimespecToNtp64(tmp_13,& message.transmit_ts,& ts_fuzz);
+      }
+    tmp_14 = UTI_IsZeroNtp64(& message.transmit_ts);
+    if (tmp_14) break;
+    else {
+      int tmp_15;
+      tmp_15 = UTI_IsEqualAnyNtp64(& message.transmit_ts,
+                                   & message.receive_ts,
+                                   & message.originate_ts,local_ntp_tx);
+      if (! tmp_15) break;
+    }
+  }
+  memcpy((void *)(& req_buffer),(void const *)(& message),
+         (unsigned long)length);
+  req_length = length;
+  ret = 1;
+  if (local_tx) {
+    local_tx->ts = local_transmit;
+    local_tx->err = local_transmit_err;
+    local_tx->source = NTP_TS_DAEMON;
+  }
+  if (local_ntp_rx) *local_ntp_rx = message.receive_ts;
+  if (local_ntp_tx) *local_ntp_tx = message.transmit_ts;
+  __retres = ret;
+  return_label: return __retres;
+}
+
+static void transmit_timeout(void *arg)
+{
+  NTP_Local_Address local_addr;
+  int interleaved;
+  int initial;
+  int sent;
+  int tmp_1;
+  int tmp_3;
+  NTP_Local_Timestamp *tmp_4;
+  NTP_int64 *tmp_5;
+  NTP_int64 *tmp_6;
+  double tmp_10;
+  NCR_Instance inst = (struct NCR_Instance_Record *)arg;
+  inst->tx_timeout_id = (unsigned int)0;
+  switch (inst->opmode) {
+    case (OperatingMode)MD_BURST_WAS_ONLINE: ;
+    if (inst->burst_total_samples_to_go <= 1) inst->opmode = MD_ONLINE;
+    break;
+    case (OperatingMode)MD_BURST_WAS_OFFLINE: ;
+    if (inst->burst_total_samples_to_go <= 0) take_offline(inst);
+    break;
+    case (OperatingMode)MD_ONLINE: ;
+    if (inst->auto_burst) 
+      if (inst->local_poll > inst->minpoll) {
+        int tmp;
+        if (1 << (inst->local_poll - inst->minpoll) < 4) tmp = 1 << (
+                                                               inst->local_poll - inst->minpoll);
+        else tmp = 4;
+        ;
+        NCR_InitiateSampleBurst(inst,1,tmp);
+      }
+    break;
+    default: break;
+  }
+  if (inst->opmode == (unsigned int)MD_OFFLINE) goto return_label;
+  if (inst->mode == (unsigned int)MODE_CLIENT) {
+    close_client_socket(inst);
+    __FC_assert((inst->local_addr.sock_fd == -2) != 0,"ntp_core.c",1181,
+                "inst->local_addr.sock_fd == INVALID_SOCK_FD");
+    if ((int)inst->remote_addr.ip_addr.family != 0) inst->local_addr.sock_fd = 101;
+    else inst->local_addr.sock_fd = 0;
+  }
+  local_addr.ip_addr.family = (unsigned short)0;
+  local_addr.if_index = -1;
+  local_addr.sock_fd = inst->local_addr.sock_fd;
+  if (inst->interleaved) 
+    if (inst->mode == (unsigned int)MODE_CLIENT) {
+      if (inst->tx_count < (unsigned int)4) tmp_1 = 1; else goto _LAND;
+    }
+    else {
+      _LAND: ;
+      if (inst->mode == (unsigned int)MODE_ACTIVE) 
+        if (inst->prev_tx_count == (unsigned int)1) 
+          if (inst->tx_count == (unsigned int)0) tmp_1 = 1; else tmp_1 = 0;
+        else tmp_1 = 0;
+      else tmp_1 = 0;
+    }
+  else tmp_1 = 0;
+  interleaved = tmp_1;
+  if (inst->mode == (unsigned int)MODE_ACTIVE) 
+    if (! inst->valid_rx) {
+      int tmp_2;
+      tmp_2 = UTI_IsZeroNtp64(& inst->init_remote_ntp_tx);
+      if (tmp_2) tmp_3 = 0; else tmp_3 = 1;
+    }
+    else tmp_3 = 0;
+  else tmp_3 = 0;
+  initial = tmp_3;
+  inst->valid_rx = 0;
+  inst->updated_init_timestamps = 0;
+  if (initial) inst->valid_timestamps = 0;
+  if (inst->presend_minpoll <= inst->local_poll) {
+    if (! inst->presend_done) {
+      if (! inst->burst_total_samples_to_go) 
+        if (interleaved) inst->presend_done = 2; else inst->presend_done = 1;
+      else goto _LAND_1;
+    }
+    else goto _LAND_1;
+  }
+  else {
+    _LAND_1: ;
+    if (inst->presend_done > 0) (inst->presend_done) --;
+  }
+  ;
+  ;
+  ;
+  ;
+  if (initial) tmp_4 = & inst->init_local_rx; else tmp_4 = & inst->local_rx;
+  if (initial) tmp_5 = & inst->init_remote_ntp_tx;
+  else tmp_5 = & inst->remote_ntp_tx;
+  if (initial) tmp_6 = (NTP_int64 *)0; else tmp_6 = & inst->remote_ntp_rx;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  sent = transmit_packet(inst->mode,interleaved,inst->local_poll,
+                         inst->version,(int)inst->auth_mode,
+                         inst->auth_key_id,tmp_6,tmp_5,tmp_4,
+                         & inst->local_tx,& inst->local_ntp_rx,
+                         & inst->local_ntp_tx,& inst->remote_addr,
+                         & local_addr);
+  (inst->tx_count) ++;
+  if (sent) inst->report.total_tx_count += (uint32_t)1;
+  if (inst->tx_count >= (unsigned int)2) 
+    if (sent) {
+      double tmp_8;
+      int tmp_7;
+      tmp_7 = SRC_IsSyncPeer(inst->source);
+      if (tmp_7) tmp_8 = 0.1; else tmp_8 = 0.25;
+      ;
+      adjust_poll(inst,tmp_8);
+    }
+  if (! sent) 
+    if (inst->auto_offline) NCR_SetConnectivity(inst,SRC_OFFLINE);
+  switch (inst->opmode) {
+    case (OperatingMode)MD_BURST_WAS_ONLINE:
+    if (! sent) {
+      int tmp_9;
+      tmp_9 = SRC_IsReachable(inst->source);
+      if (! tmp_9) break;
+    }
+    case (OperatingMode)MD_BURST_WAS_OFFLINE:
+    (inst->burst_total_samples_to_go) --;
+    break;
+    case (OperatingMode)MD_OFFLINE: ;
+    goto return_label;
+    default: break;
+  }
+  tmp_10 = get_transmit_delay(inst,1,0.0);
+  ;
+  restart_timeout(inst,tmp_10);
+  if (inst->mode == (unsigned int)MODE_CLIENT) inst->rx_timeout_id = (unsigned int)102;
+  return_label: return;
+}
+
+static int check_packet_format(NTP_Packet *message, int length)
+{
+  int __retres;
+  int version;
+  version = ((int)message->lvm >> 3) & 0x7;
+  if (version < 1) goto _LOR;
+  else 
+    if (version > 4) {
+      _LOR: {
+              __retres = 0;
+              goto return_label;
+            }
+    }
+  if (length < 48) goto _LOR_0;
+  else 
+    if ((unsigned int)length % (unsigned int)4) {
+      _LOR_0: {
+                __retres = 0;
+                goto return_label;
+              }
+    }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int is_zero_data(unsigned char *data, int length)
+{
+  int __retres;
+  int i;
+  i = 0;
+  while (i < length) {
+    if (*(data + i)) {
+      __retres = 0;
+      goto return_label;
+    }
+    i ++;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int check_packet_auth(NTP_Packet *pkt, int length,
+                             AuthenticationMode *auth_mode, uint32_t *key_id)
+{
+  int __retres;
+  int i;
+  int version;
+  int remainder_0;
+  int ext_length;
+  int max_mac_length;
+  unsigned char *data;
+  uint32_t id;
+  version = ((int)pkt->lvm >> 3) & 0x7;
+  i = 48;
+  data = (unsigned char *)pkt;
+  while (1) {
+    remainder_0 = length - i;
+    if (version == 4) 
+      if (remainder_0 <= 4 + 20) max_mac_length = 4 + 20;
+      else max_mac_length = 4 + 64;
+    else max_mac_length = 4 + 64;
+    if (remainder_0 >= 4 + 16) 
+      if (remainder_0 <= max_mac_length) {
+        int tmp;
+        id = ntohl(*((uint32_t *)(data + i)));
+        tmp = KEY_CheckAuth(id,(unsigned char const *)pkt,i,
+                            (unsigned char const *)((data + i) + 4),
+                            remainder_0 - 4,max_mac_length - 4);
+        if (tmp) {
+          *auth_mode = AUTH_SYMMETRIC;
+          *key_id = id;
+          if (version == 4) 
+            if (48 + remainder_0 == length) 
+              if (remainder_0 > 4 + 20) pkt->lvm = (unsigned char)(((
+                                                                    (
+                                                                    (
+                                                                    (
+                                                                    (int)pkt->lvm >> 6) & 0x3) << 6) & 0xc0) | (
+                                                                    (
+                                                                    3 << 3) & 0x38)) | (
+                                                                   ((int)pkt->lvm & 0x7) & 0x07));
+          __retres = 1;
+          goto return_label;
+        }
+      }
+    if (version == 4) 
+      if (remainder_0 >= 16) {
+        uint16_t tmp_0;
+        tmp_0 = ntohs(*((uint16_t *)((data + i) + 2)));
+        ext_length = (int)tmp_0;
+        if (ext_length >= 16) 
+          if (ext_length <= remainder_0) 
+            if (ext_length % 4 == 0) {
+              i += ext_length;
+              continue;
+            }
+      }
+    break;
+  }
+  if (remainder_0 >= 4 + 16) {
+    *auth_mode = AUTH_SYMMETRIC;
+    *key_id = ntohl(*((uint32_t *)(data + i)));
+    if (version == 3) 
+      if (*key_id) 
+        if (remainder_0 == 20) {
+          int tmp_2;
+          tmp_2 = is_zero_data((data + i) + 4,remainder_0 - 4);
+          if (tmp_2) *auth_mode = AUTH_MSSNTP; else goto _LAND;
+        }
+        else {
+          _LAND: ;
+          if (remainder_0 == 72) {
+            int tmp_1;
+            tmp_1 = is_zero_data((data + i) + 8,remainder_0 - 8);
+            if (tmp_1) *auth_mode = AUTH_MSSNTP_EXT;
+          }
+        }
+  }
+  else {
+    *auth_mode = AUTH_NONE;
+    *key_id = (unsigned int)0;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+static int check_delay_ratio(NCR_Instance inst, SST_Stats stats,
+                             struct timespec *sample_time, double delay)
+{
+  int __retres;
+  double last_sample_ago;
+  double predicted_offset;
+  double min_delay;
+  double skew;
+  double std_dev;
+  double max_delay;
+  double tmp_0;
+  if (inst->max_delay_ratio < 1.0) {
+    __retres = 1;
+    goto return_label;
+  }
+  else {
+    int tmp;
+    tmp = SST_GetDelayTestData(stats,sample_time,& last_sample_ago,
+                               & predicted_offset,& min_delay,& skew,
+                               & std_dev);
+    if (! tmp) {
+      __retres = 1;
+      goto return_label;
+    }
+  }
+  tmp_0 = LCL_GetMaxClockError();
+  max_delay = min_delay * inst->max_delay_ratio + last_sample_ago * (
+                                                  skew + tmp_0);
+  if (delay <= max_delay) {
+    __retres = 1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+static int check_delay_dev_ratio(NCR_Instance inst, SST_Stats stats,
+                                 struct timespec *sample_time, double offset,
+                                 double delay)
+{
+  int __retres;
+  double last_sample_ago;
+  double predicted_offset;
+  double min_delay;
+  double skew;
+  double std_dev;
+  double delta;
+  double max_delta;
+  double error_in_estimate;
+  int tmp;
+  double tmp_0;
+  double tmp_1;
+  tmp = SST_GetDelayTestData(stats,sample_time,& last_sample_ago,
+                             & predicted_offset,& min_delay,& skew,& std_dev);
+  if (! tmp) {
+    __retres = 1;
+    goto return_label;
+  }
+  tmp_0 = LCL_GetMaxClockError();
+  max_delta = std_dev * inst->max_delay_dev_ratio + last_sample_ago * (
+                                                    skew + tmp_0);
+  delta = (delay - min_delay) / 2.0;
+  if (delta <= max_delta) {
+    __retres = 1;
+    goto return_label;
+  }
+  error_in_estimate = offset + predicted_offset;
+  tmp_1 = fabs(error_in_estimate);
+  ;
+  if (tmp_1 - delta > max_delta) {
+    __retres = 1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+static void process_sample(NCR_Instance inst, NTP_Sample *sample)
+{
+  double estimated_offset;
+  double error_in_estimate;
+  double filtered_sample_ago;
+  NTP_Sample filtered_sample;
+  int filtered_samples;
+  SST_Stats tmp_1;
+  double tmp_2;
+  if (inst->filter) {
+    int tmp;
+    double tmp_0;
+    SPF_AccumulateSample(inst->filter,sample);
+    filtered_samples = SPF_GetNumberOfSamples(inst->filter);
+    tmp = SPF_GetFilteredSample(inst->filter,& filtered_sample);
+    if (! tmp) goto return_label;
+    filtered_sample_ago = UTI_DiffTimespecsToDouble(& sample->time,
+                                                    & filtered_sample.time);
+    tmp_0 = UTI_Log2ToDouble(inst->local_poll);
+    ;
+    if (filtered_sample_ago > (double)((8 / 2) * filtered_samples) * tmp_0) 
+      goto return_label;
+    sample = & filtered_sample;
+  }
+  ;
+  tmp_1 = SRC_GetSourcestats(inst->source);
+  estimated_offset = SST_PredictOffset(tmp_1,& sample->time);
+  error_in_estimate = fabs(- sample->offset - estimated_offset);
+  SRC_AccumulateSample(inst->source,sample);
+  SRC_SelectSource(inst->source);
+  tmp_2 = get_poll_adj(inst,error_in_estimate,
+                       sample->peer_dispersion + 0.5 * sample->peer_delay);
+  ;
+  adjust_poll(inst,tmp_2);
+  return_label: return;
+}
+
+static int receive_packet(NCR_Instance inst, NTP_Local_Address *local_addr,
+                          NTP_Local_Timestamp *rx_ts, NTP_Packet *message,
+                          int length)
+{
+  NTP_Sample sample;
+  SST_Stats stats;
+  int pkt_leap;
+  int pkt_version;
+  uint32_t pkt_refid;
+  uint32_t pkt_key_id;
+  double pkt_root_delay;
+  double pkt_root_dispersion;
+  AuthenticationMode pkt_auth_mode;
+  double skew;
+  double source_freq_lo;
+  double source_freq_hi;
+  int test1;
+  int test2n;
+  int test2i;
+  int test2;
+  int test3;
+  int test5;
+  int test6;
+  int test7;
+  int interleaved_packet;
+  int valid_packet;
+  int synced_packet;
+  int testA;
+  int testB;
+  int testC;
+  int testD;
+  int good_packet;
+  int kod_rate;
+  NTP_Local_Timestamp local_receive;
+  NTP_Local_Timestamp local_transmit;
+  double remote_interval;
+  double local_interval;
+  double response_time;
+  double delay_time;
+  double precision;
+  int updated_timestamps;
+  int tmp_1;
+  int tmp;
+  int tmp_3;
+  int tmp_2;
+  int tmp_5;
+  int tmp_6;
+  int tmp_7;
+  int tmp_11;
+  int tmp_8;
+  int tmp_13;
+  int tmp_14;
+  int tmp_15;
+  int tmp_16;
+  int tmp_34;
+  stats = SRC_GetSourcestats(inst->source);
+  inst->report.total_rx_count += (uint32_t)1;
+  pkt_leap = ((int)message->lvm >> 6) & 0x3;
+  pkt_version = ((int)message->lvm >> 3) & 0x7;
+  pkt_refid = ntohl(message->reference_id);
+  pkt_root_delay = UTI_Ntp32ToDouble(message->root_delay);
+  pkt_root_dispersion = UTI_Ntp32ToDouble(message->root_dispersion);
+  tmp = UTI_CompareNtp64(& message->receive_ts,& inst->remote_ntp_rx);
+  if (tmp) tmp_1 = 1;
+  else {
+    int tmp_0;
+    tmp_0 = UTI_CompareNtp64(& message->transmit_ts,& inst->remote_ntp_tx);
+    if (tmp_0) tmp_1 = 1; else tmp_1 = 0;
+  }
+  test1 = tmp_1;
+  tmp_2 = UTI_CompareNtp64(& message->originate_ts,& inst->local_ntp_tx);
+  if (tmp_2) tmp_3 = 0; else tmp_3 = 1;
+  test2n = tmp_3;
+  if (inst->interleaved) {
+    int tmp_4;
+    tmp_4 = UTI_CompareNtp64(& message->originate_ts,& inst->local_ntp_rx);
+    if (tmp_4) tmp_5 = 0; else tmp_5 = 1;
+  }
+  else tmp_5 = 0;
+  test2i = tmp_5;
+  if (test2n) tmp_6 = 1;
+  else 
+    if (test2i) tmp_6 = 1; else tmp_6 = 0;
+  test2 = tmp_6;
+  if (! test2n) 
+    if (test2i) tmp_7 = 1; else tmp_7 = 0;
+  else tmp_7 = 0;
+  interleaved_packet = tmp_7;
+  tmp_8 = UTI_IsZeroNtp64(& message->originate_ts);
+  if (tmp_8) tmp_11 = 0;
+  else {
+    int tmp_9;
+    tmp_9 = UTI_IsZeroNtp64(& message->receive_ts);
+    if (tmp_9) tmp_11 = 0;
+    else {
+      int tmp_10;
+      tmp_10 = UTI_IsZeroNtp64(& message->transmit_ts);
+      if (tmp_10) tmp_11 = 0; else tmp_11 = 1;
+    }
+  }
+  test3 = tmp_11;
+  if (inst->auth_mode == (unsigned int)AUTH_NONE) tmp_13 = 1;
+  else {
+    int tmp_12;
+    tmp_12 = check_packet_auth(message,length,& pkt_auth_mode,& pkt_key_id);
+    if (tmp_12) 
+      if (pkt_auth_mode == inst->auth_mode) 
+        if (pkt_key_id == inst->auth_key_id) tmp_13 = 1; else tmp_13 = 0;
+      else tmp_13 = 0;
+    else tmp_13 = 0;
+  }
+  test5 = tmp_13;
+  if (pkt_leap != LEAP_Unsynchronised) 
+    if ((int)message->stratum < 16) 
+      if ((int)message->stratum != 0) tmp_14 = 1; else tmp_14 = 0;
+    else tmp_14 = 0;
+  else tmp_14 = 0;
+  test6 = tmp_14;
+  test7 = pkt_root_delay / 2.0 + pkt_root_dispersion < 16.0;
+  if (test1) 
+    if (test2) 
+      if (test3) 
+        if (test5) tmp_15 = 1; else tmp_15 = 0;
+      else tmp_15 = 0;
+    else tmp_15 = 0;
+  else tmp_15 = 0;
+  valid_packet = tmp_15;
+  if (valid_packet) 
+    if (test6) 
+      if (test7) tmp_16 = 1; else tmp_16 = 0;
+    else tmp_16 = 0;
+  else tmp_16 = 0;
+  synced_packet = tmp_16;
+  kod_rate = 0;
+  if (test1) 
+    if (test2) 
+      if (test5) 
+        if (pkt_leap == LEAP_Unsynchronised) 
+          if ((int)message->stratum == 0) 
+            if ((unsigned long)pkt_refid == 0x52415445UL) kod_rate = 1;
+  if (synced_packet) {
+    if (! interleaved_packet) goto _LOR;
+    else 
+      if (inst->valid_timestamps) {
+        _LOR:
+        {
+          struct timespec remote_receive;
+          struct timespec remote_transmit;
+          struct timespec remote_request_receive;
+          struct timespec local_average;
+          struct timespec remote_average;
+          struct timespec prev_remote_transmit;
+          double prev_remote_poll_interval;
+          double tmp_20;
+          double tmp_21;
+          double tmp_22;
+          double tmp_25;
+          double tmp_23;
+          double tmp_26;
+          int tmp_27;
+          int tmp_30;
+          int tmp_33;
+          if (interleaved_packet) {
+            int tmp_17;
+            tmp_17 = UTI_IsZeroTimespec(& inst->prev_local_tx.ts);
+            if (tmp_17) {
+              _LAND:
+              {
+                UTI_Ntp64ToTimespec(& message->receive_ts,& remote_receive);
+                UTI_Ntp64ToTimespec(& inst->remote_ntp_rx,
+                                    & remote_request_receive);
+                local_transmit = inst->local_tx;
+              }
+            }
+            else {
+              double tmp_18;
+              double tmp_19;
+              tmp_18 = UTI_DiffTimespecsToDouble(& inst->local_tx.ts,
+                                                 & inst->local_rx.ts);
+              tmp_19 = UTI_DiffTimespecsToDouble(& inst->local_rx.ts,
+                                                 & inst->prev_local_tx.ts);
+              if (0.1 * tmp_18 > tmp_19) {
+                UTI_Ntp64ToTimespec(& inst->remote_ntp_rx,& remote_receive);
+                remote_request_receive = remote_receive;
+                local_transmit = inst->prev_local_tx;
+              }
+              else goto _LAND;
+            }
+            UTI_Ntp64ToTimespec(& message->transmit_ts,& remote_transmit);
+            UTI_Ntp64ToTimespec(& inst->remote_ntp_tx,& prev_remote_transmit);
+            local_receive = inst->local_rx;
+          }
+          else {
+            UTI_Ntp64ToTimespec(& message->receive_ts,& remote_receive);
+            UTI_Ntp64ToTimespec(& message->transmit_ts,& remote_transmit);
+            UTI_ZeroTimespec(& prev_remote_transmit);
+            remote_request_receive = remote_receive;
+            local_receive = *rx_ts;
+            local_transmit = inst->local_tx;
+          }
+          UTI_AverageDiffTimespecs(& remote_receive,& remote_transmit,
+                                   & remote_average,& remote_interval);
+          UTI_AverageDiffTimespecs(& local_transmit.ts,& local_receive.ts,
+                                   & local_average,& local_interval);
+          tmp_20 = UTI_DiffTimespecsToDouble(& remote_transmit,
+                                             & remote_request_receive);
+          response_time = fabs(tmp_20);
+          tmp_21 = LCL_GetSysPrecisionAsQuantum();
+          tmp_22 = UTI_Log2ToDouble((int)message->precision);
+          precision = tmp_21 + tmp_22;
+          sample.peer_delay = fabs(local_interval - remote_interval);
+          if (sample.peer_delay < precision) sample.peer_delay = precision;
+          sample.offset = UTI_DiffTimespecsToDouble(& remote_average,
+                                                    & local_average);
+          sample.offset += inst->offset_correction;
+          sample.time = local_average;
+          SST_GetFrequencyRange(stats,& source_freq_lo,& source_freq_hi);
+          skew = (source_freq_hi - source_freq_lo) / 2.0;
+          if (local_transmit.err > local_receive.err) tmp_23 = local_transmit.err;
+          else tmp_23 = local_receive.err;
+          ;
+          if (precision > tmp_23) tmp_25 = precision;
+          else {
+            double tmp_24;
+            if (local_transmit.err > local_receive.err) tmp_24 = local_transmit.err;
+            else tmp_24 = local_receive.err;
+            tmp_25 = tmp_24;
+          }
+          tmp_26 = fabs(local_interval);
+          sample.peer_dispersion = tmp_25 + skew * tmp_26;
+          if (inst->remote_poll < inst->prev_local_poll) tmp_27 = inst->remote_poll;
+          else tmp_27 = inst->prev_local_poll;
+          prev_remote_poll_interval = UTI_Log2ToDouble(tmp_27);
+          if (sample.peer_delay - sample.peer_dispersion <= inst->max_delay) 
+            if (precision <= inst->max_delay) 
+              if (inst->mode == (unsigned int)MODE_CLIENT) {
+                if (response_time > 4.0) tmp_30 = 0; else goto _LAND_0;
+              }
+              else {
+                _LAND_0: ;
+                if (inst->mode == (unsigned int)MODE_ACTIVE) 
+                  if (interleaved_packet) 
+                    if (sample.peer_delay > 0.5 * prev_remote_poll_interval) 
+                      tmp_30 = 0;
+                    else {
+                      int tmp_28;
+                      tmp_28 = UTI_CompareNtp64(& message->receive_ts,
+                                                & message->transmit_ts);
+                      if (tmp_28 <= 0) tmp_30 = 0;
+                      else 
+                        if (inst->remote_poll <= inst->prev_local_poll) {
+                          double tmp_29;
+                          tmp_29 = UTI_DiffTimespecsToDouble(& remote_transmit,
+                                                             & prev_remote_transmit);
+                          ;
+                          if (tmp_29 > 1.5 * prev_remote_poll_interval) 
+                            tmp_30 = 0;
+                          else tmp_30 = 1;
+                        }
+                        else tmp_30 = 1;
+                    }
+                  else tmp_30 = 1;
+                else tmp_30 = 1;
+              }
+            else tmp_30 = 0;
+          else tmp_30 = 0;
+          testA = tmp_30;
+          testB = check_delay_ratio(inst,stats,& sample.time,
+                                    sample.peer_delay);
+          testC = check_delay_dev_ratio(inst,stats,& sample.time,
+                                        sample.offset,sample.peer_delay);
+          if ((int)message->stratum <= 1) tmp_33 = 1;
+          else {
+            REF_Mode tmp_31;
+            tmp_31 = REF_GetMode();
+            if (tmp_31 != (unsigned int)REF_ModeNormal) tmp_33 = 1;
+            else {
+              uint32_t tmp_32;
+              tmp_32 = UTI_IPToRefid(& local_addr->ip_addr);
+              ;
+              if (pkt_refid != tmp_32) tmp_33 = 1; else tmp_33 = 0;
+            }
+          }
+          testD = tmp_33;
+        }
+      }
+      else goto _LAND_1;
+  }
+  else {
+    _LAND_1:
+    {
+      response_time = 0.0;
+      local_interval = response_time;
+      remote_interval = local_interval;
+      sample.peer_dispersion = 0.0;
+      sample.peer_delay = sample.peer_dispersion;
+      sample.offset = sample.peer_delay;
+      sample.time = rx_ts->ts;
+      local_receive = *rx_ts;
+      local_transmit = inst->local_tx;
+      testD = 0;
+      testC = testD;
+      testB = testC;
+      testA = testB;
+    }
+  }
+  if (testA) 
+    if (testB) 
+      if (testC) 
+        if (testD) tmp_34 = 1; else tmp_34 = 0;
+      else tmp_34 = 0;
+    else tmp_34 = 0;
+  else tmp_34 = 0;
+  good_packet = tmp_34;
+  sample.root_delay = pkt_root_delay + sample.peer_delay;
+  sample.root_dispersion = pkt_root_dispersion + sample.peer_dispersion;
+  if ((int)message->stratum > inst->min_stratum) sample.stratum = (int)message->stratum;
+  else sample.stratum = inst->min_stratum;
+  sample.leap = (enum __anonenum_NTP_Leap_7)pkt_leap;
+  if (inst->mode == (unsigned int)MODE_CLIENT) {
+    if (valid_packet) {
+      if (! inst->valid_rx) goto _LOR_2; else goto _LAND_9;
+    }
+    else goto _LAND_9;
+  }
+  else {
+    _LAND_9: ;
+    if (inst->mode == (unsigned int)MODE_ACTIVE) {
+      if (valid_packet) {
+        if (! inst->valid_rx) goto _LOR_2;
+        else {
+          int tmp_37;
+          tmp_37 = UTI_CompareNtp64(& inst->remote_ntp_tx,
+                                    & message->transmit_ts);
+          if (tmp_37 < 0) {
+            _LOR_2:
+            {
+              inst->remote_ntp_rx = message->receive_ts;
+              inst->remote_ntp_tx = message->transmit_ts;
+              inst->local_rx = *rx_ts;
+              inst->valid_timestamps = synced_packet;
+              UTI_ZeroNtp64(& inst->init_remote_ntp_tx);
+              zero_local_timestamp(& inst->init_local_rx);
+              inst->updated_init_timestamps = 0;
+              updated_timestamps = 2;
+              if (interleaved_packet) inst->prev_local_tx = inst->local_tx;
+              else zero_local_timestamp(& inst->prev_local_tx);
+            }
+          }
+          else goto _LAND_7;
+        }
+      }
+      else goto _LAND_7;
+    }
+    else {
+      _LAND_7: ;
+      if (inst->mode == (unsigned int)MODE_ACTIVE) {
+        if (test1) {
+          int tmp_35;
+          tmp_35 = UTI_IsZeroNtp64(& message->transmit_ts);
+          if (tmp_35) goto _LAND_5;
+          else 
+            if (test5) {
+              if (! inst->updated_init_timestamps) goto _LOR_0;
+              else {
+                int tmp_36;
+                tmp_36 = UTI_CompareNtp64(& inst->init_remote_ntp_tx,
+                                          & message->transmit_ts);
+                if (tmp_36 < 0) {
+                  _LOR_0:
+                  {
+                    inst->init_remote_ntp_tx = message->transmit_ts;
+                    inst->init_local_rx = *rx_ts;
+                    inst->updated_init_timestamps = 1;
+                    updated_timestamps = 1;
+                  }
+                }
+                else goto _LAND_5;
+              }
+            }
+            else goto _LAND_5;
+        }
+        else goto _LAND_5;
+      }
+      else _LAND_5: updated_timestamps = 0;
+    }
+  }
+  if (inst->valid_rx) {
+    test3 = 0;
+    test2 = test3;
+    good_packet = 0;
+    synced_packet = good_packet;
+    valid_packet = synced_packet;
+  }
+  else 
+    if (valid_packet) {
+      if (inst->presend_done) {
+        testA = 0;
+        good_packet = 0;
+      }
+      inst->valid_rx = 1;
+    }
+  if ((unsigned long)((unsigned int)local_receive.source) >= sizeof(tss_chars)) 
+    __FC_assert(0 != 0,"ntp_core.c",1798,"0");
+  else 
+    if ((unsigned long)((unsigned int)local_transmit.source) >= sizeof(tss_chars)) 
+      __FC_assert(0 != 0,"ntp_core.c",1798,"0");
+  if (valid_packet) {
+    inst->remote_poll = (int)message->poll;
+    if ((int)message->stratum != 0) inst->remote_stratum = (int)message->stratum;
+    else inst->remote_stratum = 16;
+    inst->prev_local_poll = inst->local_poll;
+    inst->prev_tx_count = inst->tx_count;
+    inst->tx_count = (unsigned int)0;
+    if (good_packet) {
+      process_sample(inst,& sample);
+      switch (inst->opmode) {
+        case (OperatingMode)MD_BURST_WAS_ONLINE:
+        case (OperatingMode)MD_BURST_WAS_OFFLINE:
+        (inst->burst_good_samples_to_go) --;
+        if (inst->burst_good_samples_to_go <= 0) 
+          if (inst->opmode == (unsigned int)MD_BURST_WAS_ONLINE) inst->opmode = MD_ONLINE;
+          else take_offline(inst);
+        break;
+        default: break;
+      }
+    }
+    else adjust_poll(inst,0.1);
+    close_client_socket(inst);
+    inst->local_addr.ip_addr = local_addr->ip_addr;
+    inst->local_addr.if_index = local_addr->if_index;
+    if (inst->opmode != (unsigned int)MD_OFFLINE) {
+      double tmp_44;
+      tmp_44 = UTI_DiffTimespecsToDouble(& inst->local_rx.ts,
+                                         & inst->local_tx.ts);
+      ;
+      delay_time = get_transmit_delay(inst,0,tmp_44);
+      if (kod_rate) {
+        char *tmp_45;
+        double tmp_46;
+        tmp_45 = UTI_IPToString(& inst->remote_addr.ip_addr);
+        {
+          char *__va_arg0 = tmp_45;
+          void *__va_args[1] = {& __va_arg0};
+          LOG_Message(LOGS_WARN,"Received KoD RATE from %s",
+                      (void * const *)(__va_args));
+        }
+        tmp_46 = UTI_Log2ToDouble(inst->local_poll);
+        delay_time += (double)4 * tmp_46;
+        if (inst->opmode == (unsigned int)MD_BURST_WAS_OFFLINE) goto _LOR_3;
+        else 
+          if (inst->opmode == (unsigned int)MD_BURST_WAS_ONLINE) _LOR_3:
+                                                                 inst->burst_good_samples_to_go = 0;
+      }
+      __FC_assert(inst->tx_timeout_id != (SCH_TimeoutID)0,"ntp_core.c",1883,
+                  "inst->tx_timeout_id");
+      restart_timeout(inst,delay_time);
+    }
+    inst->report.remote_addr = inst->remote_addr.ip_addr;
+    inst->report.local_addr = inst->local_addr.ip_addr;
+    inst->report.remote_port = inst->remote_addr.port;
+    inst->report.leap = (unsigned char)pkt_leap;
+    inst->report.version = (unsigned char)pkt_version;
+    inst->report.mode = (unsigned char)((int)message->lvm & 0x7);
+    inst->report.stratum = message->stratum;
+    inst->report.poll = message->poll;
+    inst->report.precision = message->precision;
+    inst->report.root_delay = pkt_root_delay;
+    inst->report.root_dispersion = pkt_root_dispersion;
+    inst->report.ref_id = pkt_refid;
+    UTI_Ntp64ToTimespec(& message->reference_ts,& inst->report.ref_time);
+    inst->report.offset = sample.offset;
+    inst->report.peer_delay = sample.peer_delay;
+    inst->report.peer_dispersion = sample.peer_dispersion;
+    inst->report.response_time = response_time;
+    inst->report.jitter_asymmetry = SST_GetJitterAsymmetry(stats);
+    inst->report.tests = (unsigned short)((((((((((((((((((test1 << 1) | test2) << 1) | test3) << 1) | test5) << 1) | test6) << 1) | test7) << 1) | testA) << 1) | testB) << 1) | testC) << 1) | testD);
+    inst->report.interleaved = interleaved_packet;
+    inst->report.authenticated = inst->auth_mode != (unsigned int)AUTH_NONE;
+    inst->report.tx_tss_char = tss_chars[local_transmit.source];
+    inst->report.rx_tss_char = tss_chars[local_receive.source];
+    inst->report.total_valid_count += (uint32_t)1;
+  }
+  if (logfileid_1 != -1) 
+    if (log_raw_measurements) goto _LOR_4;
+    else 
+      if (synced_packet) {
+        _LOR_4:
+        {
+          int tmp_47;
+          char *tmp_48;
+          char *tmp_49;
+          ;
+          ;
+          if (interleaved_packet) tmp_47 = 'I'; else tmp_47 = 'B';
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          ;
+          tmp_48 = UTI_IPToString(& inst->remote_addr.ip_addr);
+          tmp_49 = UTI_TimeToLogForm(sample.time.tv_sec);
+          ;
+          {
+            char *__va_arg0_98 = tmp_49;
+            char *__va_arg1 = tmp_48;
+            int __va_arg2 = (int)leap_chars[pkt_leap];
+            int __va_arg3 = (int)message->stratum;
+            int __va_arg4 = test1;
+            int __va_arg5 = test2;
+            int __va_arg6 = test3;
+            int __va_arg7 = test5;
+            int __va_arg8 = test6;
+            int __va_arg9 = test7;
+            int __va_arg10 = testA;
+            int __va_arg11 = testB;
+            int __va_arg12 = testC;
+            int __va_arg13 = testD;
+            int __va_arg14 = inst->local_poll;
+            int __va_arg15 = (int)message->poll;
+            double __va_arg16 = inst->poll_score;
+            double __va_arg17 = sample.offset;
+            double __va_arg18 = sample.peer_delay;
+            double __va_arg19 = sample.peer_dispersion;
+            double __va_arg20 = pkt_root_delay;
+            double __va_arg21 = pkt_root_dispersion;
+            uint32_t __va_arg22 = pkt_refid;
+            int __va_arg23 = (int)message->lvm & 0x7;
+            int __va_arg24 = tmp_47;
+            int __va_arg25 = (int)tss_chars[local_transmit.source];
+            int __va_arg26 = (int)tss_chars[local_receive.source];
+            void *__va_args_126[27] =
+              {& __va_arg0_98,
+               & __va_arg1,
+               & __va_arg2,
+               & __va_arg3,
+               & __va_arg4,
+               & __va_arg5,
+               & __va_arg6,
+               & __va_arg7,
+               & __va_arg8,
+               & __va_arg9,
+               & __va_arg10,
+               & __va_arg11,
+               & __va_arg12,
+               & __va_arg13,
+               & __va_arg14,
+               & __va_arg15,
+               & __va_arg16,
+               & __va_arg17,
+               & __va_arg18,
+               & __va_arg19,
+               & __va_arg20,
+               & __va_arg21,
+               & __va_arg22,
+               & __va_arg23,
+               & __va_arg24,
+               & __va_arg25,
+               & __va_arg26};
+            LOG_FileWrite(logfileid_1,
+                          "%s %-15s %1c %2d %1d%1d%1d %1d%1d%1d %1d%1d%1d%d  %2d %2d %4.2f %10.3e %10.3e %10.3e %10.3e %10.3e %08X %1d%1c %1c %1c",
+                          (void * const *)(__va_args_126));
+          }
+        }
+      }
+  return good_packet;
+}
+
+int NCR_ProcessRxKnown(NCR_Instance inst, NTP_Local_Address *local_addr,
+                       NTP_Local_Timestamp *rx_ts, NTP_Packet *message,
+                       int length)
+{
+  int __retres;
+  int pkt_mode;
+  int proc_packet;
+  int proc_as_unknown;
+  int tmp;
+  tmp = check_packet_format(message,length);
+  if (! tmp) {
+    __retres = 0;
+    goto return_label;
+  }
+  pkt_mode = (int)message->lvm & 0x7;
+  proc_packet = 0;
+  proc_as_unknown = 0;
+  switch (pkt_mode) {
+    case MODE_ACTIVE: ;
+    switch (inst->mode) {
+      case (NTP_Mode)MODE_ACTIVE: proc_packet = 1;
+      break;
+      case (NTP_Mode)MODE_PASSIVE: break;
+      case (NTP_Mode)MODE_CLIENT: proc_as_unknown = 1;
+      break;
+      default: break;
+    }
+    break;
+    case MODE_PASSIVE: ;
+    switch (inst->mode) {
+      case (NTP_Mode)MODE_ACTIVE: proc_packet = 1;
+      break;
+      case (NTP_Mode)MODE_PASSIVE: break;
+      default: break;
+    }
+    break;
+    case MODE_CLIENT: proc_as_unknown = 1;
+    break;
+    case MODE_SERVER: ;
+    switch (inst->mode) {
+      case (NTP_Mode)MODE_CLIENT: proc_packet = 1;
+      break;
+      default: break;
+    }
+    break;
+    case MODE_BROADCAST: break;
+    default: break;
+  }
+  if (proc_packet) {
+    int tmp_0;
+    if (local_addr->sock_fd != inst->local_addr.sock_fd) {
+      __retres = 0;
+      goto return_label;
+    }
+    if (inst->opmode == (unsigned int)MD_OFFLINE) goto _LOR;
+    else 
+      if (inst->tx_suspended) {
+        _LOR: {
+                __retres = 0;
+                goto return_label;
+              }
+      }
+    tmp_0 = receive_packet(inst,local_addr,rx_ts,message,length);
+    __retres = tmp_0;
+    goto return_label;
+  }
+  else 
+    if (proc_as_unknown) {
+      NCR_ProcessRxUnknown(& inst->remote_addr,local_addr,rx_ts,message,
+                           length);
+      __retres = 0;
+      goto return_label;
+    }
+    else {
+      __retres = 0;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+void NCR_ProcessRxUnknown(NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr,
+                          NTP_Local_Timestamp *rx_ts, NTP_Packet *message,
+                          int length)
+{
+  NTP_Mode pkt_mode;
+  NTP_Mode my_mode;
+  NTP_int64 *local_ntp_rx;
+  NTP_int64 *local_ntp_tx;
+  NTP_Local_Timestamp local_tx;
+  NTP_Local_Timestamp *tx_ts;
+  int pkt_version;
+  int valid_auth;
+  int log_index;
+  int interleaved;
+  int poll;
+  AuthenticationMode auth_mode;
+  uint32_t key_id;
+  int tmp;
+  int tmp_1;
+  if (! (local_addr->sock_fd == 100)) goto return_label;
+  tmp = check_packet_format(message,length);
+  if (! tmp) goto return_label;
+  tmp_1 = ADF_IsAllowed(access_auth_table,& remote_addr->ip_addr);
+  if (! tmp_1) goto return_label;
+  pkt_mode = (enum __anonenum_NTP_Mode_8)((int)message->lvm & 0x7);
+  pkt_version = ((int)message->lvm >> 3) & 0x7;
+  switch (pkt_mode) {
+    case (NTP_Mode)MODE_ACTIVE: my_mode = MODE_PASSIVE;
+    break;
+    case (NTP_Mode)MODE_CLIENT: my_mode = MODE_SERVER;
+    break;
+    case (NTP_Mode)MODE_UNDEFINED: ;
+    if (pkt_version == 1) 
+      if ((int)remote_addr->port != 123) {
+        my_mode = MODE_SERVER;
+        break;
+      }
+    default: ;
+    goto return_label;
+  }
+  log_index = CLG_LogNTPAccess(& remote_addr->ip_addr,& rx_ts->ts);
+  if (log_index >= 0) {
+    int tmp_2;
+    tmp_2 = CLG_LimitNTPResponseRate(log_index);
+    if (tmp_2) goto return_label;
+  }
+  valid_auth = check_packet_auth(message,length,& auth_mode,& key_id);
+  if (! valid_auth) 
+    switch (auth_mode) {
+      case (AuthenticationMode)AUTH_NONE: break;
+      case (AuthenticationMode)AUTH_MSSNTP: break;
+      default: ;
+      goto return_label;
+    }
+  local_ntp_tx = (NTP_int64 *)0;
+  local_ntp_rx = local_ntp_tx;
+  tx_ts = (NTP_Local_Timestamp *)0;
+  interleaved = 0;
+  if (log_index >= 0) {
+    int tmp_6;
+    int tmp_3;
+    CLG_GetNtpTimestamps(log_index,& local_ntp_rx,& local_ntp_tx);
+    tmp_3 = UTI_IsZeroNtp64(local_ntp_rx);
+    if (tmp_3) tmp_6 = 0;
+    else {
+      int tmp_4;
+      tmp_4 = UTI_CompareNtp64(& message->originate_ts,local_ntp_rx);
+      if (tmp_4) tmp_6 = 0;
+      else {
+        int tmp_5;
+        tmp_5 = UTI_CompareNtp64(& message->receive_ts,
+                                 & message->transmit_ts);
+        if (tmp_5) tmp_6 = 1; else tmp_6 = 0;
+      }
+    }
+    interleaved = tmp_6;
+    if (interleaved) {
+      UTI_Ntp64ToTimespec(local_ntp_tx,& local_tx.ts);
+      tx_ts = & local_tx;
+    }
+    else {
+      UTI_ZeroNtp64(local_ntp_tx);
+      local_ntp_tx = (NTP_int64 *)0;
+    }
+  }
+  poll = CLG_GetNtpMinPoll();
+  if (poll > (int)message->poll) poll = poll; else poll = (int)message->poll;
+  transmit_packet(my_mode,interleaved,poll,pkt_version,(int)auth_mode,key_id,
+                  & message->receive_ts,& message->transmit_ts,rx_ts,tx_ts,
+                  local_ntp_rx,(NTP_int64 *)0,remote_addr,local_addr);
+  if (tx_ts) UTI_TimespecToNtp64(& tx_ts->ts,local_ntp_tx,(NTP_int64 *)0);
+  return_label: return;
+}
+
+static void update_tx_timestamp(NTP_Local_Timestamp *tx_ts,
+                                NTP_Local_Timestamp *new_tx_ts,
+                                NTP_int64 *local_ntp_rx,
+                                NTP_int64 *local_ntp_tx, NTP_Packet *message)
+{
+  double delay;
+  int tmp;
+  tmp = UTI_IsZeroTimespec(& tx_ts->ts);
+  if (tmp) goto return_label;
+  if (local_ntp_rx) {
+    int tmp_0;
+    tmp_0 = UTI_CompareNtp64(& message->receive_ts,local_ntp_rx);
+    if (tmp_0) goto _LOR; else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (local_ntp_tx) {
+      int tmp_1;
+      tmp_1 = UTI_CompareNtp64(& message->transmit_ts,local_ntp_tx);
+      if (tmp_1) _LOR: goto return_label;
+    }
+  }
+  delay = UTI_DiffTimespecsToDouble(& new_tx_ts->ts,& tx_ts->ts);
+  if (delay < 0.0) goto _LOR_0;
+  else 
+    if (delay > 1.0) _LOR_0: goto return_label;
+  *tx_ts = *new_tx_ts;
+  return_label: return;
+}
+
+void NCR_ProcessTxKnown(NCR_Instance inst, NTP_Local_Address *local_addr,
+                        NTP_Local_Timestamp *tx_ts, NTP_Packet *message,
+                        int length)
+{
+  NTP_Mode pkt_mode;
+  int tmp;
+  tmp = check_packet_format(message,length);
+  if (! tmp) goto return_label;
+  pkt_mode = (enum __anonenum_NTP_Mode_8)((int)message->lvm & 0x7);
+  if (pkt_mode != (unsigned int)MODE_CLIENT) 
+    if (pkt_mode != (unsigned int)MODE_ACTIVE) {
+      NCR_ProcessTxUnknown(& inst->remote_addr,local_addr,tx_ts,message,
+                           length);
+      goto return_label;
+    }
+  update_tx_timestamp(& inst->local_tx,tx_ts,& inst->local_ntp_rx,
+                      & inst->local_ntp_tx,message);
+  return_label: return;
+}
+
+void NCR_ProcessTxUnknown(NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr,
+                          NTP_Local_Timestamp *tx_ts, NTP_Packet *message,
+                          int length)
+{
+  NTP_int64 *local_ntp_rx;
+  NTP_int64 *local_ntp_tx;
+  NTP_Local_Timestamp local_tx;
+  int log_index;
+  int tmp;
+  int tmp_1;
+  tmp = check_packet_format(message,length);
+  if (! tmp) goto return_label;
+  if (((int)message->lvm & 0x7) == MODE_BROADCAST) goto return_label;
+  log_index = CLG_GetClientIndex(& remote_addr->ip_addr);
+  if (log_index < 0) goto return_label;
+  tmp_1 = SMT_IsEnabled();
+  if (tmp_1) 
+    if (((int)message->lvm & 0x7) == MODE_SERVER) {
+      double tmp_0;
+      ;
+      tmp_0 = SMT_GetOffset(& tx_ts->ts);
+      ;
+      UTI_AddDoubleToTimespec(& tx_ts->ts,tmp_0,& tx_ts->ts);
+    }
+  CLG_GetNtpTimestamps(log_index,& local_ntp_rx,& local_ntp_tx);
+  UTI_Ntp64ToTimespec(local_ntp_tx,& local_tx.ts);
+  update_tx_timestamp(& local_tx,tx_ts,local_ntp_rx,(NTP_int64 *)0,message);
+  UTI_TimespecToNtp64(& local_tx.ts,local_ntp_tx,(NTP_int64 *)0);
+  return_label: return;
+}
+
+void NCR_SlewTimes(NCR_Instance inst, struct timespec *when, double dfreq,
+                   double doffset)
+{
+  double delta;
+  int tmp;
+  int tmp_0;
+  int tmp_1;
+  int tmp_2;
+  tmp = UTI_IsZeroTimespec(& inst->local_rx.ts);
+  if (! tmp) UTI_AdjustTimespec(& inst->local_rx.ts,when,& inst->local_rx.ts,
+                                & delta,dfreq,doffset);
+  tmp_0 = UTI_IsZeroTimespec(& inst->local_tx.ts);
+  if (! tmp_0) UTI_AdjustTimespec(& inst->local_tx.ts,when,
+                                  & inst->local_tx.ts,& delta,dfreq,doffset);
+  tmp_1 = UTI_IsZeroTimespec(& inst->prev_local_tx.ts);
+  if (! tmp_1) UTI_AdjustTimespec(& inst->prev_local_tx.ts,when,
+                                  & inst->prev_local_tx.ts,& delta,dfreq,
+                                  doffset);
+  tmp_2 = UTI_IsZeroTimespec(& inst->init_local_rx.ts);
+  if (! tmp_2) UTI_AdjustTimespec(& inst->init_local_rx.ts,when,
+                                  & inst->init_local_rx.ts,& delta,dfreq,
+                                  doffset);
+  if (inst->filter) SPF_SlewSamples(inst->filter,when,dfreq,doffset);
+  return;
+}
+
+void NCR_SetConnectivity(NCR_Instance inst, SRC_Connectivity connectivity)
+{
+  char *s;
+  s = UTI_IPToString(& inst->remote_addr.ip_addr);
+  if (connectivity == (unsigned int)SRC_MAYBE_ONLINE) {
+    int tmp;
+    tmp = NIO_IsServerConnectable(& inst->remote_addr);
+    if (tmp) connectivity = SRC_ONLINE; else connectivity = SRC_OFFLINE;
+  }
+  switch (connectivity) {
+    case (SRC_Connectivity)SRC_ONLINE: ;
+    switch (inst->opmode) {
+      case (OperatingMode)MD_ONLINE: break;
+      case (OperatingMode)MD_OFFLINE:
+      {
+        char *__va_arg0 = s;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_INFO,"Source %s online",(void * const *)(__va_args));
+      }
+      inst->opmode = MD_ONLINE;
+      NCR_ResetInstance(inst);
+      start_initial_timeout(inst);
+      break;
+      case (OperatingMode)MD_BURST_WAS_ONLINE: break;
+      case (OperatingMode)MD_BURST_WAS_OFFLINE:
+      inst->opmode = MD_BURST_WAS_ONLINE;
+      {
+        char *__va_arg0_8 = s;
+        void *__va_args_10[1] = {& __va_arg0_8};
+        LOG_Message(LOGS_INFO,"Source %s online",
+                    (void * const *)(__va_args_10));
+      }
+      break;
+      default: __FC_assert(0 != 0,"ntp_core.c",2344,"0");
+    }
+    break;
+    case (SRC_Connectivity)SRC_OFFLINE: ;
+    switch (inst->opmode) {
+      case (OperatingMode)MD_ONLINE:
+      {
+        char *__va_arg0_12 = s;
+        void *__va_args_14[1] = {& __va_arg0_12};
+        LOG_Message(LOGS_INFO,"Source %s offline",
+                    (void * const *)(__va_args_14));
+      }
+      take_offline(inst);
+      break;
+      case (OperatingMode)MD_OFFLINE: break;
+      case (OperatingMode)MD_BURST_WAS_ONLINE:
+      inst->opmode = MD_BURST_WAS_OFFLINE;
+      {
+        char *__va_arg0_16 = s;
+        void *__va_args_18[1] = {& __va_arg0_16};
+        LOG_Message(LOGS_INFO,"Source %s offline",
+                    (void * const *)(__va_args_18));
+      }
+      break;
+      case (OperatingMode)MD_BURST_WAS_OFFLINE: break;
+      default: __FC_assert(0 != 0,"ntp_core.c",2362,"0");
+    }
+    break;
+    default: __FC_assert(0 != 0,"ntp_core.c",2366,"0");
+  }
+  return;
+}
+
+void NCR_ModifyMinpoll(NCR_Instance inst, int new_minpoll)
+{
+  char *tmp;
+  if (new_minpoll < -6) goto return_label;
+  else 
+    if (new_minpoll > 24) goto return_label;
+  inst->minpoll = new_minpoll;
+  ;
+  tmp = UTI_IPToString(& inst->remote_addr.ip_addr);
+  {
+    char *__va_arg0 = tmp;
+    int __va_arg1 = new_minpoll;
+    void *__va_args[2] = {& __va_arg0, & __va_arg1};
+    LOG_Message(LOGS_INFO,"Source %s new minpoll %d",
+                (void * const *)(__va_args));
+  }
+  if (inst->maxpoll < inst->minpoll) NCR_ModifyMaxpoll(inst,inst->minpoll);
+  return_label: return;
+}
+
+void NCR_ModifyMaxpoll(NCR_Instance inst, int new_maxpoll)
+{
+  char *tmp;
+  if (new_maxpoll < -6) goto return_label;
+  else 
+    if (new_maxpoll > 24) goto return_label;
+  inst->maxpoll = new_maxpoll;
+  ;
+  tmp = UTI_IPToString(& inst->remote_addr.ip_addr);
+  {
+    char *__va_arg0 = tmp;
+    int __va_arg1 = new_maxpoll;
+    void *__va_args[2] = {& __va_arg0, & __va_arg1};
+    LOG_Message(LOGS_INFO,"Source %s new maxpoll %d",
+                (void * const *)(__va_args));
+  }
+  if (inst->minpoll > inst->maxpoll) NCR_ModifyMinpoll(inst,inst->maxpoll);
+  return_label: return;
+}
+
+void NCR_ModifyMaxdelay(NCR_Instance inst, double new_max_delay)
+{
+  double tmp;
+  char *tmp_1;
+  if (new_max_delay < 1.0e3) tmp = new_max_delay; else tmp = 1.0e3;
+  if (0.0 > tmp) inst->max_delay = 0.0;
+  else {
+    double tmp_0;
+    if (new_max_delay < 1.0e3) tmp_0 = new_max_delay; else tmp_0 = 1.0e3;
+    inst->max_delay = tmp_0;
+  }
+  ;
+  tmp_1 = UTI_IPToString(& inst->remote_addr.ip_addr);
+  {
+    char *__va_arg0 = tmp_1;
+    double __va_arg1 = inst->max_delay;
+    void *__va_args[2] = {& __va_arg0, & __va_arg1};
+    LOG_Message(LOGS_INFO,"Source %s new maxdelay %f",
+                (void * const *)(__va_args));
+  }
+  return;
+}
+
+void NCR_ModifyMaxdelayratio(NCR_Instance inst, double new_max_delay_ratio)
+{
+  double tmp;
+  char *tmp_1;
+  if (new_max_delay_ratio < 1.0e6) tmp = new_max_delay_ratio;
+  else tmp = 1.0e6;
+  if (0.0 > tmp) inst->max_delay_ratio = 0.0;
+  else {
+    double tmp_0;
+    if (new_max_delay_ratio < 1.0e6) tmp_0 = new_max_delay_ratio;
+    else tmp_0 = 1.0e6;
+    inst->max_delay_ratio = tmp_0;
+  }
+  ;
+  tmp_1 = UTI_IPToString(& inst->remote_addr.ip_addr);
+  {
+    char *__va_arg0 = tmp_1;
+    double __va_arg1 = inst->max_delay_ratio;
+    void *__va_args[2] = {& __va_arg0, & __va_arg1};
+    LOG_Message(LOGS_INFO,"Source %s new maxdelayratio %f",
+                (void * const *)(__va_args));
+  }
+  return;
+}
+
+void NCR_ModifyMaxdelaydevratio(NCR_Instance inst,
+                                double new_max_delay_dev_ratio)
+{
+  double tmp;
+  char *tmp_1;
+  if (new_max_delay_dev_ratio < 1.0e6) tmp = new_max_delay_dev_ratio;
+  else tmp = 1.0e6;
+  if (0.0 > tmp) inst->max_delay_dev_ratio = 0.0;
+  else {
+    double tmp_0;
+    if (new_max_delay_dev_ratio < 1.0e6) tmp_0 = new_max_delay_dev_ratio;
+    else tmp_0 = 1.0e6;
+    inst->max_delay_dev_ratio = tmp_0;
+  }
+  ;
+  tmp_1 = UTI_IPToString(& inst->remote_addr.ip_addr);
+  {
+    char *__va_arg0 = tmp_1;
+    double __va_arg1 = inst->max_delay_dev_ratio;
+    void *__va_args[2] = {& __va_arg0, & __va_arg1};
+    LOG_Message(LOGS_INFO,"Source %s new maxdelaydevratio %f",
+                (void * const *)(__va_args));
+  }
+  return;
+}
+
+void NCR_ModifyMinstratum(NCR_Instance inst, int new_min_stratum)
+{
+  char *tmp;
+  inst->min_stratum = new_min_stratum;
+  ;
+  tmp = UTI_IPToString(& inst->remote_addr.ip_addr);
+  {
+    char *__va_arg0 = tmp;
+    int __va_arg1 = new_min_stratum;
+    void *__va_args[2] = {& __va_arg0, & __va_arg1};
+    LOG_Message(LOGS_INFO,"Source %s new minstratum %d",
+                (void * const *)(__va_args));
+  }
+  return;
+}
+
+void NCR_ModifyPolltarget(NCR_Instance inst, int new_poll_target)
+{
+  char *tmp;
+  inst->poll_target = new_poll_target;
+  ;
+  tmp = UTI_IPToString(& inst->remote_addr.ip_addr);
+  {
+    char *__va_arg0 = tmp;
+    int __va_arg1 = new_poll_target;
+    void *__va_args[2] = {& __va_arg0, & __va_arg1};
+    LOG_Message(LOGS_INFO,"Source %s new polltarget %d",
+                (void * const *)(__va_args));
+  }
+  return;
+}
+
+void NCR_InitiateSampleBurst(NCR_Instance inst, int n_good_samples,
+                             int n_total_samples)
+{
+  if (inst->mode == (unsigned int)MODE_CLIENT) 
+    switch (inst->opmode) {
+      case (OperatingMode)MD_BURST_WAS_OFFLINE:
+      case (OperatingMode)MD_BURST_WAS_ONLINE:
+      break;
+      case (OperatingMode)MD_ONLINE: case (OperatingMode)MD_OFFLINE:
+      if (inst->opmode == (unsigned int)MD_ONLINE) inst->opmode = MD_BURST_WAS_ONLINE;
+      else inst->opmode = MD_BURST_WAS_OFFLINE;
+      inst->burst_good_samples_to_go = n_good_samples;
+      inst->burst_total_samples_to_go = n_total_samples;
+      start_initial_timeout(inst);
+      break;
+      default: __FC_assert(0 != 0,"ntp_core.c",2475,"0");
+      break;
+    }
+  return;
+}
+
+void NCR_ReportSource(NCR_Instance inst, RPT_SourceReport *report,
+                      struct timespec *now)
+{
+  report->poll = get_transmit_poll(inst);
+  switch (inst->mode) {
+    case (NTP_Mode)MODE_CLIENT: report->mode = RPT_NTP_CLIENT;
+    break;
+    case (NTP_Mode)MODE_ACTIVE: report->mode = RPT_NTP_PEER;
+    break;
+    default: __FC_assert(0 != 0,"ntp_core.c",2497,"0");
+  }
+  return;
+}
+
+void NCR_GetNTPReport(NCR_Instance inst, RPT_NTPReport *report)
+{
+  *report = inst->report;
+  return;
+}
+
+int NCR_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits, int allow,
+                             int all)
+{
+  int __retres;
+  ADF_Status status;
+  if (allow) 
+    if (all) status = ADF_AllowAll(access_auth_table,ip_addr,subnet_bits);
+    else status = ADF_Allow(access_auth_table,ip_addr,subnet_bits);
+  else 
+    if (all) status = ADF_DenyAll(access_auth_table,ip_addr,subnet_bits);
+    else status = ADF_Deny(access_auth_table,ip_addr,subnet_bits);
+  if (status != (unsigned int)ADF_SUCCESS) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (allow) {
+    NTP_Remote_Address remote_addr;
+    if (server_sock_fd4_0 == -2) {
+      int tmp;
+      tmp = ADF_IsAnyAllowed(access_auth_table,1);
+      if (tmp) {
+        remote_addr.ip_addr.family = (unsigned short)1;
+        if ((int)remote_addr.ip_addr.family != 0) server_sock_fd4_0 = 100;
+        else server_sock_fd4_0 = 0;
+      }
+    }
+    if (server_sock_fd6 == -2) {
+      int tmp_0;
+      tmp_0 = ADF_IsAnyAllowed(access_auth_table,2);
+      if (tmp_0) {
+        remote_addr.ip_addr.family = (unsigned short)2;
+        if ((int)remote_addr.ip_addr.family != 0) server_sock_fd6 = 100;
+        else server_sock_fd6 = 0;
+      }
+    }
+  }
+  else {
+    if (server_sock_fd4_0 != -2) {
+      int tmp_1;
+      tmp_1 = ADF_IsAnyAllowed(access_auth_table,1);
+      if (! tmp_1) {
+        __FC_assert((server_sock_fd4_0 == 100) != 0,"ntp_core.c",2550,
+                    "server_sock_fd4 == 100");
+        server_sock_fd4_0 = -2;
+      }
+    }
+    if (server_sock_fd6 != -2) {
+      int tmp_2;
+      tmp_2 = ADF_IsAnyAllowed(access_auth_table,2);
+      if (! tmp_2) {
+        __FC_assert((server_sock_fd6 == 100) != 0,"ntp_core.c",2555,
+                    "server_sock_fd6 == 100");
+        server_sock_fd6 = -2;
+      }
+    }
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int NCR_CheckAccessRestriction(IPAddr *ip_addr)
+{
+  int tmp;
+  tmp = ADF_IsAllowed(access_auth_table,ip_addr);
+  return tmp;
+}
+
+void NCR_IncrementActivityCounters(NCR_Instance inst, int *online,
+                                   int *offline, int *burst_online,
+                                   int *burst_offline)
+{
+  switch (inst->opmode) {
+    case (OperatingMode)MD_BURST_WAS_OFFLINE: (*burst_offline) ++;
+    break;
+    case (OperatingMode)MD_BURST_WAS_ONLINE: (*burst_online) ++;
+    break;
+    case (OperatingMode)MD_ONLINE: (*online) ++;
+    break;
+    case (OperatingMode)MD_OFFLINE: (*offline) ++;
+    break;
+    default: __FC_assert(0 != 0,"ntp_core.c",2591,"0");
+    break;
+  }
+  return;
+}
+
+NTP_Remote_Address *NCR_GetRemoteAddress(NCR_Instance inst)
+{
+  NTP_Remote_Address *__retres;
+  __retres = & inst->remote_addr;
+  return __retres;
+}
+
+uint32_t NCR_GetLocalRefid(NCR_Instance inst)
+{
+  uint32_t tmp;
+  tmp = UTI_IPToRefid(& inst->local_addr.ip_addr);
+  return tmp;
+}
+
+int NCR_IsSyncPeer(NCR_Instance inst)
+{
+  int tmp;
+  tmp = SRC_IsSyncPeer(inst->source);
+  return tmp;
+}
+
+static void broadcast_timeout(void *arg)
+{
+  BroadcastDestination *destination;
+  NTP_int64 orig_ts;
+  NTP_Local_Timestamp recv_ts;
+  int poll;
+  double tmp;
+  double tmp_0;
+  double tmp_1;
+  destination = (BroadcastDestination *)ARR_GetElement(broadcasts_0,
+                                                       (unsigned int)((long)arg));
+  tmp = log((double)destination->interval);
+  tmp_0 = log(2.0);
+  poll = (int)(tmp / tmp_0 + 0.5);
+  UTI_ZeroNtp64(& orig_ts);
+  zero_local_timestamp(& recv_ts);
+  transmit_packet(MODE_BROADCAST,0,poll,4,0,(unsigned int)0,& orig_ts,
+                  & orig_ts,& recv_ts,(NTP_Local_Timestamp *)0,
+                  (NTP_int64 *)0,(NTP_int64 *)0,& destination->addr,
+                  & destination->local_addr);
+  ;
+  tmp_1 = get_separation(poll);
+  ;
+  add_timeout_in_class((double)destination->interval,tmp_1,0.02,
+                       SCH_NtpBroadcastClass,& broadcast_timeout,arg);
+  return;
+}
+
+void NCR_AddBroadcastDestination(IPAddr *addr, unsigned short port,
+                                 int interval)
+{
+  BroadcastDestination *destination;
+  int tmp_0;
+  unsigned int tmp_2;
+  destination = (BroadcastDestination *)ARR_GetNewElement(broadcasts_0);
+  destination->addr.ip_addr = *addr;
+  destination->addr.port = port;
+  destination->local_addr.ip_addr.family = (unsigned short)0;
+  destination->local_addr.if_index = -1;
+  if ((int)destination->addr.ip_addr.family != 0) destination->local_addr.sock_fd = 100;
+  else destination->local_addr.sock_fd = 0;
+  if (interval < 1 << 24) tmp_0 = interval; else tmp_0 = 1 << 24;
+  if (1 > tmp_0) destination->interval = 1;
+  else {
+    int tmp_1;
+    if (interval < 1 << 24) tmp_1 = interval; else tmp_1 = 1 << 24;
+    destination->interval = tmp_1;
+  }
+  tmp_2 = ARR_GetSize(broadcasts_0);
+  ;
+  add_timeout_in_class((double)destination->interval,0.2,0.02,
+                       SCH_NtpBroadcastClass,& broadcast_timeout,
+                       (void *)((long)(tmp_2 - (unsigned int)1)));
+  return;
+}
+
+static void advance_time(double x)
+{
+  UTI_AddDoubleToTimespec(& current_time,x,& current_time);
+  return;
+}
+
+static uint32_t get_random_key_id(void)
+{
+  uint32_t id;
+  while (1) {
+    int tmp_0;
+    {
+      long tmp;
+      tmp = random();
+      id = (unsigned int)(tmp % (long)6 + (long)2);
+    }
+    tmp_0 = KEY_KeyKnown(id);
+    if (tmp_0) break;
+  }
+  return id;
+}
+
+static void send_request(NCR_Instance inst)
+{
+  NTP_Local_Address local_addr;
+  NTP_Local_Timestamp local_ts;
+  uint32_t prev_tx_count;
+  long tmp;
+  prev_tx_count = inst->report.total_tx_count;
+  transmit_timeout((void *)inst);
+  if (! (! inst->valid_rx)) {
+    TST_Fail(88);
+    exit(1);
+  }
+  if (! (prev_tx_count + (uint32_t)1 == inst->report.total_tx_count)) {
+    TST_Fail(89);
+    exit(1);
+  }
+  advance_time(1e-5);
+  tmp = random();
+  if (tmp % (long)2) {
+    local_addr.ip_addr.family = (unsigned short)0;
+    local_addr.if_index = -1;
+    local_addr.sock_fd = 101;
+    local_ts.ts = current_time;
+    local_ts.err = 0.0;
+    local_ts.source = NTP_TS_KERNEL;
+    NCR_ProcessTxKnown(inst,& local_addr,& local_ts,& req_buffer.ntp_pkt,
+                       req_length);
+  }
+  return;
+}
+
+static void process_request(NTP_Remote_Address *remote_addr)
+{
+  NTP_Local_Address local_addr;
+  NTP_Local_Timestamp local_ts;
+  long tmp;
+  local_addr.ip_addr.family = (unsigned short)0;
+  local_addr.if_index = -1;
+  local_addr.sock_fd = 100;
+  local_ts.ts = current_time;
+  local_ts.err = 0.0;
+  local_ts.source = NTP_TS_KERNEL;
+  res_length = 0;
+  NCR_ProcessRxUnknown(remote_addr,& local_addr,& local_ts,
+                       & req_buffer.ntp_pkt,req_length);
+  res_length = req_length;
+  res_buffer = req_buffer;
+  advance_time(1e-5);
+  tmp = random();
+  if (tmp % (long)2) {
+    local_ts.ts = current_time;
+    NCR_ProcessTxUnknown(remote_addr,& local_addr,& local_ts,
+                         & res_buffer.ntp_pkt,res_length);
+  }
+  return;
+}
+
+static void send_response(int interleaved, int authenticated,
+                          int allow_update, int valid_ts, int valid_auth)
+{
+  NTP_Packet *req;
+  NTP_Packet *res;
+  int tmp;
+  double tmp_0;
+  double tmp_1;
+  double tmp_2;
+  int auth_len = 0;
+  req = & req_buffer.ntp_pkt;
+  res = & res_buffer.ntp_pkt;
+  if (! (req_length >= 48)) {
+    TST_Fail(142);
+    exit(1);
+  }
+  if (((int)req->lvm & 0x7) == MODE_CLIENT) tmp = MODE_SERVER;
+  else tmp = MODE_ACTIVE;
+  res->lvm = (unsigned char)((((LEAP_Normal << 6) & 0xc0) | (((((int)req->lvm >> 3) & 0x7) << 3) & 0x38)) | (
+                             tmp & 0x07));
+  res->stratum = (unsigned char)1;
+  res->poll = req->poll;
+  res->precision = (signed char)(-20);
+  res->root_delay = UTI_DoubleToNtp32(0.1);
+  res->root_dispersion = UTI_DoubleToNtp32(0.1);
+  res->reference_id = (unsigned int)0;
+  UTI_ZeroNtp64(& res->reference_ts);
+  if (interleaved) res->originate_ts = req->receive_ts;
+  else res->originate_ts = req->transmit_ts;
+  tmp_0 = TST_GetRandomDouble(1e-4,1e-2);
+  advance_time(tmp_0);
+  UTI_TimespecToNtp64(& current_time,& res->receive_ts,(NTP_int64 *)0);
+  tmp_1 = TST_GetRandomDouble(- 1e-4,1e-3);
+  advance_time(tmp_1);
+  UTI_TimespecToNtp64(& current_time,& res->transmit_ts,(NTP_int64 *)0);
+  tmp_2 = TST_GetRandomDouble(1e-4,1e-2);
+  advance_time(tmp_2);
+  if (! valid_ts) {
+    long tmp_3;
+    int tmp_4;
+    tmp_3 = random();
+    if (allow_update) tmp_4 = 4; else tmp_4 = 5;
+    switch (tmp_3 % (long)tmp_4) {
+      long tmp_5;
+      long tmp_6;
+      case (long)0:
+      { /* sequence */
+        tmp_5 = random();
+        res->originate_ts.hi = (unsigned int)tmp_5;
+      }
+      break;
+      case (long)1:
+      { /* sequence */
+        tmp_6 = random();
+        res->originate_ts.lo = (unsigned int)tmp_6;
+      }
+      break;
+      case (long)2: UTI_ZeroNtp64(& res->originate_ts);
+      break;
+      case (long)3: UTI_ZeroNtp64(& res->receive_ts);
+      break;
+      case (long)4: UTI_ZeroNtp64(& res->transmit_ts);
+      break;
+      default: __FC_assert(0 != 0,"test/unit/ntp_core.c",179,"0");
+    }
+  }
+  if (authenticated) {
+    uint32_t tmp_9;
+    int tmp_12;
+    uint32_t tmp_11;
+    if (req->auth_keyid) res->auth_keyid = req->auth_keyid;
+    else {
+      uint32_t tmp_8;
+      uint32_t tmp_7;
+      tmp_7 = get_random_key_id();
+      tmp_8 = htonl(tmp_7);
+      res->auth_keyid = tmp_8;
+    }
+    tmp_9 = ntohl(res->auth_keyid);
+    auth_len = KEY_GetAuthLength(tmp_9);
+    __FC_assert(auth_len != 0,"test/unit/ntp_core.c",186,"auth_len");
+    if ((((int)res->lvm >> 3) & 0x7) == 4) {
+      long tmp_10;
+      tmp_10 = random();
+      if (tmp_10 % (long)2) 
+        if (auth_len < (4 + 20) - 4) auth_len = auth_len;
+        else auth_len = (4 + 20) - 4;
+    }
+    ;
+    ;
+    ;
+    tmp_11 = ntohl(res->auth_keyid);
+    tmp_12 = KEY_GenerateAuth(tmp_11,(unsigned char const *)res,48,
+                              (unsigned char *)(res->auth_data),auth_len);
+    ;
+    if (tmp_12 != auth_len) __FC_assert(0 != 0,"test/unit/ntp_core.c",192,
+                                        "0");
+    res_length = (48 + 4) + auth_len;
+  }
+  else res_length = 48;
+  if (! valid_auth) 
+    if (authenticated) {
+      long tmp_13;
+      __FC_assert(auth_len != 0,"test/unit/ntp_core.c",199,"auth_len");
+      tmp_13 = random();
+      switch (tmp_13 % (long)4) {
+        uint32_t tmp_14;
+        uint32_t tmp_15;
+        int tmp_17;
+        uint32_t tmp_16;
+        long tmp_18;
+        long tmp_19;
+        case (long)0:
+        {
+          tmp_14 = ntohl(res->auth_keyid);
+          res->auth_keyid = htonl(tmp_14 + (uint32_t)1);
+        }
+        break;
+        case (long)1:
+        {
+          tmp_15 = ntohl(res->auth_keyid);
+          res->auth_keyid = htonl(tmp_15 ^ (unsigned int)1);
+        }
+        ;
+        ;
+        ;
+        tmp_16 = ntohl(res->auth_keyid);
+        tmp_17 = KEY_GenerateAuth(tmp_16,(unsigned char const *)res,48,
+                                  (unsigned char *)(res->auth_data),auth_len);
+        ;
+        if (tmp_17 != auth_len) __FC_assert(0 != 0,"test/unit/ntp_core.c",
+                                            209,"0");
+        break;
+        case (long)2:
+        { /* sequence */
+          tmp_18 = random();
+          res->auth_data[tmp_18 % (long)auth_len] = (uint8_t)((int)res->auth_data[
+                                                              tmp_18 % (long)auth_len] + 1);
+        }
+        break;
+        case (long)3:
+        { /* sequence */
+          tmp_19 = random();
+          res_length = (int)(48L + (long)4 * (tmp_19 % (long)((4 + auth_len) / 4)));
+        }
+        if ((((int)res->lvm >> 3) & 0x7) == 4) 
+          if (res_length == 48 + (4 + 20)) res_length -= 4;
+        break;
+        default: __FC_assert(0 != 0,"test/unit/ntp_core.c",221,"0");
+      }
+    }
+  return;
+}
+
+static void process_response(NCR_Instance inst, int good, int valid,
+                             int updated_sync, int updated_init)
+{
+  NTP_Local_Address local_addr;
+  NTP_Local_Timestamp local_ts;
+  NTP_Packet *res;
+  uint32_t prev_rx_count;
+  uint32_t prev_valid_count;
+  struct timespec prev_rx_ts;
+  struct timespec prev_init_rx_ts;
+  int prev_open_socket;
+  int ret;
+  res = & res_buffer.ntp_pkt;
+  local_addr.ip_addr.family = (unsigned short)0;
+  local_addr.if_index = -1;
+  if (((int)res->lvm & 0x7) != MODE_SERVER) local_addr.sock_fd = 100;
+  else local_addr.sock_fd = 101;
+  local_ts.ts = current_time;
+  local_ts.err = 0.0;
+  local_ts.source = NTP_TS_KERNEL;
+  prev_rx_count = inst->report.total_rx_count;
+  prev_valid_count = inst->report.total_valid_count;
+  prev_rx_ts = inst->local_rx.ts;
+  prev_init_rx_ts = inst->init_local_rx.ts;
+  prev_open_socket = inst->local_addr.sock_fd != -2;
+  ret = NCR_ProcessRxKnown(inst,& local_addr,& local_ts,res,res_length);
+  if (good > 0) {
+    if (! ret) {
+      TST_Fail(254);
+      exit(1);
+    }
+  }
+  else 
+    if (! good) 
+      if (! (! ret)) {
+        TST_Fail(256);
+        exit(1);
+      }
+  if (prev_open_socket) {
+    if (! (prev_rx_count + (uint32_t)1 == inst->report.total_rx_count)) {
+      TST_Fail(259);
+      exit(1);
+    }
+  }
+  else 
+    if (! (prev_rx_count == inst->report.total_rx_count)) {
+      TST_Fail(261);
+      exit(1);
+    }
+  if (valid) {
+    if (! (prev_valid_count + (uint32_t)1 == inst->report.total_valid_count)) {
+      TST_Fail(264);
+      exit(1);
+    }
+  }
+  else 
+    if (! (prev_valid_count == inst->report.total_valid_count)) {
+      TST_Fail(266);
+      exit(1);
+    }
+  if (updated_sync) {
+    int tmp;
+    tmp = UTI_CompareTimespecs(& inst->local_rx.ts,& prev_rx_ts);
+    if (! tmp) {
+      TST_Fail(269);
+      exit(1);
+    }
+  }
+  else {
+    int tmp_0;
+    tmp_0 = UTI_CompareTimespecs(& inst->local_rx.ts,& prev_rx_ts);
+    if (tmp_0) {
+      TST_Fail(271);
+      exit(1);
+    }
+  }
+  if (updated_init > 0) {
+    int tmp_1;
+    tmp_1 = UTI_CompareTimespecs(& inst->init_local_rx.ts,& prev_init_rx_ts);
+    if (! tmp_1) {
+      TST_Fail(274);
+      exit(1);
+    }
+  }
+  else 
+    if (! updated_init) {
+      int tmp_2;
+      tmp_2 = UTI_CompareTimespecs(& inst->init_local_rx.ts,
+                                   & prev_init_rx_ts);
+      if (tmp_2) {
+        TST_Fail(276);
+        exit(1);
+      }
+    }
+  if (valid) {
+    {
+      int tmp_3;
+      tmp_3 = UTI_IsZeroTimespec(& inst->init_local_rx.ts);
+      if (! tmp_3) {
+        TST_Fail(279);
+        exit(1);
+      }
+    }
+    {
+      int tmp_4;
+      tmp_4 = UTI_IsZeroNtp64(& inst->init_remote_ntp_tx);
+      if (! tmp_4) {
+        TST_Fail(280);
+        exit(1);
+      }
+    }
+  }
+  return;
+}
+
+static void process_replay(NCR_Instance inst,
+                           NTP_Receive_Buffer *packet_queue,
+                           int queue_length, int updated_init)
+{
+  while (1) {
+    int tmp_0;
+    {
+      long tmp;
+      tmp = random();
+      res_buffer = *(packet_queue + tmp % (long)queue_length);
+    }
+    tmp_0 = UTI_CompareNtp64(& res_buffer.ntp_pkt.transmit_ts,
+                             & inst->remote_ntp_tx);
+    if (tmp_0) break;
+  }
+  process_response(inst,0,0,0,updated_init);
+  advance_time(1e-6);
+  return;
+}
+
+void test_unit(void)
+{
+  int i;
+  int j;
+  int k;
+  int interleaved;
+  int authenticated;
+  int valid;
+  int updated;
+  int has_updated;
+  CPS_NTP_Source source;
+  NTP_Remote_Address remote_addr;
+  NCR_Instance inst1;
+  NCR_Instance inst2;
+  NTP_Receive_Buffer packet_queue[10];
+  char source_line[31] =
+    {(char)'1',
+     (char)'2',
+     (char)'7',
+     (char)'.',
+     (char)'0',
+     (char)'.',
+     (char)'0',
+     (char)'.',
+     (char)'1',
+     (char)' ',
+     (char)'m',
+     (char)'a',
+     (char)'x',
+     (char)'d',
+     (char)'e',
+     (char)'l',
+     (char)'a',
+     (char)'y',
+     (char)'d',
+     (char)'e',
+     (char)'v',
+     (char)'r',
+     (char)'a',
+     (char)'t',
+     (char)'i',
+     (char)'o',
+     (char)' ',
+     (char)'1',
+     (char)'e',
+     (char)'6',
+     (char)'\000'};
+  char conf[4][100] =
+    {{(char)'a', (char)'l', (char)'l', (char)'o', (char)'w', (char)'\000'},
+     {(char)'p',
+      (char)'o',
+      (char)'r',
+      (char)'t',
+      (char)' ',
+      (char)'0',
+      (char)'\000'},
+     {(char)'l', (char)'o', (char)'c', (char)'a', (char)'l', (char)'\000'},
+     {(char)'k',
+      (char)'e',
+      (char)'y',
+      (char)'f',
+      (char)'i',
+      (char)'l',
+      (char)'e',
+      (char)' ',
+      (char)'n',
+      (char)'t',
+      (char)'p',
+      (char)'_',
+      (char)'c',
+      (char)'o',
+      (char)'r',
+      (char)'e',
+      (char)'.',
+      (char)'k',
+      (char)'e',
+      (char)'y',
+      (char)'s',
+      (char)'\000'}};
+  CNF_Initialise(0,0);
+  i = 0;
+  /*@ loop unroll 4; */
+  while ((unsigned long)i < sizeof(conf) / sizeof(conf[0])) {
+    CNF_ParseLine((char const *)0,i + 1,conf[i]);
+    i ++;
+  }
+  LCL_Initialise();
+  TST_RegisterDummyDrivers();
+  SCH_Initialise();
+  SRC_Initialise();
+  NIO_Initialise(0);
+  NCR_Initialise();
+  REF_Initialise();
+  TST_SuspendLogging();
+  KEY_Initialise();
+  TST_ResumeLogging();
+  CNF_SetupAccessRestrictions();
+  CPS_ParseNTPSourceAdd(source_line,& source);
+  i = 0;
+  /*@ loop unroll 3; */
+  while (i < 3) {
+    {
+      long tmp;
+      long tmp_0;
+      long tmp_1;
+      double tmp_2;
+      int tmp_4;
+      long tmp_3;
+      int tmp_14;
+      long tmp_13;
+      tmp = random();
+      if (tmp % (long)2) source.params.interleaved = 1;
+      tmp_0 = random();
+      if (tmp_0 % (long)2) source.params.authkey = get_random_key_id();
+      tmp_1 = random();
+      source.params.version = (int)(tmp_1 % (long)4 + (long)1);
+      UTI_ZeroTimespec(& current_time);
+      tmp_2 = TST_GetRandomDouble(1.0,1e9);
+      advance_time(tmp_2);
+      TST_GetRandomAddress(& remote_addr.ip_addr,0,-1);
+      remote_addr.port = (unsigned short)123;
+      tmp_3 = random();
+      if (tmp_3 % (long)2) tmp_4 = NTP_SERVER; else tmp_4 = NTP_PEER;
+      inst1 = NCR_GetInstance(& remote_addr,
+                              (enum __anonenum_NTP_Source_Type_30)tmp_4,
+                              & source.params);
+      NCR_StartInstance(inst1);
+      has_updated = 0;
+      j = 0;
+      /*@ loop unroll 5; */
+      while (j < 5) {
+        {
+          int tmp_6;
+          long tmp_5;
+          long tmp_7;
+          int tmp_8;
+          int tmp_9;
+          int tmp_10;
+          int tmp_11;
+          int tmp_12;
+          tmp_5 = random();
+          if (tmp_5 % (long)2) 
+            if (inst1->mode != (unsigned int)MODE_CLIENT) tmp_6 = 1;
+            else 
+              if (inst1->tx_count < (unsigned int)4) tmp_6 = 1;
+              else tmp_6 = 0;
+          else tmp_6 = 0;
+          interleaved = tmp_6;
+          tmp_7 = random();
+          authenticated = (int)(tmp_7 % (long)2);
+          if (! interleaved) goto _LOR;
+          else 
+            if (source.params.interleaved) 
+              if (has_updated) 
+                _LOR:
+                if (! source.params.authkey) tmp_8 = 1;
+                else 
+                  if (authenticated) tmp_8 = 1; else tmp_8 = 0;
+              else tmp_8 = 0;
+            else tmp_8 = 0;
+          valid = tmp_8;
+          if (valid) goto _LOR_0;
+          else 
+            if (inst1->mode == (unsigned int)MODE_ACTIVE) 
+              _LOR_0:
+              if (! source.params.authkey) tmp_9 = 1;
+              else 
+                if (authenticated) tmp_9 = 1; else tmp_9 = 0;
+            else tmp_9 = 0;
+          updated = tmp_9;
+          if (has_updated) tmp_10 = 1;
+          else 
+            if (updated) tmp_10 = 1; else tmp_10 = 0;
+          has_updated = tmp_10;
+          if (inst1->mode == (unsigned int)MODE_CLIENT) updated = 0;
+          send_request(inst1);
+          send_response(interleaved,authenticated,1,0,1);
+          process_response(inst1,0,0,0,updated);
+          if (source.params.authkey) {
+            send_response(interleaved,authenticated,1,1,0);
+            process_response(inst1,0,0,0,0);
+          }
+          send_response(interleaved,authenticated,1,1,1);
+          process_response(inst1,-1,valid,valid,updated);
+          process_response(inst1,0,0,0,0);
+          advance_time(- 1.0);
+          send_response(interleaved,authenticated,1,1,1);
+          if (updated) 
+            if (valid) tmp_11 = 1; else tmp_11 = 0;
+          else tmp_11 = 0;
+          ;
+          process_response(inst1,0,0,0,tmp_11);
+          advance_time(1.0);
+          send_response(interleaved,authenticated,1,1,1);
+          ;
+          if (valid) 
+            if (updated) tmp_12 = 1; else tmp_12 = 0;
+          else tmp_12 = 0;
+          ;
+          process_response(inst1,0,0,tmp_12,updated);
+        }
+        j ++;
+      }
+      NCR_DestroyInstance(inst1);
+      tmp_13 = random();
+      if (tmp_13 % (long)2) tmp_14 = NTP_SERVER; else tmp_14 = NTP_PEER;
+      inst1 = NCR_GetInstance(& remote_addr,
+                              (enum __anonenum_NTP_Source_Type_30)tmp_14,
+                              & source.params);
+      NCR_StartInstance(inst1);
+      j = 0;
+      /*@ loop unroll 2; */
+      while (j < 2) {
+        send_request(inst1);
+        process_request(& remote_addr);
+        process_response(inst1,1,1,1,0);
+        advance_time((double)(1 << inst1->local_poll));
+        j ++;
+      }
+      NCR_DestroyInstance(inst1);
+      inst1 = NCR_GetInstance(& remote_addr,NTP_PEER,& source.params);
+      NCR_StartInstance(inst1);
+      inst2 = NCR_GetInstance(& remote_addr,NTP_PEER,& source.params);
+      NCR_StartInstance(inst2);
+      req_length = 0;
+      res_length = req_length;
+      j = 0;
+      /*@ loop unroll 4; */
+      while (j < 4) {
+        {
+          int tmp_15;
+          send_request(inst1);
+          res_buffer = req_buffer;
+          if (! res_length) tmp_15 = 1;
+          else 
+            if (res_length == req_length) tmp_15 = 1; else tmp_15 = 0;
+          __FC_assert(tmp_15 != 0,"test/unit/ntp_core.c",446,
+                      "!res_length || res_length == req_length");
+          res_length = req_length;
+          if (! (inst1->valid_timestamps == (j > 0))) {
+            TST_Fail(449);
+            exit(1);
+          }
+          process_response(inst2,j > source.params.interleaved,j > 0,j > 0,1);
+          packet_queue[(j * 2) % 10] = res_buffer;
+          k = 0;
+          /*@ loop unroll 5; */
+          while (k < j % 4 + 1) {
+            {
+              int tmp_16;
+              int tmp_17;
+              int tmp_18;
+              if (k) tmp_16 = -1; else tmp_16 = 1;
+              if (j * 2 + 1 < 10) tmp_17 = j * 2 + 1; else tmp_17 = 10;
+              ;
+              process_replay(inst1,packet_queue,tmp_17,tmp_16);
+              if (j * 2 + 1 < 10) tmp_18 = j * 2 + 1; else tmp_18 = 10;
+              ;
+              process_replay(inst2,packet_queue,tmp_18,-1);
+            }
+            k ++;
+          }
+          advance_time((double)(1 << (source.params.minpoll - 1)));
+          send_request(inst2);
+          res_buffer = req_buffer;
+          __FC_assert((res_length == req_length) != 0,"test/unit/ntp_core.c",
+                      468,"res_length == req_length");
+          if (! (inst2->valid_timestamps == (j > 0))) {
+            TST_Fail(470);
+            exit(1);
+          }
+          process_response(inst1,1,1,1,1);
+          packet_queue[(j * 2 + 1) % 10] = res_buffer;
+          k = 0;
+          /*@ loop unroll 5; */
+          while (k < j % 4 + 1) {
+            {
+              int tmp_19;
+              int tmp_20;
+              int tmp_21;
+              if (k) tmp_19 = -1; else tmp_19 = 1;
+              if (j * 2 + 2 < 10) tmp_20 = j * 2 + 2; else tmp_20 = 10;
+              ;
+              process_replay(inst1,packet_queue,tmp_20,tmp_19);
+              if (j * 2 + 2 < 10) tmp_21 = j * 2 + 2; else tmp_21 = 10;
+              ;
+              process_replay(inst2,packet_queue,tmp_21,-1);
+            }
+            k ++;
+          }
+          advance_time((double)(1 << (source.params.minpoll - 1)));
+        }
+        j ++;
+      }
+      NCR_DestroyInstance(inst1);
+      NCR_DestroyInstance(inst2);
+    }
+    i ++;
+  }
+  KEY_Finalise();
+  REF_Finalise();
+  NCR_Finalise();
+  NIO_Finalise();
+  SRC_Finalise();
+  SCH_Finalise();
+  LCL_Finalise();
+  CNF_Finalise();
+  HSH_Finalise();
+  return;
+}
+
+
diff --git a/chrony/.frama-c/chrony-ntp-core.parse/metrics.log b/chrony/.frama-c/chrony-ntp-core.parse/metrics.log
new file mode 100644
index 0000000000000000000000000000000000000000..9e603cffce3cddb3cfe153e6fa84918c6be358ed
--- /dev/null
+++ b/chrony/.frama-c/chrony-ntp-core.parse/metrics.log
@@ -0,0 +1,323 @@
+[metrics] Defined functions (521)
+=======================
+ ADF_Allow (1 call); ADF_AllowAll (1 call); ADF_CreateTable (1 call);
+ ADF_Deny (1 call); ADF_DenyAll (1 call); ADF_DestroyTable (1 call);
+ ADF_IsAllowed (2 calls); ADF_IsAnyAllowed (4 calls);
+ ARR_AppendElement (3 calls); ARR_CreateInstance (13 calls);
+ ARR_DestroyInstance (14 calls); ARR_GetElement (30 calls);
+ ARR_GetElements (6 calls); ARR_GetNewElement (9 calls);
+ ARR_GetSize (23 calls); ARR_SetSize (11 calls); CLG_Finalise (0 call);
+ CLG_GetClientAccessReportByIndex (0 call); CLG_GetClientIndex (1 call);
+ CLG_GetNtpMinPoll (1 call); CLG_GetNtpTimestamps (2 calls);
+ CLG_GetNumberOfIndices (0 call); CLG_GetServerStatsReport (0 call);
+ CLG_Initialise (0 call); CLG_LimitCommandResponseRate (0 call);
+ CLG_LimitNTPResponseRate (1 call); CLG_LogCommandAccess (0 call);
+ CLG_LogNTPAccess (1 call); CNF_AddBroadcasts (0 call);
+ CNF_AddInitSources (0 call); CNF_AddRefclocks (0 call);
+ CNF_AddSources (0 call); CNF_AllowLocalReference (1 call);
+ CNF_CreateDirs (0 call); CNF_Finalise (1 call);
+ CNF_GetAcquisitionPort (1 call); CNF_GetBindAcquisitionAddress (1 call);
+ CNF_GetBindAddress (1 call); CNF_GetBindCommandAddress (0 call);
+ CNF_GetBindCommandPath (0 call); CNF_GetClientLogLimit (1 call);
+ CNF_GetCombineLimit (1 call); CNF_GetCommandPort (0 call);
+ CNF_GetCommandRateLimit (1 call); CNF_GetCorrectionTimeRatio (1 call);
+ CNF_GetDriftFile (1 call); CNF_GetDumpDir (2 calls);
+ CNF_GetFallbackDrifts (1 call); CNF_GetHwTsInterface (1 call);
+ CNF_GetHwclockFile (0 call); CNF_GetInitSources (0 call);
+ CNF_GetInitStepThreshold (1 call); CNF_GetKeysFile (1 call);
+ CNF_GetLeapSecMode (1 call); CNF_GetLeapSecTimezone (1 call);
+ CNF_GetLockMemory (0 call); CNF_GetLogBanner (0 call);
+ CNF_GetLogChange (1 call); CNF_GetLogDir (0 call);
+ CNF_GetLogMeasurements (1 call); CNF_GetLogRefclocks (0 call);
+ CNF_GetLogRtc (0 call); CNF_GetLogStatistics (1 call);
+ CNF_GetLogTempComp (0 call); CNF_GetLogTracking (1 call);
+ CNF_GetMailOnChange (1 call); CNF_GetMakeStep (1 call);
+ CNF_GetManualEnabled (0 call); CNF_GetMaxChange (1 call);
+ CNF_GetMaxClockError (1 call); CNF_GetMaxDistance (1 call);
+ CNF_GetMaxDrift (1 call); CNF_GetMaxJitter (1 call);
+ CNF_GetMaxSamples (1 call); CNF_GetMaxSlewRate (0 call);
+ CNF_GetMaxUpdateSkew (1 call); CNF_GetMinSamples (1 call);
+ CNF_GetMinSources (1 call); CNF_GetNTPPort (2 calls);
+ CNF_GetNTPRateLimit (1 call); CNF_GetNoClientLog (1 call);
+ CNF_GetNtpSigndSocket (0 call); CNF_GetPidFile (0 call);
+ CNF_GetReselectDistance (1 call); CNF_GetRtcAutotrim (0 call);
+ CNF_GetRtcDevice (0 call); CNF_GetRtcFile (0 call);
+ CNF_GetRtcOnUtc (0 call); CNF_GetRtcSync (0 call);
+ CNF_GetSchedPriority (0 call); CNF_GetSmooth (1 call);
+ CNF_GetStratumWeight (1 call); CNF_GetTempComp (0 call);
+ CNF_GetUser (0 call); CNF_Initialise (1 call); CNF_ParseLine (2 calls);
+ CNF_ReadFile (1 call); CNF_SetupAccessRestrictions (1 call);
+ CPS_NormalizeLine (2 calls); CPS_ParseKey (1 call); CPS_ParseLocal (1 call);
+ CPS_ParseNTPSourceAdd (3 calls); CPS_SplitWord (25 calls);
+ DNS_IPAddress2Name (0 call); DNS_Name2IPAddress (3 calls);
+ DNS_Name2IPAddressAsync (0 call); DNS_Reload (0 call);
+ DNS_SetAddressFamily (0 call); HSH_Finalise (1 call);
+ HSH_GetHashId (2 calls); HSH_Hash (3 calls); KEY_CheckAuth (1 call);
+ KEY_CheckKeyLength (1 call); KEY_Finalise (1 call);
+ KEY_GenerateAuth (4 calls); KEY_GetAuthDelay (1 call);
+ KEY_GetAuthLength (2 calls); KEY_Initialise (1 call);
+ KEY_KeyKnown (2 calls); KEY_Reload (1 call);
+ LCL_AccumulateDeltaFrequency (0 call);
+ LCL_AccumulateFrequencyAndOffset (1 call); LCL_AccumulateOffset (3 calls);
+ LCL_AddDispersionNotifyHandler (1 call);
+ LCL_AddParameterChangeHandler (4 calls); LCL_ApplyStepOffset (5 calls);
+ LCL_CanSystemLeap (1 call); LCL_CookTime (11 calls); LCL_Finalise (1 call);
+ LCL_GetMaxClockError (5 calls); LCL_GetOffsetCorrection (5 calls);
+ LCL_GetSysPrecisionAsLog (0 call); LCL_GetSysPrecisionAsQuantum (3 calls);
+ LCL_Initialise (1 call); LCL_IsFirstParameterChangeHandler (1 call);
+ LCL_MakeStep (0 call); LCL_NotifyExternalTimeStep (1 call);
+ LCL_NotifyLeap (2 calls); LCL_ReadAbsoluteFrequency (5 calls);
+ LCL_ReadCookedTime (0 call); LCL_ReadRawTime (21 calls);
+ LCL_RemoveDispersionNotifyHandler (2 calls);
+ LCL_RemoveParameterChangeHandler (2 calls);
+ LCL_SetAbsoluteFrequency (3 calls); LCL_SetSyncStatus (2 calls);
+ LCL_SetSystemLeap (2 calls); LCL_SetTempComp (0 call); MD5Final (1 call);
+ MD5Init (1 call); MD5Update (3 calls); Malloc (12 calls); Malloc2 (7 calls);
+ NCR_AddAccessRestriction (1 call); NCR_AddBroadcastDestination (1 call);
+ NCR_ChangeRemoteAddress (0 call); NCR_CheckAccessRestriction (0 call);
+ NCR_DestroyInstance (4 calls); NCR_Finalise (1 call);
+ NCR_GetInstance (4 calls); NCR_GetLocalRefid (0 call);
+ NCR_GetNTPReport (0 call); NCR_GetRemoteAddress (0 call);
+ NCR_IncrementActivityCounters (0 call); NCR_Initialise (1 call);
+ NCR_InitiateSampleBurst (2 calls); NCR_IsSyncPeer (0 call);
+ NCR_ModifyMaxdelay (0 call); NCR_ModifyMaxdelaydevratio (0 call);
+ NCR_ModifyMaxdelayratio (0 call); NCR_ModifyMaxpoll (1 call);
+ NCR_ModifyMinpoll (1 call); NCR_ModifyMinstratum (0 call);
+ NCR_ModifyPolltarget (0 call); NCR_ProcessRxKnown (1 call);
+ NCR_ProcessRxUnknown (2 calls); NCR_ProcessTxKnown (1 call);
+ NCR_ProcessTxUnknown (2 calls); NCR_ReportSource (0 call);
+ NCR_ResetInstance (4 calls); NCR_ResetPoll (0 call);
+ NCR_SetConnectivity (1 call); NCR_SlewTimes (0 call);
+ NCR_StartInstance (4 calls); NIO_CloseClientSocket (0 call);
+ NIO_CloseServerSocket (0 call); NIO_Finalise (1 call);
+ NIO_Initialise (1 call); NIO_IsServerConnectable (2 calls);
+ NIO_IsServerSocket (1 call); NIO_OpenClientSocket (0 call);
+ NIO_OpenServerSocket (0 call); NIO_SendPacket (0 call);
+ NSD_Finalise (0 call); NSD_GetAuthDelay (1 call); NSD_Initialise (0 call);
+ NSD_SignAndSendPacket (1 call); REF_DisableLocal (0 call);
+ REF_EnableLocal (0 call); REF_Finalise (1 call); REF_GetLeapMode (1 call);
+ REF_GetMode (3 calls); REF_GetOrphanStratum (1 call);
+ REF_GetOurStratum (1 call); REF_GetReferenceParams (3 calls);
+ REF_GetSkew (1 call); REF_GetTaiOffset (0 call);
+ REF_GetTrackingReport (0 call); REF_Initialise (1 call);
+ REF_IsLeapSecondClose (2 calls); REF_ModifyMakestep (0 call);
+ REF_ModifyMaxupdateskew (0 call); REF_SetManualReference (0 call);
+ REF_SetMode (0 call); REF_SetModeEndHandler (0 call);
+ REF_SetReference (2 calls); REF_SetUnsynchronised (4 calls);
+ RGR_FindBestRegression (1 call); RGR_FindBestRobustRegression (0 call);
+ RGR_FindMedian (1 call); RGR_GetChi2Coef (0 call); RGR_GetTCoef (1 call);
+ RGR_MultipleRegress (1 call); RGR_WeightedRegression (0 call);
+ Realloc (1 call); Realloc2 (4 calls); SCH_AddFileHandler (2 calls);
+ SCH_AddTimeout (3 calls); SCH_AddTimeoutByDelay (1 call);
+ SCH_AddTimeoutInClass (0 call); SCH_Finalise (1 call);
+ SCH_GetLastEventTime (6 calls); SCH_Initialise (1 call);
+ SCH_MainLoop (0 call); SCH_QuitProgram (0 call);
+ SCH_RemoveFileHandler (2 calls); SCH_RemoveTimeout (3 calls);
+ SCH_SetFileHandlerEvent (0 call); SMT_Activate (2 calls);
+ SMT_Finalise (0 call); SMT_GetOffset (2 calls);
+ SMT_GetSmoothingReport (0 call); SMT_Initialise (0 call);
+ SMT_IsEnabled (2 calls); SMT_Leap (1 call); SMT_Reset (1 call);
+ SRC_AccumulateSample (1 call); SRC_ActiveSources (0 call);
+ SRC_CreateNewInstance (1 call); SRC_DestroyInstance (1 call);
+ SRC_DumpSources (0 call); SRC_Finalise (1 call);
+ SRC_GetSourcestats (4 calls); SRC_GetType (0 call); SRC_Initialise (1 call);
+ SRC_IsReachable (3 calls); SRC_IsSyncPeer (2 calls);
+ SRC_ReadNumberOfSources (0 call); SRC_ReloadSources (0 call);
+ SRC_RemoveDumpFiles (0 call); SRC_ReportSource (0 call);
+ SRC_ReportSourcestats (0 call); SRC_ReselectSource (1 call);
+ SRC_ResetInstance (2 calls); SRC_ResetReachability (0 call);
+ SRC_SelectSource (4 calls); SRC_SetActive (1 call); SRC_SetRefid (2 calls);
+ SRC_SetReselectDistance (0 call); SRC_UnsetActive (1 call);
+ SRC_UpdateReachability (1 call); SST_AccumulateSample (1 call);
+ SST_AddDispersion (1 call); SST_CreateInstance (1 call);
+ SST_DeleteInstance (1 call); SST_DoNewRegression (2 calls);
+ SST_DoSourceReport (1 call); SST_DoSourcestatsReport (1 call);
+ SST_Finalise (0 call); SST_GetDelayTestData (2 calls);
+ SST_GetFrequencyRange (1 call); SST_GetJitterAsymmetry (1 call);
+ SST_GetSelectionData (1 call); SST_GetTrackingData (2 calls);
+ SST_Initialise (0 call); SST_LoadFromFile (1 call);
+ SST_MinRoundTripDelay (3 calls); SST_PredictOffset (1 call);
+ SST_ResetInstance (5 calls); SST_Samples (2 calls); SST_SaveToFile (1 call);
+ SST_SetRefid (2 calls); SST_SlewSamples (1 call); Strdup (19 calls);
+ TST_Fail (17 calls); TST_GetRandomAddress (1 call);
+ TST_GetRandomDouble (4 calls); TST_RegisterDummyDrivers (1 call);
+ TST_ResumeLogging (1 call); TST_SuspendLogging (1 call);
+ TST_SwapAddressBit (0 call); Transform (2 calls);
+ UTI_AddDiffToTimespec (0 call); UTI_AddDoubleToTimespec (18 calls);
+ UTI_AdjustTimespec (10 calls); UTI_AverageDiffTimespecs (2 calls);
+ UTI_CheckDirPermissions (1 call); UTI_CompareIPs (1 call);
+ UTI_CompareNtp64 (12 calls); UTI_CompareTimespecs (9 calls);
+ UTI_CreateDirAndParents (3 calls); UTI_DiffTimespecs (3 calls);
+ UTI_DiffTimespecsToDouble (35 calls); UTI_DoubleToNtp32 (4 calls);
+ UTI_DoubleToTimespec (0 call); UTI_DoubleToTimeval (0 call);
+ UTI_DropRoot (0 call); UTI_FdSetCloexec (3 calls);
+ UTI_FloatHostToNetwork (0 call); UTI_FloatNetworkToHost (0 call);
+ UTI_GetNtp64Fuzz (3 calls); UTI_GetRandomBytes (5 calls);
+ UTI_GetRandomBytesUrandom (1 call); UTI_IPAndPortToSockaddr (2 calls);
+ UTI_IPHostToNetwork (0 call); UTI_IPNetworkToHost (0 call);
+ UTI_IPToHash (1 call); UTI_IPToRefid (4 calls); UTI_IPToString (20 calls);
+ UTI_IsEqualAnyNtp64 (2 calls); UTI_IsTimeOffsetSane (1 call);
+ UTI_IsZeroNtp64 (10 calls); UTI_IsZeroTimespec (12 calls);
+ UTI_Log2ToDouble (6 calls); UTI_NormaliseTimespec (5 calls);
+ UTI_NormaliseTimeval (1 call); UTI_Ntp32ToDouble (2 calls);
+ UTI_Ntp64ToString (0 call); UTI_Ntp64ToTimespec (14 calls);
+ UTI_PathToDir (1 call); UTI_RefidToString (4 calls);
+ UTI_SetQuitSignalsHandler (0 call); UTI_SockaddrFamilyToString (2 calls);
+ UTI_SockaddrToIPAndPort (2 calls); UTI_SockaddrToString (0 call);
+ UTI_StringToIP (6 calls); UTI_TimeToLogForm (4 calls);
+ UTI_TimespecHostToNetwork (0 call); UTI_TimespecNetworkToHost (0 call);
+ UTI_TimespecToDouble (2 calls); UTI_TimespecToNtp64 (11 calls);
+ UTI_TimespecToString (1 call); UTI_TimespecToTimeval (1 call);
+ UTI_TimevalToDouble (0 call); UTI_TimevalToTimespec (3 calls);
+ UTI_ZeroNtp64 (16 calls); UTI_ZeroTimespec (12 calls);
+ accrue_offset (address taken) (0 call);
+ add_dispersion (address taken) (0 call); add_timeout_in_class (3 calls);
+ adjust_poll (3 calls); advance_time (12 calls); allocate_tqe (2 calls);
+ apply_step_offset (address taken) (0 call);
+ broadcast_timeout (address taken) (0 call);
+ calculate_sys_precision (1 call); check_current_time (1 call);
+ check_delay_dev_ratio (1 call); check_delay_ratio (1 call);
+ check_ip_in_node (2 calls); check_ntp_auth (1 call);
+ check_number_of_args (16 calls); check_offset (4 calls);
+ check_packet_auth (2 calls); check_packet_format (4 calls);
+ clamp_freq (3 calls); close_client_socket (5 calls); close_node (4 calls);
+ close_socket (6 calls); combine_sources (1 call);
+ command_parse_error (31 calls); compare_keys_by_id (address taken) (0 call);
+ compare_sort_elements (address taken) (0 call); compare_ts (2 calls);
+ connect_socket (2 calls); convert_to_intervals (1 call);
+ correct_asymmetry (1 call); create_dir (1 call); decode_password (1 call);
+ determine_hash_delay (1 call); dispatch_filehandlers (1 call);
+ dispatch_timeouts (1 call); do_size_checks (1 call);
+ do_time_checks (1 call); end_ref_mode (5 calls);
+ estimate_asymmetry (1 call); eva_main (0 call);
+ eval_robust_residual (3 calls); expand_hashtable (2 calls);
+ fb_drift_timeout (address taken) (0 call); fill_fd_sets (1 call);
+ find_best_sample_index (1 call); find_median (2 calls);
+ find_min_delay_sample (2 calls); find_ordered_entry_with_flags (3 calls);
+ free_keys (2 calls); generate_ntp_auth (2 calls); get_array_size (2 calls);
+ get_buf_index (9 calls); get_clock_estimates (1 call); get_index (3 calls);
+ get_interval (3 calls); get_key (7 calls); get_key_by_id (6 calls);
+ get_last_ago (2 calls); get_new_tqe_id (2 calls);
+ get_number_of_args (3 calls); get_poll_adj (1 call);
+ get_random_key_id (2 calls); get_record (4 calls);
+ get_root_dispersion (5 calls); get_runsbuf_index (16 calls);
+ get_separation (2 calls); get_smoothing (3 calls); get_subnet (4 calls);
+ get_transmit_delay (4 calls); get_transmit_poll (2 calls);
+ get_ts_from_timespec (2 calls); get_tz_leap (4 calls);
+ handle_slew (address taken) (0 call);
+ handle_slew_0 (address taken) (0 call);
+ handle_slew_1 (address taken) (0 call);
+ invoke_parameter_change_handlers (7 calls); is_any_allowed (2 calls);
+ is_leap_second_day (1 call); is_offset_ok (1 call);
+ is_step_limit_reached (1 call); is_zero_data (2 calls);
+ lcl_InvokeDispersionNotifyHandlers (1 call);
+ lcl_RegisterSystemDrivers (1 call);
+ leap_end_timeout (address taken) (0 call);
+ leap_start_timeout (address taken) (0 call);
+ limit_response_random (2 calls); log_selection_message (5 calls);
+ lookup_key (1 call); main (1 call); mark_ok_sources (4 calls);
+ maybe_log_offset (1 call); n_runs_from_residuals (3 calls);
+ offset_convert (address taken) (0 call); open_dumpfile (2 calls);
+ open_node (3 calls); other_parse_error (3 calls);
+ parse_allow_deny (4 calls); parse_bindacqaddress (1 call);
+ parse_bindaddress (1 call); parse_bindcmdaddress (1 call);
+ parse_broadcast (1 call); parse_clientloglimit (1 call);
+ parse_double (12 calls); parse_fallbackdrift (1 call);
+ parse_hwtimestamp (1 call); parse_include (1 call);
+ parse_initstepslew (1 call); parse_int (8 calls);
+ parse_leapsecmode (1 call); parse_local (1 call); parse_log (1 call);
+ parse_mailonchange (1 call); parse_makestep (1 call);
+ parse_maxchange (1 call); parse_null (5 calls); parse_ratelimit (2 calls);
+ parse_refclock (1 call); parse_smoothtime (1 call); parse_source (3 calls);
+ parse_string (12 calls); parse_tempcomp (1 call); prepare_buffers (2 calls);
+ prepare_separate_client_socket (2 calls); prepare_socket (5 calls);
+ process_message (1 call); process_replay (4 calls);
+ process_request (1 call); process_response (10 calls);
+ process_sample (1 call); prune_register (2 calls);
+ read_frequency (address taken) (0 call);
+ read_from_socket (address taken) (0 call); realloc_array (2 calls);
+ receive_packet (1 call); receive_timeout (0 call); release_tqe (1 call);
+ resolve_name (address taken) (0 call); restart_timeout (4 calls);
+ schedule_fb_drift (2 calls); send_request (4 calls);
+ send_response (5 calls); set_bucket_params (2 calls);
+ set_frequency (address taken) (0 call); set_leap_timeout (2 calls);
+ set_subnet (4 calls); set_subnet_ (4 calls);
+ slew_sources (address taken) (0 call); source_to_string (5 calls);
+ special_mode_end (1 call); special_mode_sync (2 calls); split_ip6 (2 calls);
+ start_initial_timeout (3 calls); take_offline (4 calls); test_unit (1 call);
+ transmit_packet (3 calls); transmit_timeout (address taken) (1 call);
+ update_drift_file (2 calls); update_fb_drifts (1 call);
+ update_leap_status (4 calls); update_record (2 calls);
+ update_smoothing (3 calls); update_stages (1 call);
+ update_tx_timestamp (2 calls); write_log (2 calls);
+ zero_local_timestamp (7 calls); 
+
+Undefined functions (21)
+========================
+ CAM_AddAccessRestriction (1 call); LOG_FileOpen (3 calls);
+ LOG_FileWrite (3 calls); LOG_Finalise (1 call); LOG_Initialise (1 call);
+ LOG_Message (108 calls); LOG_OpenFileLog (2 calls);
+ LOG_SetDebugLevel (1 call); NSR_AddSource (1 call);
+ NSR_AddSourceByName (1 call); NSR_GetLocalRefid (1 call);
+ NSR_HandleBadSource (1 call); NSR_ProcessRx (1 call);
+ RCL_AddRefclock (1 call); SPF_AccumulateSample (1 call);
+ SPF_CreateInstance (1 call); SPF_DestroyInstance (1 call);
+ SPF_DropSamples (1 call); SPF_GetFilteredSample (1 call);
+ SPF_GetNumberOfSamples (1 call); SPF_SlewSamples (1 call); 
+
+'Extern' global variables (0)
+=============================
+ 
+
+Potential entry points (114)
+============================
+ CLG_Finalise; CLG_GetClientAccessReportByIndex; CLG_GetNumberOfIndices;
+  CLG_GetServerStatsReport; CLG_Initialise; CLG_LimitCommandResponseRate;
+  CLG_LogCommandAccess; CNF_AddBroadcasts; CNF_AddInitSources;
+  CNF_AddRefclocks; CNF_AddSources; CNF_CreateDirs;
+  CNF_GetBindCommandAddress; CNF_GetBindCommandPath; CNF_GetCommandPort;
+  CNF_GetHwclockFile; CNF_GetInitSources; CNF_GetLockMemory;
+  CNF_GetLogBanner; CNF_GetLogDir; CNF_GetLogRefclocks; CNF_GetLogRtc;
+  CNF_GetLogTempComp; CNF_GetManualEnabled; CNF_GetMaxSlewRate;
+  CNF_GetNtpSigndSocket; CNF_GetPidFile; CNF_GetRtcAutotrim;
+  CNF_GetRtcDevice; CNF_GetRtcFile; CNF_GetRtcOnUtc; CNF_GetRtcSync;
+  CNF_GetSchedPriority; CNF_GetTempComp; CNF_GetUser; DNS_IPAddress2Name;
+  DNS_Name2IPAddressAsync; DNS_Reload; DNS_SetAddressFamily;
+  LCL_AccumulateDeltaFrequency; LCL_GetSysPrecisionAsLog; LCL_MakeStep;
+  LCL_ReadCookedTime; LCL_SetTempComp; NCR_ChangeRemoteAddress;
+  NCR_CheckAccessRestriction; NCR_GetLocalRefid; NCR_GetNTPReport;
+  NCR_GetRemoteAddress; NCR_IncrementActivityCounters; NCR_IsSyncPeer;
+  NCR_ModifyMaxdelay; NCR_ModifyMaxdelaydevratio; NCR_ModifyMaxdelayratio;
+  NCR_ModifyMinstratum; NCR_ModifyPolltarget; NCR_ReportSource;
+  NCR_ResetPoll; NCR_SlewTimes; NIO_CloseClientSocket; NIO_CloseServerSocket;
+  NIO_OpenClientSocket; NIO_OpenServerSocket; NIO_SendPacket; NSD_Finalise;
+  NSD_Initialise; REF_DisableLocal; REF_EnableLocal; REF_GetTaiOffset;
+  REF_GetTrackingReport; REF_ModifyMakestep; REF_ModifyMaxupdateskew;
+  REF_SetManualReference; REF_SetMode; REF_SetModeEndHandler;
+  RGR_FindBestRobustRegression; RGR_GetChi2Coef; RGR_WeightedRegression;
+  SCH_AddTimeoutInClass; SCH_MainLoop; SCH_QuitProgram;
+  SCH_SetFileHandlerEvent; SMT_Finalise; SMT_GetSmoothingReport;
+  SMT_Initialise; SRC_ActiveSources; SRC_DumpSources; SRC_GetType;
+  SRC_ReadNumberOfSources; SRC_ReloadSources; SRC_RemoveDumpFiles;
+  SRC_ReportSource; SRC_ReportSourcestats; SRC_ResetReachability;
+  SRC_SetReselectDistance; SST_Finalise; SST_Initialise; TST_SwapAddressBit;
+  UTI_AddDiffToTimespec; UTI_DoubleToTimespec; UTI_DoubleToTimeval;
+  UTI_DropRoot; UTI_FloatHostToNetwork; UTI_FloatNetworkToHost;
+  UTI_IPHostToNetwork; UTI_IPNetworkToHost; UTI_Ntp64ToString;
+  UTI_SetQuitSignalsHandler; UTI_SockaddrToString; UTI_TimespecHostToNetwork;
+  UTI_TimespecNetworkToHost; UTI_TimevalToDouble; eva_main; receive_timeout; 
+
+Global metrics
+============== 
+Sloc = 10451
+Decision point = 1910
+Global variables = 254
+If = 1794
+Loop = 169
+Goto = 485
+Assignment = 4646
+Exit point = 521
+Function = 542
+Function call = 2132
+Pointer dereferencing = 2774
+Cyclomatic complexity = 2431
diff --git a/chrony/.frama-c/chrony-ntp-core.parse/warnings.log b/chrony/.frama-c/chrony-ntp-core.parse/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..d807a37ecfe9e7312394fe893ce7f7961fe96d33
--- /dev/null
+++ b/chrony/.frama-c/chrony-ntp-core.parse/warnings.log
@@ -0,0 +1,2 @@
+conf.c:94:[kernel:parser:decimal-float] warning: Floating-point constant 1e-4 is not represented exactly. Will use 0x1.a36e2eb1c432dp-14.
+(warn-once: no further messages from category 'parser:decimal-float' will be emitted)
diff --git a/chrony/.frama-c/chrony-regress.eva/alarms.csv b/chrony/.frama-c/chrony-regress.eva/alarms.csv
new file mode 100644
index 0000000000000000000000000000000000000000..7daa2a10311edda2a6205f1f3a9fd285ff07f63d
--- /dev/null
+++ b/chrony/.frama-c/chrony-regress.eva/alarms.csv
@@ -0,0 +1,112 @@
+directory	file	line	function	property kind	status	property
+.	logging.h	80	LOG_Initialise	assigns clause	Unknown	assigns \nothing;
+.	logging.h	83	LOG_Finalise	assigns clause	Unknown	assigns \nothing;
+.	logging.h	100	LOG_SetDebugLevel	assigns clause	Unknown	assigns \nothing;
+.	regress.c	71	RGR_WeightedRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	71	RGR_WeightedRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	80	RGR_WeightedRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	81	RGR_WeightedRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	81	RGR_WeightedRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	91	RGR_WeightedRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	91	RGR_WeightedRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	92	RGR_WeightedRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	97	RGR_WeightedRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	regress.c	97	RGR_WeightedRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	regress.c	99	RGR_WeightedRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	regress.c	99	RGR_WeightedRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	regress.c	183	n_runs_from_residuals	initialization	Unknown	\initialized(resid + (int)(i - 1))
+.	regress.c	183	n_runs_from_residuals	mem_access	Unknown	\valid_read(resid + (int)(i - 1))
+.	regress.c	183	n_runs_from_residuals	initialization	Unknown	\initialized(resid + i)
+.	regress.c	183	n_runs_from_residuals	mem_access	Unknown	\valid_read(resid + i)
+.	regress.c	184	n_runs_from_residuals	initialization	Unknown	\initialized(resid + i)
+.	regress.c	184	n_runs_from_residuals	mem_access	Unknown	\valid_read(resid + i)
+.	regress.c	243	RGR_FindBestRegression	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	regress.c	254	RGR_FindBestRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	254	RGR_FindBestRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	254	RGR_FindBestRegression	mem_access	Unknown	\valid_read(x + i)
+.	regress.c	262	RGR_FindBestRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	262	RGR_FindBestRegression	mem_access	Unknown	\valid_read(x + i)
+.	regress.c	263	RGR_FindBestRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	263	RGR_FindBestRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	263	RGR_FindBestRegression	mem_access	Unknown	\valid_read(y + i)
+.	regress.c	272	RGR_FindBestRegression	signed_overflow	Unknown	n - (int)((int)(n - start) * 2) ≤ 2147483647
+.	regress.c	272	RGR_FindBestRegression	signed_overflow	Unknown	-2147483648 ≤ (int)(n - start) * 2
+.	regress.c	277	RGR_FindBestRegression	index_bound	Unknown	0 ≤ (int)(i - resid_start)
+.	regress.c	277	RGR_FindBestRegression	signed_overflow	Unknown	-2147483648 ≤ i - resid_start
+.	regress.c	277	RGR_FindBestRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	277	RGR_FindBestRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	277	RGR_FindBestRegression	mem_access	Unknown	\valid_read(x + i)
+.	regress.c	277	RGR_FindBestRegression	mem_access	Unknown	\valid_read(y + i)
+.	regress.c	283	RGR_FindBestRegression	index_bound	Unknown	0 ≤ (int)(n - resid_start)
+.	regress.c	304	RGR_FindBestRegression	initialization	Unknown	\initialized(&resid[(int)(i - resid_start)])
+.	regress.c	304	RGR_FindBestRegression	initialization	Unknown	\initialized(w + i)
+.	regress.c	304	RGR_FindBestRegression	index_bound	Unknown	0 ≤ (int)(i - resid_start)
+.	regress.c	309	RGR_FindBestRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	regress.c	309	RGR_FindBestRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	regress.c	311	RGR_FindBestRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	regress.c	311	RGR_FindBestRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	regress.c	350	find_ordered_entry_with_flags	precondition of __FC_assert	Unknown	nonnull_c: c ≢ 0
+.	regress.c	353	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + index_0)
+.	regress.c	354	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + index_0)
+.	regress.c	359	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + u)
+.	regress.c	360	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + u)
+.	regress.c	362	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + v)
+.	regress.c	363	find_ordered_entry_with_flags	initialization	Unknown	\initialized(flags + v)
+.	regress.c	363	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(flags + v)
+.	regress.c	367	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + u)
+.	regress.c	367	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + v)
+.	regress.c	367	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(x + u)
+.	regress.c	367	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(x + v)
+.	regress.c	371	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + index_0)
+.	regress.c	374	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + u)
+.	regress.c	374	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + pivind)
+.	regress.c	374	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(x + pivind)
+.	regress.c	375	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + u)
+.	regress.c	379	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + l)
+.	regress.c	380	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + r)
+.	regress.c	380	find_ordered_entry_with_flags	mem_access	Unknown	\valid_read(x + r)
+.	regress.c	382	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + l)
+.	regress.c	386	find_ordered_entry_with_flags	initialization	Unknown	\initialized(x + u)
+.	regress.c	422	find_median	precondition of memset	Unknown	valid_s: valid_or_empty(s, n)
+.	regress.c	469	eval_robust_residual	initialization	Unknown	\initialized(x + i)
+.	regress.c	469	eval_robust_residual	initialization	Unknown	\initialized(y + i)
+.	regress.c	469	eval_robust_residual	mem_access	Unknown	\valid_read(x + i)
+.	regress.c	469	eval_robust_residual	mem_access	Unknown	\valid_read(y + i)
+.	regress.c	476	eval_robust_residual	initialization	Unknown	\initialized(x + i)
+.	regress.c	476	eval_robust_residual	initialization	Unknown	\initialized(y + i)
+.	regress.c	476	eval_robust_residual	mem_access	Unknown	\valid_read(x + i)
+.	regress.c	476	eval_robust_residual	mem_access	Unknown	\valid_read(y + i)
+.	regress.c	552	RGR_FindBestRobustRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	553	RGR_FindBestRobustRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	563	RGR_FindBestRobustRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	564	RGR_FindBestRobustRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	574	RGR_FindBestRobustRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	574	RGR_FindBestRobustRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	581	RGR_FindBestRobustRegression	precondition of sqrt	Unknown	arg_positive: x ≥ -0.
+.	regress.c	581	RGR_FindBestRobustRegression	precondition of sqrt	Unknown	finite_arg: \is_finite(x)
+.	regress.c	616	RGR_FindBestRobustRegression	precondition of __FC_assert	Invalid or unreachable	nonnull_c: c ≢ 0
+.	regress.c	630	RGR_FindBestRobustRegression	initialization	Unknown	\initialized(x + i)
+.	regress.c	630	RGR_FindBestRobustRegression	initialization	Unknown	\initialized(y + i)
+.	regress.c	635	RGR_FindBestRobustRegression	index_bound	Unknown	0 ≤ n_points
+.	regress.c	678	RGR_MultipleRegress	initialization	Unknown	\initialized(x1 + i)
+.	regress.c	679	RGR_MultipleRegress	initialization	Unknown	\initialized(x2 + i)
+.	regress.c	683	RGR_MultipleRegress	initialization	Unknown	\initialized(y + i)
+.	regress.c	698	RGR_MultipleRegress	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+.	regress.c	698	RGR_MultipleRegress	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+FRAMAC_SHARE/libc	assert.h	31	__FC_assert	precondition	Invalid or unreachable	nonnull_c: c ≢ 0
+FRAMAC_SHARE/libc	math.h	449	fabs	precondition	Unknown	finite_arg: \is_finite(x)
+FRAMAC_SHARE/libc	math.h	493	sqrt	precondition	Unknown	finite_arg: \is_finite(x)
+FRAMAC_SHARE/libc	math.h	494	sqrt	precondition	Unknown	arg_positive: x ≥ -0.
+FRAMAC_SHARE/libc	string.h	115	memset	precondition	Unknown	valid_s: valid_or_empty(s, n)
+test/unit	regress.c	45	test_unit	initialization	Unknown	\initialized(&x[j])
+test/unit	regress.c	52	test_unit	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+test/unit	regress.c	53	test_unit	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+test/unit	regress.c	60	test_unit	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+test/unit	regress.c	61	test_unit	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+test/unit	regress.c	66	test_unit	initialization	Unknown	\initialized(&b2)
+test/unit	regress.c	66	test_unit	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+test/unit	regress.c	70	test_unit	initialization	Unknown	\initialized(&y[(long)(tmp_11 % (long)n)])
+test/unit	regress.c	75	test_unit	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+test/unit	regress.c	76	test_unit	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+test/unit	regress.c	85	test_unit	initialization	Unknown	\initialized(&x[j])
+test/unit	regress.c	102	test_unit	initialization	Unknown	\initialized(&x[(int)(j - 1)])
diff --git a/chrony/.frama-c/chrony-regress.eva/metrics.log b/chrony/.frama-c/chrony-regress.eva/metrics.log
new file mode 100644
index 0000000000000000000000000000000000000000..463522c7c649a2284a24201f969d1767e577797d
--- /dev/null
+++ b/chrony/.frama-c/chrony-regress.eva/metrics.log
@@ -0,0 +1,24 @@
+[metrics] Eva coverage statistics
+=======================
+Syntactically reachable functions = 17 (out of 474)
+Semantically reached functions = 17
+Coverage estimation = 100.0%
+[metrics] References to non-analyzed functions
+------------------------------------
+[metrics] Statements analyzed by Eva
+--------------------------
+667 stmts in analyzed functions, 644 stmts analyzed (96.6%)
+RGR_MultipleRegress: 43 stmts out of 43 (100.0%)
+RGR_WeightedRegression: 44 stmts out of 44 (100.0%)
+TST_GetRandomDouble: 5 stmts out of 5 (100.0%)
+eva_main: 13 stmts out of 13 (100.0%)
+eval_robust_residual: 23 stmts out of 23 (100.0%)
+find_median: 14 stmts out of 14 (100.0%)
+find_ordered_entry_with_flags: 76 stmts out of 76 (100.0%)
+main: 41 stmts out of 41 (100.0%)
+n_runs_from_residuals: 19 stmts out of 19 (100.0%)
+RGR_FindBestRegression: 81 stmts out of 83 (97.6%)
+test_unit: 176 stmts out of 184 (95.7%)
+RGR_FindBestRobustRegression: 100 stmts out of 110 (90.9%)
+RGR_FindMedian: 7 stmts out of 9 (77.8%)
+TST_Fail: 2 stmts out of 3 (66.7%)
diff --git a/chrony/.frama-c/chrony-regress.eva/nonterm.log b/chrony/.frama-c/chrony-regress.eva/nonterm.log
new file mode 100644
index 0000000000000000000000000000000000000000..eb31a65a607449b109d5b29d3295a6fd9fb6ff92
--- /dev/null
+++ b/chrony/.frama-c/chrony-regress.eva/nonterm.log
@@ -0,0 +1,10 @@
+test/unit/test.c:33:[nonterm] warning: unreachable implicit return
+regress.c:616:[nonterm] warning: non-terminating function call
+stack 1: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
+stack 2: RGR_FindBestRobustRegression :: test/unit/regress.c:115 <-
+         test_unit :: test/unit/test.c:70 <-
+         main :: fc_stubs.c:37 <-
+         eva_main
diff --git a/chrony/.frama-c/chrony-regress.eva/warnings.log b/chrony/.frama-c/chrony-regress.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..937181465f3ef75b550702770b00c68c3e7afeff
--- /dev/null
+++ b/chrony/.frama-c/chrony-regress.eva/warnings.log
@@ -0,0 +1,859 @@
+test/unit/test.c:53:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_SetDebugLevel, generating default assigns from the prototype
+test/unit/test.c:68:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Initialise, generating default assigns from the prototype
+test/unit/regress.c:45:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[j]);
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+test/unit/regress.c:47:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[j]);
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+regress.c:71:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:71:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:72:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:80:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:81:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:81:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:82:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:82:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:83:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:91:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:91:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:92:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:97:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:97 <-
+       RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:97:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:97 <-
+       RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:99:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:99 <-
+       RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:99:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:99 <-
+       RGR_WeightedRegression :: test/unit/regress.c:50 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:52:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: test/unit/regress.c:52 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:53:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: test/unit/regress.c:53 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:254:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:254:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:255:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:262:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:263:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:263:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:264:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:264:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:265:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:183:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(resid + (int)(i - 1));
+stack: n_runs_from_residuals :: regress.c:281 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:183:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(resid + i);
+stack: n_runs_from_residuals :: regress.c:281 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:184:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(resid + i);
+stack: n_runs_from_residuals :: regress.c:281 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:184:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(resid + (int)(i - 1));
+stack: n_runs_from_residuals :: regress.c:281 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:304:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(w + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:304:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&resid[(int)(i - resid_start)]);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:60:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: test/unit/regress.c:60 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:61:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: test/unit/regress.c:61 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:552:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:553:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:563:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:564:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:574:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:574:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:581 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:581 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:469:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:469:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:374:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:374:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + pivind);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:380:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:380:[eva:alarm] warning: out of bounds read. assert \valid_read(x + r);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:382:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:386:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + r);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:367:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + v);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:367:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:368:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + v);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:368:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:371:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + index_0);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:476:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:476:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:478:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:480:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:616:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: regress.c:616 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:75:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: test/unit/regress.c:75 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:76:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: test/unit/regress.c:76 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:85:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[j]);
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+test/unit/regress.c:87:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[j]);
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+test/unit/regress.c:102:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&x[(int)(j - 1)]);
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+regress.c:97:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:97 <-
+       RGR_WeightedRegression :: test/unit/regress.c:108 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:97:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:97 <-
+       RGR_WeightedRegression :: test/unit/regress.c:108 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:99:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:99 <-
+       RGR_WeightedRegression :: test/unit/regress.c:108 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:99:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:99 <-
+       RGR_WeightedRegression :: test/unit/regress.c:108 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:309:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:309 <-
+       RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:311:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:311 <-
+       RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:581:[eva:alarm] warning: function sqrt: precondition 'finite_arg' got status unknown.
+stack: sqrt :: regress.c:581 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:115 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:581:[eva:alarm] warning: function sqrt: precondition 'arg_positive' got status unknown.
+stack: sqrt :: regress.c:581 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:115 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:616:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status invalid.
+stack: __FC_assert :: regress.c:616 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:115 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:678:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:679:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:683:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:680:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:681:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:681:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:682:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:683:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x1 + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:684:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x2 + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:684:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:685:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: test/unit/regress.c:64 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:66:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(&b2);
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+test/unit/regress.c:66:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: test/unit/regress.c:66 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:363:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + v);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:379:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + l);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:382:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + l);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:375:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:386:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:354:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + index_0);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:630:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(y + i);
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:630:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(x + i);
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i - resid_start);
+stack: RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: test/unit/regress.c:113 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:698:[eva:alarm] warning: function fabs: precondition 'finite_arg' got status unknown.
+stack: fabs :: regress.c:698 <-
+       RGR_MultipleRegress :: test/unit/regress.c:113 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:362:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + v);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:367:[eva:alarm] warning: out of bounds read. assert \valid_read(x + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:243:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:243 <-
+       RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:283:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(n - resid_start);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:272:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ (int)(n - start) * 2;
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:272:[eva:alarm] warning: signed overflow. assert n - (int)((int)(n - start) * 2) ≤ 2147483647;
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + (int)(i - 1));
+stack: n_runs_from_residuals :: regress.c:288 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:184:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + (int)(i - 1));
+stack: n_runs_from_residuals :: regress.c:288 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:183:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + i);
+stack: n_runs_from_residuals :: regress.c:288 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:184:[eva:alarm] warning: out of bounds read. assert \valid_read(resid + i);
+stack: n_runs_from_residuals :: regress.c:288 <-
+       RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:304:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ (int)(i - resid_start);
+stack: RGR_FindBestRegression :: test/unit/regress.c:55 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/regress.c:70:[eva:alarm] warning: accessing uninitialized left-value.
+assert \initialized(&y[(long)(tmp_11 % (long)n)]);
+(tmp_11 from random())
+stack: test_unit :: test/unit/test.c:70 <- main :: fc_stubs.c:37 <- eva_main
+regress.c:353:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + index_0);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:359:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + u);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:363:[eva:alarm] warning: out of bounds read. assert \valid_read(flags + v);
+stack: find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:360:[eva:alarm] warning: accessing uninitialized left-value. assert \initialized(flags + u);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:469:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:469:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:374:[eva:alarm] warning: out of bounds read. assert \valid_read(x + pivind);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:367:[eva:alarm] warning: out of bounds read. assert \valid_read(x + v);
+stack: find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:476:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:476:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:478:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:480:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:350:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:350 <-
+       find_ordered_entry_with_flags :: regress.c:428 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:422:[eva:alarm] warning: function memset: precondition 'valid_s' got status unknown.
+stack: memset :: regress.c:422 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:350:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:350 <-
+       find_ordered_entry_with_flags :: regress.c:425 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:635:[eva:alarm] warning: accessing out of bounds index. assert 0 ≤ n_points;
+stack: RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:350:[eva:alarm] warning: function __FC_assert: precondition 'nonnull_c' got status unknown.
+stack: __FC_assert :: regress.c:350 <-
+       find_ordered_entry_with_flags :: regress.c:427 <-
+       find_median :: regress.c:472 <-
+       eval_robust_residual :: regress.c:595 <-
+       RGR_FindBestRobustRegression :: test/unit/regress.c:72 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:254:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:262:[eva:alarm] warning: out of bounds read. assert \valid_read(x + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:263:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:264:[eva:alarm] warning: out of bounds read. assert \valid_read(y + i);
+stack: RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+regress.c:277:[eva:alarm] warning: signed overflow. assert -2147483648 ≤ i - resid_start;
+stack: RGR_FindBestRegression :: test/unit/regress.c:110 <-
+       test_unit :: test/unit/test.c:70 <-
+       main :: fc_stubs.c:37 <-
+       eva_main
+test/unit/test.c:72:[kernel:annot:missing-spec] warning: Neither code nor specification for function LOG_Finalise, generating default assigns from the prototype
diff --git a/chrony/.frama-c/chrony-regress.parse/framac.ast b/chrony/.frama-c/chrony-regress.parse/framac.ast
new file mode 100644
index 0000000000000000000000000000000000000000..2303f6bb3ac9a6b5facf97c1356c782a74bb9ab6
--- /dev/null
+++ b/chrony/.frama-c/chrony-regress.parse/framac.ast
@@ -0,0 +1,16024 @@
+/* Generated by Frama-C */
+#include "__fc_builtin.h"
+#include "assert.h"
+#include "ctype.h"
+#include "errno.h"
+#include "fcntl.h"
+#include "glob.c"
+#include "glob.h"
+#include "grp.h"
+#include "inttypes.h"
+#include "math.h"
+#include "netdb.c"
+#include "netdb.h"
+#include "netinet/in.h"
+#include "pwd.h"
+#include "resolv.h"
+#include "signal.h"
+#include "stdarg.h"
+#include "stdint.h"
+#include "stdio.c"
+#include "stdio.h"
+#include "stdlib.c"
+#include "stdlib.h"
+#include "string.c"
+#include "string.h"
+#include "strings.h"
+#include "stropts.h"
+#include "sys/resource.h"
+#include "sys/select.h"
+#include "sys/socket.h"
+#include "sys/stat.h"
+#include "sys/time.h"
+#include "sys/types.h"
+#include "sys/uio.h"
+#include "sys/un.h"
+#include "sys/wait.h"
+#include "syslog.h"
+#include "time.h"
+#include "unistd.h"
+enum __anonenum_LOG_Severity_1 {
+    LOGS_INFO = 0,
+    LOGS_WARN = 1,
+    LOGS_ERR = 2,
+    LOGS_FATAL = 3,
+    LOGS_DEBUG = 4
+};
+typedef enum __anonenum_LOG_Severity_1 LOG_Severity;
+typedef int LOG_FileID;
+union __anonunion_addr_3 {
+   uint32_t in4 ;
+   uint8_t in6[16] ;
+};
+struct __anonstruct_IPAddr_2 {
+   union __anonunion_addr_3 addr ;
+   uint16_t family ;
+   uint16_t _pad ;
+};
+typedef struct __anonstruct_IPAddr_2 IPAddr;
+struct __anonstruct_NTP_Remote_Address_4 {
+   IPAddr ip_addr ;
+   unsigned short port ;
+};
+typedef struct __anonstruct_NTP_Remote_Address_4 NTP_Remote_Address;
+struct __anonstruct_NTP_Local_Address_5 {
+   IPAddr ip_addr ;
+   int if_index ;
+   int sock_fd ;
+};
+typedef struct __anonstruct_NTP_Local_Address_5 NTP_Local_Address;
+struct __anonstruct_NTP_int64_6 {
+   uint32_t hi ;
+   uint32_t lo ;
+};
+typedef struct __anonstruct_NTP_int64_6 NTP_int64;
+typedef uint32_t NTP_int32;
+enum __anonenum_NTP_Leap_7 {
+    LEAP_Normal = 0,
+    LEAP_InsertSecond = 1,
+    LEAP_DeleteSecond = 2,
+    LEAP_Unsynchronised = 3
+};
+typedef enum __anonenum_NTP_Leap_7 NTP_Leap;
+struct __anonstruct_NTP_Packet_9 {
+   uint8_t lvm ;
+   uint8_t stratum ;
+   int8_t poll ;
+   int8_t precision ;
+   NTP_int32 root_delay ;
+   NTP_int32 root_dispersion ;
+   NTP_int32 reference_id ;
+   NTP_int64 reference_ts ;
+   NTP_int64 originate_ts ;
+   NTP_int64 receive_ts ;
+   NTP_int64 transmit_ts ;
+   NTP_int32 auth_keyid ;
+   uint8_t auth_data[(4 + 64) - 4] ;
+};
+typedef struct __anonstruct_NTP_Packet_9 NTP_Packet;
+struct __anonstruct_NTP_Receive_Buffer_10 {
+   NTP_Packet ntp_pkt ;
+   uint8_t extensions[1024] ;
+};
+typedef struct __anonstruct_NTP_Receive_Buffer_10 NTP_Receive_Buffer;
+struct __anonstruct_NTP_Sample_11 {
+   struct timespec time ;
+   double offset ;
+   double peer_delay ;
+   double peer_dispersion ;
+   double root_delay ;
+   double root_dispersion ;
+   int stratum ;
+   NTP_Leap leap ;
+};
+typedef struct __anonstruct_NTP_Sample_11 NTP_Sample;
+struct __anonstruct_Timespec_12 {
+   uint32_t tv_sec_high ;
+   uint32_t tv_sec_low ;
+   uint32_t tv_nsec ;
+};
+typedef struct __anonstruct_Timespec_12 Timespec;
+struct __anonstruct_Float_13 {
+   int32_t f ;
+};
+typedef struct __anonstruct_Float_13 Float;
+struct ADF_AuthTableInst;
+typedef struct ADF_AuthTableInst *ADF_AuthTable;
+enum __anonenum_ADF_Status_5 {
+    ADF_SUCCESS = 0,
+    ADF_BADSUBNET = 1
+};
+typedef enum __anonenum_ADF_Status_5 ADF_Status;
+enum __anonenum_State_6 {
+    DENY = 0,
+    ALLOW = 1,
+    AS_PARENT = 2
+};
+typedef enum __anonenum_State_6 State;
+struct _TableNode {
+   State state ;
+   struct _TableNode *extended ;
+};
+typedef struct _TableNode TableNode;
+struct ADF_AuthTableInst {
+   TableNode base4 ;
+   TableNode base6 ;
+};
+struct ARR_Instance_Record;
+typedef struct ARR_Instance_Record *ARR_Instance;
+struct ARR_Instance_Record {
+   void *data ;
+   unsigned int elem_size ;
+   unsigned int used ;
+   unsigned int allocated ;
+};
+enum __anonenum_mode_12 {
+    RPT_NTP_CLIENT = 0,
+    RPT_NTP_PEER = 1,
+    RPT_LOCAL_REFERENCE = 2
+};
+enum __anonenum_state_13 {
+    RPT_SYNC = 0,
+    RPT_UNREACH = 1,
+    RPT_FALSETICKER = 2,
+    RPT_JITTERY = 3,
+    RPT_CANDIDATE = 4,
+    RPT_OUTLIER = 5
+};
+struct __anonstruct_RPT_SourceReport_11 {
+   IPAddr ip_addr ;
+   int stratum ;
+   int poll ;
+   enum __anonenum_mode_12 mode ;
+   enum __anonenum_state_13 state ;
+   int sel_options ;
+   int reachability ;
+   unsigned long latest_meas_ago ;
+   double orig_latest_meas ;
+   double latest_meas ;
+   double latest_meas_err ;
+};
+typedef struct __anonstruct_RPT_SourceReport_11 RPT_SourceReport;
+struct __anonstruct_RPT_TrackingReport_14 {
+   uint32_t ref_id ;
+   IPAddr ip_addr ;
+   int stratum ;
+   NTP_Leap leap_status ;
+   struct timespec ref_time ;
+   double current_correction ;
+   double last_offset ;
+   double rms_offset ;
+   double freq_ppm ;
+   double resid_freq_ppm ;
+   double skew_ppm ;
+   double root_delay ;
+   double root_dispersion ;
+   double last_update_interval ;
+};
+typedef struct __anonstruct_RPT_TrackingReport_14 RPT_TrackingReport;
+struct __anonstruct_RPT_SourcestatsReport_15 {
+   uint32_t ref_id ;
+   IPAddr ip_addr ;
+   unsigned long n_samples ;
+   unsigned long n_runs ;
+   unsigned long span_seconds ;
+   double resid_freq_ppm ;
+   double skew_ppm ;
+   double sd ;
+   double est_offset ;
+   double est_offset_err ;
+};
+typedef struct __anonstruct_RPT_SourcestatsReport_15 RPT_SourcestatsReport;
+struct __anonstruct_RPT_ClientAccessByIndex_Report_17 {
+   IPAddr ip_addr ;
+   uint32_t ntp_hits ;
+   uint32_t cmd_hits ;
+   uint16_t ntp_drops ;
+   uint16_t cmd_drops ;
+   int8_t ntp_interval ;
+   int8_t cmd_interval ;
+   int8_t ntp_timeout_interval ;
+   uint32_t last_ntp_hit_ago ;
+   uint32_t last_cmd_hit_ago ;
+};
+typedef struct __anonstruct_RPT_ClientAccessByIndex_Report_17 RPT_ClientAccessByIndex_Report;
+struct __anonstruct_RPT_ServerStatsReport_18 {
+   uint32_t ntp_hits ;
+   uint32_t cmd_hits ;
+   uint32_t ntp_drops ;
+   uint32_t cmd_drops ;
+   uint32_t log_drops ;
+};
+typedef struct __anonstruct_RPT_ServerStatsReport_18 RPT_ServerStatsReport;
+struct __anonstruct_RPT_SmoothingReport_21 {
+   int active ;
+   int leap_only ;
+   double offset ;
+   double freq_ppm ;
+   double wander_ppm ;
+   double last_update_ago ;
+   double remaining_time ;
+};
+typedef struct __anonstruct_RPT_SmoothingReport_21 RPT_SmoothingReport;
+enum __anonenum_REF_LeapMode_23 {
+    REF_LeapModeSystem = 0,
+    REF_LeapModeSlew = 1,
+    REF_LeapModeStep = 2,
+    REF_LeapModeIgnore = 3
+};
+typedef enum __anonenum_REF_LeapMode_23 REF_LeapMode;
+enum __anonenum_REF_Mode_24 {
+    REF_ModeNormal = 0,
+    REF_ModeInitStepSlew = 1,
+    REF_ModeUpdateOnce = 2,
+    REF_ModePrintOnce = 3,
+    REF_ModeIgnore = 4
+};
+typedef enum __anonenum_REF_Mode_24 REF_Mode;
+enum __anonenum_CNF_HwTs_RxFilter_25 {
+    CNF_HWTS_RXFILTER_ANY = 0,
+    CNF_HWTS_RXFILTER_NONE = 1,
+    CNF_HWTS_RXFILTER_NTP = 2,
+    CNF_HWTS_RXFILTER_ALL = 3
+};
+typedef enum __anonenum_CNF_HwTs_RxFilter_25 CNF_HwTs_RxFilter;
+struct __anonstruct_CNF_HwTsInterface_26 {
+   char *name ;
+   int minpoll ;
+   int min_samples ;
+   int max_samples ;
+   int nocrossts ;
+   CNF_HwTs_RxFilter rxfilter ;
+   double precision ;
+   double tx_comp ;
+   double rx_comp ;
+};
+typedef struct __anonstruct_CNF_HwTsInterface_26 CNF_HwTsInterface;
+struct __anonstruct_Record_80 {
+   IPAddr ip_addr ;
+   uint32_t last_ntp_hit ;
+   uint32_t last_cmd_hit ;
+   uint32_t ntp_hits ;
+   uint32_t cmd_hits ;
+   uint16_t ntp_drops ;
+   uint16_t cmd_drops ;
+   uint16_t ntp_tokens ;
+   uint16_t cmd_tokens ;
+   int8_t ntp_rate ;
+   int8_t cmd_rate ;
+   int8_t ntp_timeout_rate ;
+   uint8_t flags ;
+   NTP_int64 ntp_rx_ts ;
+   NTP_int64 ntp_tx_ts ;
+};
+typedef struct __anonstruct_Record_80 Record;
+typedef struct SST_Stats_Record *SST_Stats;
+typedef struct SRC_Instance_Record *SRC_Instance;
+enum __anonenum_SRC_Type_23 {
+    SRC_NTP = 0,
+    SRC_REFCLOCK = 1
+};
+typedef enum __anonenum_SRC_Type_23 SRC_Type;
+enum __anonenum_SRC_Connectivity_24 {
+    SRC_OFFLINE = 0,
+    SRC_ONLINE = 1,
+    SRC_MAYBE_ONLINE = 2
+};
+typedef enum __anonenum_SRC_Connectivity_24 SRC_Connectivity;
+struct __anonstruct_SourceParameters_25 {
+   int minpoll ;
+   int maxpoll ;
+   SRC_Connectivity connectivity ;
+   int auto_offline ;
+   int presend_minpoll ;
+   int burst ;
+   int iburst ;
+   int min_stratum ;
+   int poll_target ;
+   int version ;
+   int max_sources ;
+   int min_samples ;
+   int max_samples ;
+   int filter_length ;
+   int interleaved ;
+   int sel_options ;
+   uint32_t authkey ;
+   double max_delay ;
+   double max_delay_ratio ;
+   double max_delay_dev_ratio ;
+   double min_delay ;
+   double asymmetry ;
+   double offset ;
+};
+typedef struct __anonstruct_SourceParameters_25 SourceParameters;
+struct __anonstruct_CPS_NTP_Source_26 {
+   char *name ;
+   unsigned short port ;
+   SourceParameters params ;
+};
+typedef struct __anonstruct_CPS_NTP_Source_26 CPS_NTP_Source;
+enum __anonenum_DNS_Status_27 {
+    DNS_Success = 0,
+    DNS_TryAgain = 1,
+    DNS_Failure = 2
+};
+typedef enum __anonenum_DNS_Status_27 DNS_Status;
+enum __anonenum_NTP_Source_Type_30 {
+    NTP_SERVER = 0,
+    NTP_PEER = 1
+};
+typedef enum __anonenum_NTP_Source_Type_30 NTP_Source_Type;
+enum __anonenum_NTP_Timestamp_Source_31 {
+    NTP_TS_DAEMON = 0,
+    NTP_TS_KERNEL = 1,
+    NTP_TS_HARDWARE = 2
+};
+typedef enum __anonenum_NTP_Timestamp_Source_31 NTP_Timestamp_Source;
+struct __anonstruct_NTP_Local_Timestamp_32 {
+   struct timespec ts ;
+   double err ;
+   NTP_Timestamp_Source source ;
+};
+typedef struct __anonstruct_NTP_Local_Timestamp_32 NTP_Local_Timestamp;
+enum __anonenum_NSR_Status_33 {
+    NSR_Success = 0,
+    NSR_NoSuchSource = 1,
+    NSR_AlreadyInUse = 2,
+    NSR_TooManySources = 3,
+    NSR_InvalidAF = 4
+};
+typedef enum __anonenum_NSR_Status_33 NSR_Status;
+struct __anonstruct_RefclockParameters_34 {
+   char *driver_name ;
+   char *driver_parameter ;
+   int driver_poll ;
+   int poll ;
+   int filter_length ;
+   int pps_forced ;
+   int pps_rate ;
+   int min_samples ;
+   int max_samples ;
+   int sel_options ;
+   int max_lock_age ;
+   int stratum ;
+   int tai ;
+   uint32_t ref_id ;
+   uint32_t lock_ref_id ;
+   double offset ;
+   double delay ;
+   double precision ;
+   double max_dispersion ;
+   double pulse_width ;
+};
+typedef struct __anonstruct_RefclockParameters_34 RefclockParameters;
+struct __anonstruct_NTP_Source_91 {
+   NTP_Source_Type type ;
+   int pool ;
+   CPS_NTP_Source params ;
+};
+typedef struct __anonstruct_NTP_Source_91 NTP_Source;
+struct _AllowDeny {
+   IPAddr ip ;
+   int subnet_bits ;
+   int all ;
+   int allow ;
+};
+typedef struct _AllowDeny AllowDeny;
+struct __anonstruct_NTP_Broadcast_Destination_92 {
+   IPAddr addr ;
+   unsigned short port ;
+   int interval ;
+};
+typedef struct __anonstruct_NTP_Broadcast_Destination_92 NTP_Broadcast_Destination;
+typedef uint32_t UINT4;
+struct __anonstruct_MD5_CTX_63 {
+   UINT4 i[2] ;
+   UINT4 buf[4] ;
+   unsigned char in[64] ;
+   unsigned char digest[16] ;
+};
+typedef struct __anonstruct_MD5_CTX_63 MD5_CTX;
+enum __anonenum_LCL_ChangeType_83 {
+    LCL_ChangeAdjust = 0,
+    LCL_ChangeStep = 1,
+    LCL_ChangeUnknownStep = 2
+};
+typedef enum __anonenum_LCL_ChangeType_83 LCL_ChangeType;
+struct __anonstruct_Key_85 {
+   uint32_t id ;
+   char *val ;
+   int len ;
+   int hash_id ;
+   int auth_delay ;
+};
+typedef struct __anonstruct_Key_85 Key;
+struct _ChangeListEntry {
+   struct _ChangeListEntry *next ;
+   struct _ChangeListEntry *prev ;
+   void (*handler)(struct timespec *raw, struct timespec *cooked,
+                   double dfreq, double doffset, LCL_ChangeType change_type,
+                   void *anything) ;
+   void *anything ;
+};
+typedef struct _ChangeListEntry ChangeListEntry;
+struct _DispersionNotifyListEntry {
+   struct _DispersionNotifyListEntry *next ;
+   struct _DispersionNotifyListEntry *prev ;
+   void (*handler)(double dispersion, void *anything) ;
+   void *anything ;
+};
+typedef struct _DispersionNotifyListEntry DispersionNotifyListEntry;
+typedef unsigned int SCH_TimeoutID;
+enum __anonenum_SCH_TimeoutClass_30 {
+    SCH_ReservedTimeoutValue = 0,
+    SCH_NtpClientClass = 1,
+    SCH_NtpPeerClass = 2,
+    SCH_NtpBroadcastClass = 3,
+    SCH_NumberOfClasses = 4
+};
+typedef enum __anonenum_SCH_TimeoutClass_30 SCH_TimeoutClass;
+typedef void *SCH_ArbitraryArgument;
+union sockaddr_in46 {
+   struct sockaddr_in in4 ;
+   struct sockaddr u ;
+};
+struct Message {
+   union sockaddr_in46 name ;
+   struct iovec iov ;
+   NTP_Receive_Buffer buf ;
+   struct cmsghdr cmsgbuf[(unsigned long)256 / sizeof(struct cmsghdr)] ;
+};
+struct MessageHeader {
+   struct msghdr msg_hdr ;
+   unsigned int msg_len ;
+};
+struct fb_drift {
+   double freq ;
+   double secs ;
+};
+struct __anonstruct_FileHandlerEntry_66 {
+   void (*handler)(int fd, int event, SCH_ArbitraryArgument ) ;
+   SCH_ArbitraryArgument arg ;
+   int events ;
+};
+typedef struct __anonstruct_FileHandlerEntry_66 FileHandlerEntry;
+struct _TimerQueueEntry {
+   struct _TimerQueueEntry *next ;
+   struct _TimerQueueEntry *prev ;
+   struct timespec ts ;
+   SCH_TimeoutID id ;
+   SCH_TimeoutClass class ;
+   void (*handler)(SCH_ArbitraryArgument ) ;
+   SCH_ArbitraryArgument arg ;
+};
+typedef struct _TimerQueueEntry TimerQueueEntry;
+struct stage {
+   double wander ;
+   double length ;
+};
+struct SelectInfo {
+   NTP_Leap leap ;
+   int stratum ;
+   int select_ok ;
+   double std_dev ;
+   double root_distance ;
+   double lo_limit ;
+   double hi_limit ;
+   double last_sample_ago ;
+};
+enum __anonenum_SRC_Status_90 {
+    SRC_OK = 0,
+    SRC_UNSELECTABLE = 1,
+    SRC_BAD_STATS = 2,
+    SRC_BAD_DISTANCE = 3,
+    SRC_JITTERY = 4,
+    SRC_WAITS_STATS = 5,
+    SRC_STALE = 6,
+    SRC_ORPHAN = 7,
+    SRC_UNTRUSTED = 8,
+    SRC_FALSETICKER = 9,
+    SRC_WAITS_SOURCES = 10,
+    SRC_NONPREFERRED = 11,
+    SRC_WAITS_UPDATE = 12,
+    SRC_DISTANT = 13,
+    SRC_OUTLIER = 14,
+    SRC_UNSELECTED = 15,
+    SRC_SELECTED = 16
+};
+typedef enum __anonenum_SRC_Status_90 SRC_Status;
+struct SRC_Instance_Record {
+   SST_Stats stats ;
+   int index ;
+   uint32_t ref_id ;
+   IPAddr *ip_addr ;
+   int active ;
+   int reachability ;
+   int reachability_size ;
+   int updates ;
+   int distant ;
+   SRC_Status status ;
+   SRC_Type type ;
+   int sel_options ;
+   double sel_score ;
+   struct SelectInfo sel_info ;
+};
+enum __anonenum_tag_91 {
+    LOW = -1,
+    HIGH = 1
+};
+struct Sort_Element {
+   int index ;
+   double offset ;
+   enum __anonenum_tag_91 tag ;
+};
+struct SST_Stats_Record {
+   uint32_t refid ;
+   IPAddr *ip_addr ;
+   int min_samples ;
+   int max_samples ;
+   double fixed_min_delay ;
+   double fixed_asymmetry ;
+   int n_samples ;
+   int runs_samples ;
+   int last_sample ;
+   int regression_ok ;
+   int best_single_sample ;
+   int min_delay_sample ;
+   double estimated_offset ;
+   double estimated_offset_sd ;
+   struct timespec offset_time ;
+   int nruns ;
+   int asymmetry_run ;
+   double asymmetry ;
+   double estimated_frequency ;
+   double estimated_frequency_sd ;
+   double skew ;
+   double std_dev ;
+   struct timespec sample_times[64 * 2] ;
+   double offsets[64 * 2] ;
+   double orig_offsets[64] ;
+   double peer_delays[64 * 2] ;
+   double peer_dispersions[64] ;
+   double root_delays[64] ;
+   double root_dispersions[64] ;
+   int stratum ;
+   NTP_Leap leap ;
+};
+struct DNS_Async_Instance {
+   char const *name ;
+   void (*handler)(DNS_Status status, int n_addrs, IPAddr *ip_addrs,
+                   void *anything) ;
+   void *arg ;
+   int pipe[2] ;
+};
+extern void LOG_Initialise(void);
+
+extern void LOG_Finalise(void);
+
+extern void ( /* format attribute */ LOG_Message)(LOG_Severity severity,
+                                                  char const *format,
+                                                  void * const *__va_params);
+
+extern void LOG_SetDebugLevel(int level);
+
+extern void LOG_OpenFileLog(char const *log_file);
+
+extern LOG_FileID LOG_FileOpen(char const *name, char const *banner);
+
+extern void ( /* format attribute */ LOG_FileWrite)(LOG_FileID id,
+                                                    char const *format,
+                                                    void * const *__va_params);
+
+void lcl_InvokeDispersionNotifyHandlers(double dispersion);
+
+void lcl_RegisterSystemDrivers(double (*read_freq)(void),
+                               double (*set_freq)(double freq_ppm),
+                               void (*accrue_offset_0)(double offset,
+                                                       double corr_rate),
+                               int (*apply_step_offset_0)(double offset),
+                               void (*offset_convert_0)(struct timespec *raw,
+                                                        double *corr,
+                                                        double *err),
+                               void (*set_leap)(int leap, int tai_offset),
+                               void (*set_sync_status)(int synchronised,
+                                                       double est_error,
+                                                       double max_error));
+
+void test_unit(void);
+
+void TST_Fail(int line);
+
+void TST_SuspendLogging(void);
+
+void TST_ResumeLogging(void);
+
+double TST_GetRandomDouble(double min, double max);
+
+void TST_GetRandomAddress(IPAddr *ip, int family, int bits);
+
+void TST_SwapAddressBit(IPAddr *ip, unsigned int b);
+
+void TST_RegisterDummyDrivers(void);
+
+int HSH_GetHashId(char const *name);
+
+unsigned int HSH_Hash(int id, unsigned char const *in1, unsigned int in1_len,
+                      unsigned char const *in2, unsigned int in2_len,
+                      unsigned char *out, unsigned int out_len);
+
+void HSH_Finalise(void);
+
+void UTI_ZeroTimespec(struct timespec *ts);
+
+int UTI_IsZeroTimespec(struct timespec *ts);
+
+void UTI_TimevalToTimespec(struct timeval *tv, struct timespec *ts);
+
+void UTI_TimespecToTimeval(struct timespec *ts, struct timeval *tv);
+
+double UTI_TimespecToDouble(struct timespec *ts);
+
+void UTI_DoubleToTimespec(double d, struct timespec *ts);
+
+void UTI_NormaliseTimespec(struct timespec *ts);
+
+double UTI_TimevalToDouble(struct timeval *tv);
+
+void UTI_DoubleToTimeval(double a, struct timeval *b);
+
+void UTI_NormaliseTimeval(struct timeval *x);
+
+int UTI_CompareTimespecs(struct timespec *a, struct timespec *b);
+
+void UTI_DiffTimespecs(struct timespec *result, struct timespec *a,
+                       struct timespec *b);
+
+double UTI_DiffTimespecsToDouble(struct timespec *a, struct timespec *b);
+
+void UTI_AddDoubleToTimespec(struct timespec *start, double increment,
+                             struct timespec *end);
+
+void UTI_AverageDiffTimespecs(struct timespec *earlier,
+                              struct timespec *later,
+                              struct timespec *average, double *diff);
+
+void UTI_AddDiffToTimespec(struct timespec *a, struct timespec *b,
+                           struct timespec *c, struct timespec *result);
+
+char *UTI_TimespecToString(struct timespec *ts);
+
+char *UTI_Ntp64ToString(NTP_int64 *ntp_ts);
+
+char *UTI_RefidToString(uint32_t ref_id);
+
+char *UTI_IPToString(IPAddr *addr);
+
+int UTI_StringToIP(char const *addr, IPAddr *ip);
+
+uint32_t UTI_IPToRefid(IPAddr *ip);
+
+uint32_t UTI_IPToHash(IPAddr *ip);
+
+void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest);
+
+void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest);
+
+int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask);
+
+void UTI_SockaddrToIPAndPort(struct sockaddr *sa, IPAddr *ip,
+                             unsigned short *port);
+
+int UTI_IPAndPortToSockaddr(IPAddr *ip, unsigned short port,
+                            struct sockaddr *sa);
+
+char *UTI_SockaddrToString(struct sockaddr *sa);
+
+char const *UTI_SockaddrFamilyToString(int family);
+
+char *UTI_TimeToLogForm(time_t t);
+
+void UTI_AdjustTimespec(struct timespec *old_ts, struct timespec *when,
+                        struct timespec *new_ts, double *delta_time,
+                        double dfreq, double doffset);
+
+void UTI_GetNtp64Fuzz(NTP_int64 *ts, int precision);
+
+double UTI_Ntp32ToDouble(NTP_int32 x);
+
+NTP_int32 UTI_DoubleToNtp32(double x);
+
+void UTI_ZeroNtp64(NTP_int64 *ts);
+
+int UTI_IsZeroNtp64(NTP_int64 *ts);
+
+int UTI_CompareNtp64(NTP_int64 *a, NTP_int64 *b);
+
+int UTI_IsEqualAnyNtp64(NTP_int64 *a, NTP_int64 *b1, NTP_int64 *b2,
+                        NTP_int64 *b3);
+
+void UTI_TimespecToNtp64(struct timespec *src, NTP_int64 *dest,
+                         NTP_int64 *fuzz);
+
+void UTI_Ntp64ToTimespec(NTP_int64 *src, struct timespec *dest);
+
+int UTI_IsTimeOffsetSane(struct timespec *ts, double offset);
+
+double UTI_Log2ToDouble(int l);
+
+void UTI_TimespecNetworkToHost(Timespec *src, struct timespec *dest);
+
+void UTI_TimespecHostToNetwork(struct timespec *src, Timespec *dest);
+
+double UTI_FloatNetworkToHost(Float f);
+
+Float UTI_FloatHostToNetwork(double x);
+
+int UTI_FdSetCloexec(int fd);
+
+void UTI_SetQuitSignalsHandler(void (*handler)(int ), int ignore_sigpipe);
+
+char *UTI_PathToDir(char const *path);
+
+int UTI_CreateDirAndParents(char const *path, mode_t mode_0, uid_t uid,
+                            gid_t gid);
+
+int UTI_CheckDirPermissions(char const *path, mode_t perm, uid_t uid,
+                            gid_t gid);
+
+void UTI_DropRoot(uid_t uid, gid_t gid);
+
+void UTI_GetRandomBytesUrandom(void *buf, unsigned int len);
+
+void UTI_GetRandomBytes(void *buf, unsigned int len);
+
+/*@ requires valid_read_string(format);
+    assigns \result, __fc_stdout->__fc_FILE_data;
+    assigns \result
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            (indirect: __fc_stdout->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param0);
+    assigns __fc_stdout->__fc_FILE_data
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))),
+            param0;
+ */
+int printf_va_1(char const * __restrict format, int param0);
+
+void TST_Fail(int line)
+{
+  printf_va_1("FAIL (on line %d)\n",line);
+  exit(1);
+  return;
+}
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..)));
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..)));
+ */
+int fprintf_va_1(FILE * __restrict stream, char const * __restrict format);
+
+/*@ requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, __fc_stdout->__fc_FILE_data;
+    assigns \result
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            (indirect: __fc_stdout->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..)));
+    assigns __fc_stdout->__fc_FILE_data
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..))),
+            *(param0 + (0 ..));
+ */
+int printf_va_2(char const * __restrict format, char *param0);
+
+/*@ requires valid_read_string(format);
+    assigns \result, __fc_stdout->__fc_FILE_data;
+    assigns \result
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            (indirect: __fc_stdout->__fc_FILE_data),
+            (indirect: *(format + (0 ..)));
+    assigns __fc_stdout->__fc_FILE_data
+      \from (indirect: __fc_stdout->__fc_FILE_id),
+            __fc_stdout->__fc_FILE_data, (indirect: *(format + (0 ..)));
+ */
+int printf_va_3(char const * __restrict format);
+
+int main(int argc, char **argv)
+{
+  int __retres;
+  char *test_name;
+  char *s;
+  int i;
+  struct timeval tv;
+  long tmp_1;
+  int seed = 0;
+  test_name = *(argv + 0);
+  s = strrchr((char const *)test_name,'.');
+  if (s) *s = (char)'\000';
+  s = strrchr((char const *)test_name,'/');
+  if (s) test_name = s + 1;
+  i = 1;
+  while (i < argc) {
+    {
+      int tmp_0;
+      tmp_0 = strcmp((char const *)*(argv + i),"-d");
+      if (tmp_0) {
+        int tmp;
+        tmp = strcmp((char const *)*(argv + i),"-s");
+        if (tmp) {
+          _LAND: {
+                   fprintf_va_1(__fc_stderr,"Unknown option\n");
+                   exit(1);
+                 }
+        }
+        else 
+          if (i + 1 < argc) {
+            i ++;
+            ;
+            seed = atoi((char const *)*(argv + i));
+          }
+          else goto _LAND;
+      }
+      else LOG_SetDebugLevel(2);
+    }
+    i ++;
+  }
+  gettimeofday(& tv,(void *)0);
+  if (seed) tmp_1 = (long)seed;
+  else tmp_1 = tv.tv_sec ^ (long)(tv.tv_usec << 10);
+  srandom((unsigned int)tmp_1);
+  printf_va_2("Testing %-30s ",test_name);
+  fflush(__fc_stdout);
+  LOG_Initialise();
+  test_unit();
+  LOG_Finalise();
+  printf_va_3("PASS\n");
+  __retres = 0;
+  return __retres;
+}
+
+void TST_SuspendLogging(void)
+{
+  LOG_OpenFileLog("/dev/null");
+  return;
+}
+
+void TST_ResumeLogging(void)
+{
+  LOG_OpenFileLog((char const *)0);
+  return;
+}
+
+double TST_GetRandomDouble(double min, double max)
+{
+  double __retres;
+  long tmp;
+  tmp = random();
+  ;
+  __retres = min + ((double)tmp / (double)32767) * (max - min);
+  return __retres;
+}
+
+void TST_GetRandomAddress(IPAddr *ip, int family, int bits)
+{
+  if (family != 1) 
+    if (family != 2) {
+      long tmp;
+      tmp = random();
+      if (tmp % (long)2) family = 1; else family = 2;
+    }
+  ip->family = (unsigned short)family;
+  if (family == 1) {
+    if (bits < 0) bits = 32;
+    __FC_assert((bits <= 32) != 0,"test/unit/test.c",106,"bits <= 32");
+    if (bits > 16) {
+      long tmp_0;
+      long tmp_1;
+      tmp_0 = random();
+      tmp_1 = random();
+      ip->addr.in4 = ((unsigned int)tmp_0 % (1U << (bits - 16)) << 16) | 
+                     (unsigned int)tmp_1 % (1U << 16);
+    }
+    else {
+      long tmp_2;
+      tmp_2 = random();
+      ip->addr.in4 = (unsigned int)tmp_2 % (1U << bits);
+    }
+  }
+  else {
+    int i;
+    int b;
+    if (bits < 0) bits = 128;
+    __FC_assert((bits <= 128) != 0,"test/unit/test.c",118,"bits <= 128");
+    i = 0;
+    b = 120;
+    /*@ loop unroll 16; */
+    while (i < 16) {
+      if (b >= bits) ip->addr.in6[i] = (unsigned char)0;
+      else {
+        long tmp_3;
+        int tmp_4;
+        tmp_3 = random();
+        if (bits - b < 8) tmp_4 = bits - b; else tmp_4 = 8;
+        ip->addr.in6[i] = (unsigned char)(tmp_3 % (long)(1U << tmp_4));
+      }
+      i ++;
+      b -= 8;
+    }
+  }
+  return;
+}
+
+void TST_SwapAddressBit(IPAddr *ip, unsigned int b)
+{
+  if ((int)ip->family == 1) {
+    __FC_assert((b < (unsigned int)32) != 0,"test/unit/test.c",135,"b < 32");
+    ip->addr.in4 ^= 1U << ((unsigned int)31 - b);
+  }
+  else 
+    if ((int)ip->family == 2) {
+      __FC_assert((b < (unsigned int)128) != 0,"test/unit/test.c",138,
+                  "b < 128");
+      ip->addr.in6[b / (unsigned int)8] = (unsigned char)((unsigned int)ip->addr.in6[
+                                                          b / (unsigned int)8] ^ (
+                                                          1U << ((unsigned int)7 - 
+                                                                 b % (unsigned int)8)));
+    }
+    else __FC_assert(0 != 0,"test/unit/test.c",141,"0");
+  return;
+}
+
+static double read_frequency(void)
+{
+  double __retres;
+  __retres = 0.0;
+  return __retres;
+}
+
+static double set_frequency(double freq_ppm)
+{
+  double __retres;
+  __retres = 0.0;
+  return __retres;
+}
+
+static void accrue_offset(double offset, double corr_rate)
+{
+  return;
+}
+
+static int apply_step_offset(double offset)
+{
+  int __retres;
+  __retres = 0;
+  return __retres;
+}
+
+static void offset_convert(struct timespec *raw, double *corr, double *err)
+{
+  *corr = 0.0;
+  if (err) *err = 0.0;
+  return;
+}
+
+void TST_RegisterDummyDrivers(void)
+{
+  lcl_RegisterSystemDrivers(& read_frequency,& set_frequency,& accrue_offset,
+                            & apply_step_offset,& offset_convert,
+                            (void (*)(int leap, int tai_offset))0,
+                            (void (*)(int synchronised, double est_error,
+                                      double max_error))0);
+  return;
+}
+
+ADF_AuthTable ADF_CreateTable(void);
+
+ADF_Status ADF_Allow(ADF_AuthTable table, IPAddr *ip, int subnet_bits);
+
+ADF_Status ADF_AllowAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits);
+
+ADF_Status ADF_Deny(ADF_AuthTable table, IPAddr *ip, int subnet_bits);
+
+ADF_Status ADF_DenyAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits);
+
+void ADF_DestroyTable(ADF_AuthTable table);
+
+int ADF_IsAllowed(ADF_AuthTable table, IPAddr *ip_addr);
+
+int ADF_IsAnyAllowed(ADF_AuthTable table, int family);
+
+void *Malloc(size_t size);
+
+void *Realloc(void *ptr, size_t size);
+
+void *Malloc2(size_t nmemb, size_t size);
+
+void *Realloc2(void *ptr, size_t nmemb, size_t size);
+
+char *Strdup(char const *s);
+
+static void split_ip6(IPAddr *ip, uint32_t *dst)
+{
+  int i;
+  i = 0;
+  /*@ loop unroll 4; */
+  while (i < 4) {
+    *(dst + i) = ((((unsigned int)ip->addr.in6[i * 4 + 0] << 24) | (unsigned int)(
+                   (int)ip->addr.in6[i * 4 + 1] << 16)) | (unsigned int)(
+                  (int)ip->addr.in6[i * 4 + 2] << 8)) | (unsigned int)ip->addr.in6[
+                 i * 4 + 3];
+    i ++;
+  }
+  return;
+}
+
+__inline static uint32_t get_subnet(uint32_t *addr, unsigned int where)
+{
+  uint32_t __retres;
+  int off;
+  off = (int)(where / (unsigned int)32);
+  where %= (unsigned int)32;
+  __retres = (unsigned int)((unsigned long)(*(addr + off) >> ((unsigned int)(
+                                                              32 - 4) - where)) & (
+                            (1UL << 4) - (unsigned long)1));
+  return __retres;
+}
+
+ADF_AuthTable ADF_CreateTable(void)
+{
+  ADF_AuthTable result;
+  result = (ADF_AuthTable)Malloc(sizeof(struct ADF_AuthTableInst));
+  result->base4.state = DENY;
+  result->base4.extended = (struct _TableNode *)0;
+  result->base6.state = DENY;
+  result->base6.extended = (struct _TableNode *)0;
+  return result;
+}
+
+static void close_node(TableNode *node)
+{
+  int i;
+  TableNode *child_node;
+  if (node->extended != (struct _TableNode *)0) {
+    i = 0;
+    /*@ loop unroll 16; */
+    while ((unsigned long)i < 1UL << 4) {
+      child_node = node->extended + i;
+      i ++;
+    }
+    free((void *)node->extended);
+    node->extended = (struct _TableNode *)0;
+  }
+  return;
+}
+
+static void open_node(TableNode *node)
+{
+  int i;
+  TableNode *child_node;
+  if (node->extended == (struct _TableNode *)0) {
+    node->extended = (struct _TableNode *)Malloc2(1UL << 4,
+                                                  sizeof(struct _TableNode));
+    i = 0;
+    /*@ loop unroll 4; */
+    while ((unsigned long)i < 1UL << 4) {
+      child_node = node->extended + i;
+      child_node->state = AS_PARENT;
+      child_node->extended = (struct _TableNode *)0;
+      i ++;
+    }
+  }
+  return;
+}
+
+static ADF_Status set_subnet(TableNode *start_node, uint32_t *ip, int ip_len,
+                             int subnet_bits, State new_state,
+                             int delete_children)
+{
+  ADF_Status __retres;
+  int bits_to_go;
+  int bits_consumed;
+  uint32_t subnet;
+  TableNode *node;
+  bits_consumed = 0;
+  bits_to_go = subnet_bits;
+  node = start_node;
+  if (subnet_bits < 0) goto _LOR;
+  else 
+    if (subnet_bits > 32 * ip_len) {
+      _LOR: {
+              __retres = ADF_BADSUBNET;
+              goto return_label;
+            }
+    }
+    else {
+      if ((bits_to_go & (4 - 1)) == 0) {
+        /*@ loop unroll 128; */
+        while (bits_to_go > 0) {
+          subnet = get_subnet(ip,(unsigned int)bits_consumed);
+          if (! node->extended) open_node(node);
+          node = node->extended + subnet;
+          bits_to_go -= 4;
+          bits_consumed += 4;
+        }
+        if (delete_children) close_node(node);
+        node->state = new_state;
+      }
+      else {
+        int N;
+        int i;
+        int j;
+        TableNode *this_node;
+        uint32_t tmp;
+        /*@ loop unroll 124; */
+        while (bits_to_go >= 4) {
+          subnet = get_subnet(ip,(unsigned int)bits_consumed);
+          if (! node->extended) open_node(node);
+          node = node->extended + subnet;
+          bits_to_go -= 4;
+          bits_consumed += 4;
+        }
+        N = 1 << (4 - bits_to_go);
+        tmp = get_subnet(ip,(unsigned int)bits_consumed);
+        subnet = tmp & (unsigned int)(~ (N - 1));
+        __FC_assert(((unsigned long)(subnet + (uint32_t)N) <= 1UL << 4) != 0,
+                    "addrfilt.c",210,"subnet + N <= TABLE_SIZE");
+        if (! node->extended) open_node(node);
+        i = (int)subnet;
+        j = 0;
+        /*@ loop unroll 16; */
+        while (j < N) {
+          this_node = node->extended + i;
+          if (delete_children) close_node(this_node);
+          this_node->state = new_state;
+          i ++;
+          j ++;
+        }
+      }
+      __retres = ADF_SUCCESS;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+static ADF_Status set_subnet_(ADF_AuthTable table, IPAddr *ip_addr,
+                              int subnet_bits, State new_state,
+                              int delete_children)
+{
+  ADF_Status __retres;
+  uint32_t ip6[4];
+  switch ((int)ip_addr->family) {
+    ADF_Status tmp;
+    ADF_Status tmp_0;
+    ADF_Status tmp_1;
+    case 1:
+    tmp = set_subnet(& table->base4,& ip_addr->addr.in4,1,subnet_bits,
+                     new_state,delete_children);
+    __retres = tmp;
+    goto return_label;
+    case 2: split_ip6(ip_addr,ip6);
+    tmp_0 = set_subnet(& table->base6,ip6,4,subnet_bits,new_state,
+                       delete_children);
+    __retres = tmp_0;
+    goto return_label;
+    case 0: ;
+    if (subnet_bits != 0) {
+      __retres = ADF_BADSUBNET;
+      goto return_label;
+    }
+    memset((void *)(ip6),0,sizeof(ip6));
+    tmp_1 = set_subnet(& table->base4,ip6,1,0,new_state,delete_children);
+    if (tmp_1 == (unsigned int)ADF_SUCCESS) {
+      ADF_Status tmp_2;
+      tmp_2 = set_subnet(& table->base6,ip6,4,0,new_state,delete_children);
+      if (tmp_2 == (unsigned int)ADF_SUCCESS) {
+        __retres = ADF_SUCCESS;
+        goto return_label;
+      }
+    }
+    break;
+  }
+  __retres = ADF_BADSUBNET;
+  return_label: return __retres;
+}
+
+ADF_Status ADF_Allow(ADF_AuthTable table, IPAddr *ip, int subnet_bits)
+{
+  ADF_Status tmp;
+  tmp = set_subnet_(table,ip,subnet_bits,ALLOW,0);
+  return tmp;
+}
+
+ADF_Status ADF_AllowAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits)
+{
+  ADF_Status tmp;
+  tmp = set_subnet_(table,ip,subnet_bits,ALLOW,1);
+  return tmp;
+}
+
+ADF_Status ADF_Deny(ADF_AuthTable table, IPAddr *ip, int subnet_bits)
+{
+  ADF_Status tmp;
+  tmp = set_subnet_(table,ip,subnet_bits,DENY,0);
+  return tmp;
+}
+
+ADF_Status ADF_DenyAll(ADF_AuthTable table, IPAddr *ip, int subnet_bits)
+{
+  ADF_Status tmp;
+  tmp = set_subnet_(table,ip,subnet_bits,DENY,1);
+  return tmp;
+}
+
+void ADF_DestroyTable(ADF_AuthTable table)
+{
+  close_node(& table->base4);
+  close_node(& table->base6);
+  free((void *)table);
+  return;
+}
+
+static int check_ip_in_node(TableNode *start_node, uint32_t *ip)
+{
+  uint32_t subnet;
+  TableNode *node;
+  int bits_consumed = 0;
+  int result = 0;
+  int finished = 0;
+  State state = DENY;
+  node = start_node;
+  while (1) {
+    if (node->state != (unsigned int)AS_PARENT) state = node->state;
+    if (node->extended) {
+      subnet = get_subnet(ip,(unsigned int)bits_consumed);
+      node = node->extended + subnet;
+      bits_consumed += 4;
+    }
+    else finished = 1;
+    if (! (! finished)) break;
+  }
+  switch (state) {
+    case (State)ALLOW: result = 1;
+    break;
+    case (State)DENY: result = 0;
+    break;
+    case (State)AS_PARENT: __FC_assert(0 != 0,"addrfilt.c",347,"0");
+    break;
+  }
+  return result;
+}
+
+int ADF_IsAllowed(ADF_AuthTable table, IPAddr *ip_addr)
+{
+  int __retres;
+  uint32_t ip6[4];
+  switch ((int)ip_addr->family) {
+    int tmp;
+    int tmp_0;
+    case 1: tmp = check_ip_in_node(& table->base4,& ip_addr->addr.in4);
+    __retres = tmp;
+    goto return_label;
+    case 2: split_ip6(ip_addr,ip6);
+    tmp_0 = check_ip_in_node(& table->base6,ip6);
+    __retres = tmp_0;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+int volatile nondet;
+static int is_any_allowed(TableNode *node, State parent)
+{
+  int __retres;
+  State state;
+  int i;
+  if (node->state != (unsigned int)AS_PARENT) state = node->state;
+  else state = parent;
+  __FC_assert((state != (unsigned int)AS_PARENT) != 0,"addrfilt.c",387,
+              "state != AS_PARENT");
+  if (node->extended) {
+    i = 0;
+    /*@ loop unroll 16; */
+    while ((unsigned long)i < 1UL << 4) {
+      if (nondet) {
+        __retres = 1;
+        goto return_label;
+      }
+      i ++;
+    }
+  }
+  else 
+    if (state == (unsigned int)ALLOW) {
+      __retres = 1;
+      goto return_label;
+    }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+int ADF_IsAnyAllowed(ADF_AuthTable table, int family)
+{
+  int __retres;
+  switch (family) {
+    int tmp;
+    int tmp_0;
+    case 1: tmp = is_any_allowed(& table->base4,AS_PARENT);
+    __retres = tmp;
+    goto return_label;
+    case 2: tmp_0 = is_any_allowed(& table->base6,AS_PARENT);
+    __retres = tmp_0;
+    goto return_label;
+    default: __retres = 0;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+ARR_Instance ARR_CreateInstance(unsigned int elem_size);
+
+void ARR_DestroyInstance(ARR_Instance array);
+
+void *ARR_GetNewElement(ARR_Instance array);
+
+void *ARR_GetElement(ARR_Instance array, unsigned int index_0);
+
+void *ARR_GetElements(ARR_Instance array);
+
+void ARR_AppendElement(ARR_Instance array, void *element);
+
+void ARR_SetSize(ARR_Instance array, unsigned int size);
+
+unsigned int ARR_GetSize(ARR_Instance array);
+
+ARR_Instance ARR_CreateInstance(unsigned int elem_size)
+{
+  ARR_Instance array;
+  __FC_assert((elem_size > (unsigned int)0) != 0,"array.c",47,
+              "elem_size > 0");
+  array = (ARR_Instance)Malloc(sizeof(struct ARR_Instance_Record));
+  array->data = (void *)0;
+  array->elem_size = elem_size;
+  array->used = (unsigned int)0;
+  array->allocated = (unsigned int)0;
+  return array;
+}
+
+void ARR_DestroyInstance(ARR_Instance array)
+{
+  free(array->data);
+  free((void *)array);
+  return;
+}
+
+static void realloc_array(ARR_Instance array, unsigned int min_size)
+{
+  __FC_assert((min_size <= (unsigned int)2 * min_size) != 0,"array.c",69,
+              "min_size <= 2 * min_size");
+  if (array->allocated >= min_size) 
+    if (array->allocated <= (unsigned int)2 * min_size) goto return_label;
+  if (array->allocated < min_size) 
+    while (array->allocated < min_size) 
+      if (array->allocated) array->allocated = (unsigned int)2 * array->allocated;
+      else array->allocated = (unsigned int)1;
+  else array->allocated = min_size;
+  array->data = Realloc2(array->data,(unsigned long)array->allocated,
+                         (unsigned long)array->elem_size);
+  return_label: return;
+}
+
+void *ARR_GetNewElement(ARR_Instance array)
+{
+  void *tmp;
+  (array->used) ++;
+  realloc_array(array,array->used);
+  tmp = ARR_GetElement(array,array->used - (unsigned int)1);
+  return tmp;
+}
+
+void *ARR_GetElement(ARR_Instance array, unsigned int index_0)
+{
+  void *__retres;
+  __FC_assert((index_0 < array->used) != 0,"array.c",94,
+              "index < array->used");
+  __retres = (void *)((char *)array->data + (unsigned long)index_0 * (unsigned long)array->elem_size);
+  return __retres;
+}
+
+void *ARR_GetElements(ARR_Instance array)
+{
+  void *__retres;
+  if (! array->data) {
+    __FC_assert(! array->used != 0,"array.c",103,"!array->used");
+    __retres = (void *)array;
+    goto return_label;
+  }
+  __retres = array->data;
+  return_label: return __retres;
+}
+
+void ARR_AppendElement(ARR_Instance array, void *element)
+{
+  void *e;
+  e = ARR_GetNewElement(array);
+  memcpy(e,(void const *)element,(unsigned long)array->elem_size);
+  return;
+}
+
+void ARR_SetSize(ARR_Instance array, unsigned int size)
+{
+  realloc_array(array,size);
+  array->used = size;
+  return;
+}
+
+unsigned int ARR_GetSize(ARR_Instance array)
+{
+  unsigned int __retres;
+  __retres = array->used;
+  return __retres;
+}
+
+void CLG_Initialise(void);
+
+void CLG_Finalise(void);
+
+int CLG_GetClientIndex(IPAddr *client);
+
+int CLG_LogNTPAccess(IPAddr *client, struct timespec *now);
+
+int CLG_LogCommandAccess(IPAddr *client, struct timespec *now);
+
+int CLG_LimitNTPResponseRate(int index_0);
+
+int CLG_LimitCommandResponseRate(int index_0);
+
+void CLG_GetNtpTimestamps(int index_0, NTP_int64 **rx_ts, NTP_int64 **tx_ts);
+
+int CLG_GetNtpMinPoll(void);
+
+int CLG_GetNumberOfIndices(void);
+
+int CLG_GetClientAccessReportByIndex(int index_0,
+                                     RPT_ClientAccessByIndex_Report *report,
+                                     struct timespec *now);
+
+void CLG_GetServerStatsReport(RPT_ServerStatsReport *report);
+
+void REF_Initialise(void);
+
+void REF_Finalise(void);
+
+void REF_SetMode(REF_Mode new_mode);
+
+REF_Mode REF_GetMode(void);
+
+void REF_SetModeEndHandler(void (*handler)(int result));
+
+REF_LeapMode REF_GetLeapMode(void);
+
+void REF_GetReferenceParams(struct timespec *local_time,
+                            int *is_synchronised, NTP_Leap *leap_status,
+                            int *stratum, uint32_t *ref_id,
+                            struct timespec *ref_time, double *root_delay,
+                            double *root_dispersion);
+
+void REF_SetReference(int stratum, NTP_Leap leap, int combined_sources,
+                      uint32_t ref_id, IPAddr *ref_ip,
+                      struct timespec *ref_time, double offset,
+                      double offset_sd, double frequency,
+                      double frequency_sd, double skew, double root_delay,
+                      double root_dispersion);
+
+void REF_SetManualReference(struct timespec *ref_time, double offset,
+                            double frequency, double skew);
+
+void REF_SetUnsynchronised(void);
+
+int REF_GetOurStratum(void);
+
+int REF_GetOrphanStratum(void);
+
+double REF_GetSkew(void);
+
+void REF_ModifyMaxupdateskew(double new_max_update_skew);
+
+void REF_ModifyMakestep(int limit, double threshold);
+
+void REF_EnableLocal(int stratum, double distance, int orphan);
+
+void REF_DisableLocal(void);
+
+int REF_IsLeapSecondClose(void);
+
+int REF_GetTaiOffset(struct timespec *ts);
+
+void REF_GetTrackingReport(RPT_TrackingReport *rep);
+
+void CNF_Initialise(int r, int client_only);
+
+void CNF_Finalise(void);
+
+char *CNF_GetRtcDevice(void);
+
+void CNF_ReadFile(char const *filename);
+
+void CNF_ParseLine(char const *filename, int number, char *line);
+
+void CNF_CreateDirs(uid_t uid, gid_t gid);
+
+void CNF_AddInitSources(void);
+
+void CNF_AddSources(void);
+
+void CNF_AddBroadcasts(void);
+
+void CNF_AddRefclocks(void);
+
+int CNF_GetAcquisitionPort(void);
+
+int CNF_GetNTPPort(void);
+
+char *CNF_GetDriftFile(void);
+
+char *CNF_GetLogDir(void);
+
+char *CNF_GetDumpDir(void);
+
+int CNF_GetLogBanner(void);
+
+int CNF_GetLogMeasurements(int *raw);
+
+int CNF_GetLogStatistics(void);
+
+int CNF_GetLogTracking(void);
+
+int CNF_GetLogRtc(void);
+
+int CNF_GetLogRefclocks(void);
+
+int CNF_GetLogTempComp(void);
+
+char *CNF_GetKeysFile(void);
+
+char *CNF_GetRtcFile(void);
+
+int CNF_GetManualEnabled(void);
+
+int CNF_GetCommandPort(void);
+
+int CNF_GetRtcOnUtc(void);
+
+int CNF_GetRtcSync(void);
+
+void CNF_GetMakeStep(int *limit, double *threshold);
+
+void CNF_GetMaxChange(int *delay, int *ignore, double *offset);
+
+double CNF_GetLogChange(void);
+
+void CNF_GetMailOnChange(int *enabled_0, double *threshold, char **user_0);
+
+int CNF_GetNoClientLog(void);
+
+unsigned long CNF_GetClientLogLimit(void);
+
+void CNF_GetFallbackDrifts(int *min, int *max);
+
+void CNF_GetBindAddress(int family, IPAddr *addr);
+
+void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr);
+
+void CNF_GetBindCommandAddress(int family, IPAddr *addr);
+
+char *CNF_GetBindCommandPath(void);
+
+char *CNF_GetNtpSigndSocket(void);
+
+char *CNF_GetPidFile(void);
+
+REF_LeapMode CNF_GetLeapSecMode(void);
+
+char *CNF_GetLeapSecTimezone(void);
+
+double CNF_GetMaxUpdateSkew(void);
+
+double CNF_GetMaxClockError(void);
+
+double CNF_GetMaxDrift(void);
+
+double CNF_GetCorrectionTimeRatio(void);
+
+double CNF_GetMaxSlewRate(void);
+
+double CNF_GetMaxDistance(void);
+
+double CNF_GetMaxJitter(void);
+
+double CNF_GetReselectDistance(void);
+
+double CNF_GetStratumWeight(void);
+
+double CNF_GetCombineLimit(void);
+
+int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance);
+
+void CNF_SetupAccessRestrictions(void);
+
+int CNF_GetSchedPriority(void);
+
+int CNF_GetLockMemory(void);
+
+int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak);
+
+int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak);
+
+void CNF_GetSmooth(double *max_freq_0, double *max_wander_0, int *leap_only);
+
+void CNF_GetTempComp(char **file, double *interval, char **point_file,
+                     double *T0, double *k0, double *k1, double *k2);
+
+char *CNF_GetUser(void);
+
+int CNF_GetMaxSamples(void);
+
+int CNF_GetMinSamples(void);
+
+int CNF_GetMinSources(void);
+
+double CNF_GetRtcAutotrim(void);
+
+char *CNF_GetHwclockFile(void);
+
+int CNF_GetInitSources(void);
+
+double CNF_GetInitStepThreshold(void);
+
+int CNF_GetHwTsInterface(unsigned int index_0, CNF_HwTsInterface **iface);
+
+static ARR_Instance records;
+static unsigned int slots;
+static unsigned int max_slots;
+static uint32_t ts_offset;
+static uint16_t max_ntp_tokens;
+static uint16_t max_cmd_tokens;
+static uint16_t ntp_tokens_per_packet;
+static uint16_t cmd_tokens_per_packet;
+static int ntp_token_shift;
+static int cmd_token_shift;
+static int ntp_leak_rate;
+static int cmd_leak_rate;
+static int ntp_limit_interval;
+static int active;
+static uint32_t total_ntp_hits;
+static uint32_t total_cmd_hits;
+static uint32_t total_ntp_drops;
+static uint32_t total_cmd_drops;
+static uint32_t total_record_drops;
+static int expand_hashtable(void);
+
+static int compare_ts(uint32_t x, uint32_t y)
+{
+  int __retres;
+  int tmp;
+  if (x == y) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (y == (uint32_t)0) {
+    __retres = 1;
+    goto return_label;
+  }
+  if ((int)(x - y) > 0) tmp = 1; else tmp = -1;
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+static Record *get_record(IPAddr *ip)
+{
+  Record *__retres;
+  unsigned int first;
+  unsigned int i;
+  time_t last_hit;
+  Record *record;
+  Record *oldest_record;
+  uint32_t tmp_4;
+  uint32_t tmp_5;
+  uint16_t tmp_6;
+  int8_t tmp_7;
+  time_t oldest_hit = (long)0;
+  if (! active) {
+    __retres = (Record *)0;
+    goto return_label;
+  }
+  else 
+    if ((int)ip->family != 1) 
+      if ((int)ip->family != 2) {
+        __retres = (Record *)0;
+        goto return_label;
+      }
+  while (1) {
+    {
+      uint32_t tmp;
+      int tmp_3;
+      tmp = UTI_IPToHash(ip);
+      first = (tmp % slots) * (1U << 4);
+      i = (unsigned int)0;
+      oldest_record = (Record *)0;
+      while (i < 1U << 4) {
+        {
+          int tmp_0;
+          int tmp_1;
+          record = (Record *)ARR_GetElement(records,first + i);
+          tmp_0 = UTI_CompareIPs(ip,& record->ip_addr,(IPAddr *)0);
+          if (! tmp_0) {
+            __retres = record;
+            goto return_label;
+          }
+          if ((int)record->ip_addr.family == 0) break;
+          tmp_1 = compare_ts(record->last_ntp_hit,record->last_cmd_hit);
+          if (tmp_1 > 0) last_hit = (long)record->last_ntp_hit;
+          else last_hit = (long)record->last_cmd_hit;
+          if (! oldest_record) goto _LOR;
+          else {
+            int tmp_2;
+            tmp_2 = compare_ts((unsigned int)oldest_hit,
+                               (unsigned int)last_hit);
+            if (tmp_2 > 0) goto _LOR;
+            else 
+              if (oldest_hit == last_hit) 
+                if (record->ntp_hits + record->cmd_hits < oldest_record->ntp_hits + oldest_record->cmd_hits) {
+                  _LOR: {
+                          oldest_record = record;
+                          oldest_hit = last_hit;
+                        }
+                }
+          }
+        }
+        i ++;
+      }
+      if ((int)record->ip_addr.family == 0) break;
+      tmp_3 = expand_hashtable();
+      if (tmp_3) continue;
+      record = oldest_record;
+      total_record_drops += (uint32_t)1;
+      break;
+    }
+  }
+  record->ip_addr = *ip;
+  tmp_4 = (unsigned int)0;
+  record->last_cmd_hit = tmp_4;
+  record->last_ntp_hit = tmp_4;
+  tmp_5 = (unsigned int)0;
+  record->cmd_hits = tmp_5;
+  record->ntp_hits = tmp_5;
+  tmp_6 = (unsigned short)0;
+  record->cmd_drops = tmp_6;
+  record->ntp_drops = tmp_6;
+  record->ntp_tokens = max_ntp_tokens;
+  record->cmd_tokens = max_cmd_tokens;
+  tmp_7 = (signed char)(-128);
+  record->cmd_rate = tmp_7;
+  record->ntp_rate = tmp_7;
+  record->ntp_timeout_rate = (signed char)(-128);
+  record->flags = (unsigned char)0;
+  UTI_ZeroNtp64(& record->ntp_rx_ts);
+  UTI_ZeroNtp64(& record->ntp_tx_ts);
+  __retres = record;
+  return_label: return __retres;
+}
+
+static int expand_hashtable(void)
+{
+  int __retres;
+  ARR_Instance old_records;
+  Record *old_record;
+  Record *new_record;
+  unsigned int i;
+  old_records = records;
+  if ((unsigned int)2 * slots > max_slots) {
+    __retres = 0;
+    goto return_label;
+  }
+  records = ARR_CreateInstance((unsigned int)sizeof(Record));
+  if ((unsigned int)1 > (unsigned int)2 * slots) slots = (unsigned int)1;
+  else slots = (unsigned int)2 * slots;
+  __FC_assert((slots <= max_slots) != 0,"clientlog.c",245,
+              "slots <= max_slots");
+  ARR_SetSize(records,slots * (1U << 4));
+  i = (unsigned int)0;
+  while (i < slots * (1U << 4)) {
+    new_record = (Record *)ARR_GetElement(records,i);
+    new_record->ip_addr.family = (unsigned short)0;
+    i ++;
+  }
+  if (! old_records) {
+    __retres = 1;
+    goto return_label;
+  }
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp;
+    tmp = ARR_GetSize(old_records);
+    ;
+    if (! (i < tmp)) break;
+    old_record = (Record *)ARR_GetElement(old_records,i);
+    if ((int)old_record->ip_addr.family == 0) goto __Cont;
+    new_record = get_record(& old_record->ip_addr);
+    __FC_assert(new_record != (Record *)0,"clientlog.c",266,"new_record");
+    *new_record = *old_record;
+    __Cont: i ++;
+  }
+  ARR_DestroyInstance(old_records);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static void set_bucket_params(int interval, int burst, uint16_t *max_tokens,
+                              uint16_t *tokens_per_packet, int *token_shift)
+{
+  int tmp;
+  int tmp_1;
+  if (interval < 12) tmp = interval; else tmp = 12;
+  if (-15 - 4 > tmp) interval = -15 - 4;
+  else {
+    int tmp_0;
+    if (interval < 12) tmp_0 = interval; else tmp_0 = 12;
+    interval = tmp_0;
+  }
+  if (burst < 255) tmp_1 = burst; else tmp_1 = 255;
+  if (1 > tmp_1) burst = 1;
+  else {
+    int tmp_2;
+    if (burst < 255) tmp_2 = burst; else tmp_2 = 255;
+    burst = tmp_2;
+  }
+  if (interval >= -4) {
+    *token_shift = 0;
+    while (*token_shift < interval + 4) {
+      if ((unsigned int)(burst << ((4 + interval) - *token_shift)) < 1U << 16) 
+        break;
+      (*token_shift) ++;
+    }
+  }
+  else {
+    *token_shift = interval + 4;
+    *tokens_per_packet = (unsigned short)1;
+    if (1U << - *token_shift > (unsigned int)burst) burst = (int)(1U << - *token_shift);
+    else burst = burst;
+  }
+  *tokens_per_packet = (unsigned short)(1U << ((4 + interval) - *token_shift));
+  *max_tokens = (unsigned short)((int)*tokens_per_packet * burst);
+  return;
+}
+
+void CLG_Initialise(void)
+{
+  int interval;
+  int burst;
+  int leak_rate;
+  int tmp_3;
+  int tmp_6;
+  int tmp_8;
+  int tmp_7;
+  unsigned long tmp_9;
+  unsigned int tmp_10;
+  max_cmd_tokens = (unsigned short)0;
+  max_ntp_tokens = max_cmd_tokens;
+  cmd_tokens_per_packet = (unsigned short)0;
+  ntp_tokens_per_packet = cmd_tokens_per_packet;
+  cmd_token_shift = 0;
+  ntp_token_shift = cmd_token_shift;
+  cmd_leak_rate = 0;
+  ntp_leak_rate = cmd_leak_rate;
+  ntp_limit_interval = -15 - 4;
+  tmp_3 = CNF_GetNTPRateLimit(& interval,& burst,& leak_rate);
+  if (tmp_3) {
+    int tmp;
+    int tmp_1;
+    set_bucket_params(interval,burst,& max_ntp_tokens,
+                      & ntp_tokens_per_packet,& ntp_token_shift);
+    if (leak_rate < 4) tmp = leak_rate; else tmp = 4;
+    if (1 > tmp) ntp_leak_rate = 1;
+    else {
+      int tmp_0;
+      if (leak_rate < 4) tmp_0 = leak_rate; else tmp_0 = 4;
+      ntp_leak_rate = tmp_0;
+    }
+    if (interval < 12) tmp_1 = interval; else tmp_1 = 12;
+    if (-15 - 4 > tmp_1) ntp_limit_interval = -15 - 4;
+    else {
+      int tmp_2;
+      if (interval < 12) tmp_2 = interval; else tmp_2 = 12;
+      ntp_limit_interval = tmp_2;
+    }
+  }
+  tmp_6 = CNF_GetCommandRateLimit(& interval,& burst,& leak_rate);
+  if (tmp_6) {
+    int tmp_4;
+    set_bucket_params(interval,burst,& max_cmd_tokens,
+                      & cmd_tokens_per_packet,& cmd_token_shift);
+    if (leak_rate < 4) tmp_4 = leak_rate; else tmp_4 = 4;
+    if (1 > tmp_4) cmd_leak_rate = 1;
+    else {
+      int tmp_5;
+      if (leak_rate < 4) tmp_5 = leak_rate; else tmp_5 = 4;
+      cmd_leak_rate = tmp_5;
+    }
+  }
+  tmp_7 = CNF_GetNoClientLog();
+  if (tmp_7) tmp_8 = 0; else tmp_8 = 1;
+  active = tmp_8;
+  if (! active) {
+    if (ntp_leak_rate) goto _LOR;
+    else 
+      if (cmd_leak_rate) {
+        _LOR:
+        {
+          {
+            void *__va_args[1] = {(void *)0};
+            LOG_Message(LOGS_FATAL,
+                        "ratelimit cannot be used with noclientlog",
+                        (void * const *)(__va_args));
+          }
+          exit(1);
+        }
+      }
+    goto return_label;
+  }
+  tmp_9 = CNF_GetClientLogLimit();
+  max_slots = (unsigned int)(tmp_9 / (((sizeof(Record) * (unsigned long)(
+                                        1U << 4)) * (unsigned long)3) / (unsigned long)2));
+  if (max_slots < 1U << (24 - 4)) tmp_10 = max_slots;
+  else tmp_10 = 1U << (24 - 4);
+  if ((unsigned int)1 > tmp_10) max_slots = (unsigned int)1;
+  else {
+    unsigned int tmp_11;
+    if (max_slots < 1U << (24 - 4)) tmp_11 = max_slots;
+    else tmp_11 = 1U << (24 - 4);
+    max_slots = tmp_11;
+  }
+  slots = (unsigned int)0;
+  records = (struct ARR_Instance_Record *)0;
+  expand_hashtable();
+  UTI_GetRandomBytes((void *)(& ts_offset),(unsigned int)sizeof(ts_offset));
+  ts_offset %= 1000000000U / (1U << 4);
+  return_label: return;
+}
+
+void CLG_Finalise(void)
+{
+  if (! active) goto return_label;
+  ARR_DestroyInstance(records);
+  return_label: return;
+}
+
+static uint32_t get_ts_from_timespec(struct timespec *ts)
+{
+  uint32_t __retres;
+  uint32_t sec = (unsigned int)ts->tv_sec;
+  uint32_t nsec = (unsigned int)ts->tv_nsec;
+  nsec += ts_offset;
+  if (nsec >= 1000000000U) {
+    nsec -= 1000000000U;
+    sec += (uint32_t)1;
+  }
+  __retres = (sec << 4) | (140740U * (nsec >> 15) >> (32 - 4));
+  return __retres;
+}
+
+static void update_record(struct timespec *now, uint32_t *last_hit,
+                          uint32_t *hits, uint16_t *tokens,
+                          uint32_t max_tokens, int token_shift, int8_t *rate)
+{
+  uint32_t interval;
+  uint32_t now_ts;
+  uint32_t prev_hit;
+  uint32_t new_tokens;
+  int interval2;
+  now_ts = get_ts_from_timespec(now);
+  prev_hit = *last_hit;
+  *last_hit = now_ts;
+  *hits += (uint32_t)1;
+  interval = now_ts - prev_hit;
+  if (prev_hit == (uint32_t)0) goto return_label;
+  else 
+    if ((int)interval < 0) goto return_label;
+  if (token_shift >= 0) new_tokens = (now_ts >> token_shift) - (prev_hit >> token_shift);
+  else 
+    if (now_ts - prev_hit > max_tokens) new_tokens = max_tokens;
+    else new_tokens = (now_ts - prev_hit) << - token_shift;
+  if ((uint32_t)*tokens + new_tokens < max_tokens) *tokens = (unsigned short)(
+                                                   (uint32_t)*tokens + new_tokens);
+  else *tokens = (unsigned short)max_tokens;
+  if (interval) {
+    interval += interval >> 1;
+    interval2 = -4 * 4;
+    while (interval2 < - (-14 * 4)) {
+      if (interval <= (uint32_t)1) break;
+      interval >>= 1;
+      interval2 += 4;
+    }
+  }
+  else interval2 = -4 * (4 + 1);
+  if ((int)*rate == -128) *rate = (signed char)(- interval2);
+  else 
+    if ((int)*rate < - interval2) *rate = (int8_t)((int)*rate + 1);
+    else 
+      if ((int)*rate > - interval2) 
+        if ((int)*rate > (4 * 5) / 2 - interval2) *rate = (signed char)(
+                                                  (4 * 5) / 2 - interval2);
+        else *rate = (signed char)((((int)*rate - interval2) - 1) / 2);
+  return_label: return;
+}
+
+static int get_index(Record *record)
+{
+  int __retres;
+  void *tmp;
+  tmp = ARR_GetElements(records);
+  ;
+  __retres = (int)(record - (Record *)tmp);
+  return __retres;
+}
+
+int CLG_GetClientIndex(IPAddr *client)
+{
+  int __retres;
+  Record *record;
+  int tmp;
+  record = get_record(client);
+  if (record == (Record *)0) {
+    __retres = -1;
+    goto return_label;
+  }
+  tmp = get_index(record);
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+int CLG_LogNTPAccess(IPAddr *client, struct timespec *now)
+{
+  int __retres;
+  Record *record;
+  int8_t *tmp;
+  int tmp_0;
+  total_ntp_hits += (uint32_t)1;
+  record = get_record(client);
+  if (record == (Record *)0) {
+    __retres = -1;
+    goto return_label;
+  }
+  if ((int)record->flags & 0x1) tmp = & record->ntp_timeout_rate;
+  else tmp = & record->ntp_rate;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  update_record(now,& record->last_ntp_hit,& record->ntp_hits,
+                & record->ntp_tokens,(unsigned int)max_ntp_tokens,
+                ntp_token_shift,tmp);
+  tmp_0 = get_index(record);
+  __retres = tmp_0;
+  return_label: return __retres;
+}
+
+int CLG_LogCommandAccess(IPAddr *client, struct timespec *now)
+{
+  int __retres;
+  Record *record;
+  int tmp;
+  total_cmd_hits += (uint32_t)1;
+  record = get_record(client);
+  if (record == (Record *)0) {
+    __retres = -1;
+    goto return_label;
+  }
+  update_record(now,& record->last_cmd_hit,& record->cmd_hits,
+                & record->cmd_tokens,(unsigned int)max_cmd_tokens,
+                cmd_token_shift,& record->cmd_rate);
+  tmp = get_index(record);
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+static uint32_t limit_response_random_rnd;
+static int limit_response_random(int leak_rate);
+
+static int limit_response_random_bits_left = 0;
+static int limit_response_random(int leak_rate)
+{
+  int r;
+  if (limit_response_random_bits_left < leak_rate) {
+    UTI_GetRandomBytes((void *)(& limit_response_random_rnd),
+                       (unsigned int)sizeof(limit_response_random_rnd));
+    limit_response_random_bits_left = (int)((unsigned long)8 * sizeof(limit_response_random_rnd));
+  }
+  if (limit_response_random_rnd % (1U << leak_rate)) r = 1; else r = 0;
+  limit_response_random_rnd >>= leak_rate;
+  limit_response_random_bits_left -= leak_rate;
+  return r;
+}
+
+int CLG_LimitNTPResponseRate(int index_0)
+{
+  int __retres;
+  Record *record;
+  int drop;
+  if (! ntp_tokens_per_packet) {
+    __retres = 0;
+    goto return_label;
+  }
+  record = (Record *)ARR_GetElement(records,(unsigned int)index_0);
+  record->flags = (unsigned char)((int)record->flags & ~ 0x1);
+  if ((int)record->ntp_tokens >= (int)ntp_tokens_per_packet) {
+    record->ntp_tokens = (unsigned short)((int)record->ntp_tokens - (int)ntp_tokens_per_packet);
+    __retres = 0;
+    goto return_label;
+  }
+  drop = limit_response_random(ntp_leak_rate);
+  if ((int)record->ntp_timeout_rate != -128) 
+    if ((int)record->ntp_timeout_rate > (int)record->ntp_rate + 4) drop = ! drop;
+  if (! drop) {
+    record->ntp_tokens = (unsigned short)0;
+    __retres = 0;
+    goto return_label;
+  }
+  record->flags = (unsigned char)((int)record->flags | 0x1);
+  record->ntp_drops = (uint16_t)((int)record->ntp_drops + 1);
+  total_ntp_drops += (uint32_t)1;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int CLG_LimitCommandResponseRate(int index_0)
+{
+  int __retres;
+  Record *record;
+  int tmp;
+  if (! cmd_tokens_per_packet) {
+    __retres = 0;
+    goto return_label;
+  }
+  record = (Record *)ARR_GetElement(records,(unsigned int)index_0);
+  if ((int)record->cmd_tokens >= (int)cmd_tokens_per_packet) {
+    record->cmd_tokens = (unsigned short)((int)record->cmd_tokens - (int)cmd_tokens_per_packet);
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = limit_response_random(cmd_leak_rate);
+  if (! tmp) {
+    record->cmd_tokens = (unsigned short)0;
+    __retres = 0;
+    goto return_label;
+  }
+  record->cmd_drops = (uint16_t)((int)record->cmd_drops + 1);
+  total_cmd_drops += (uint32_t)1;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void CLG_GetNtpTimestamps(int index_0, NTP_int64 **rx_ts, NTP_int64 **tx_ts)
+{
+  Record *record;
+  record = (Record *)ARR_GetElement(records,(unsigned int)index_0);
+  *rx_ts = & record->ntp_rx_ts;
+  *tx_ts = & record->ntp_tx_ts;
+  return;
+}
+
+int CLG_GetNtpMinPoll(void)
+{
+  return ntp_limit_interval;
+}
+
+int CLG_GetNumberOfIndices(void)
+{
+  int __retres;
+  unsigned int tmp;
+  if (! active) {
+    __retres = -1;
+    goto return_label;
+  }
+  tmp = ARR_GetSize(records);
+  __retres = (int)tmp;
+  return_label: return __retres;
+}
+
+static int get_interval(int rate)
+{
+  int __retres;
+  int tmp;
+  if (rate == -128) {
+    __retres = 127;
+    goto return_label;
+  }
+  if (rate > 0) tmp = 4 / 2; else tmp = -4 / 2;
+  rate += tmp;
+  __retres = rate / -4;
+  return_label: return __retres;
+}
+
+static uint32_t get_last_ago(uint32_t x, uint32_t y)
+{
+  uint32_t __retres;
+  if (y == (uint32_t)0) {
+    __retres = (unsigned int)(-1);
+    goto return_label;
+  }
+  else 
+    if ((int)(x - y) < 0) {
+      __retres = (unsigned int)(-1);
+      goto return_label;
+    }
+  __retres = (x - y) >> 4;
+  return_label: return __retres;
+}
+
+int CLG_GetClientAccessReportByIndex(int index_0,
+                                     RPT_ClientAccessByIndex_Report *report,
+                                     struct timespec *now)
+{
+  int __retres;
+  Record *record;
+  uint32_t now_ts;
+  int tmp_0;
+  int tmp_1;
+  int tmp_2;
+  if (! active) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (index_0 < 0) {
+      __retres = 0;
+      goto return_label;
+    }
+    else {
+      unsigned int tmp;
+      tmp = ARR_GetSize(records);
+      ;
+      if ((unsigned int)index_0 >= tmp) {
+        __retres = 0;
+        goto return_label;
+      }
+    }
+  record = (Record *)ARR_GetElement(records,(unsigned int)index_0);
+  if ((int)record->ip_addr.family == 0) {
+    __retres = 0;
+    goto return_label;
+  }
+  now_ts = get_ts_from_timespec(now);
+  report->ip_addr = record->ip_addr;
+  report->ntp_hits = record->ntp_hits;
+  report->cmd_hits = record->cmd_hits;
+  report->ntp_drops = record->ntp_drops;
+  report->cmd_drops = record->cmd_drops;
+  tmp_0 = get_interval((int)record->ntp_rate);
+  report->ntp_interval = (signed char)tmp_0;
+  tmp_1 = get_interval((int)record->cmd_rate);
+  report->cmd_interval = (signed char)tmp_1;
+  tmp_2 = get_interval((int)record->ntp_timeout_rate);
+  report->ntp_timeout_interval = (signed char)tmp_2;
+  report->last_ntp_hit_ago = get_last_ago(now_ts,record->last_ntp_hit);
+  report->last_cmd_hit_ago = get_last_ago(now_ts,record->last_cmd_hit);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void CLG_GetServerStatsReport(RPT_ServerStatsReport *report)
+{
+  report->ntp_hits = total_ntp_hits;
+  report->cmd_hits = total_cmd_hits;
+  report->ntp_drops = total_ntp_drops;
+  report->cmd_drops = total_cmd_drops;
+  report->log_drops = total_record_drops;
+  return;
+}
+
+void SST_Initialise(void);
+
+void SST_Finalise(void);
+
+SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr, int min_samples_0,
+                             int max_samples_0, double min_delay,
+                             double asymmetry);
+
+void SST_DeleteInstance(SST_Stats inst);
+
+void SST_ResetInstance(SST_Stats inst);
+
+void SST_SetRefid(SST_Stats inst, uint32_t refid, IPAddr *addr);
+
+void SST_AccumulateSample(SST_Stats inst, NTP_Sample *sample);
+
+void SST_DoNewRegression(SST_Stats inst);
+
+void SST_GetFrequencyRange(SST_Stats inst, double *lo, double *hi);
+
+void SST_GetSelectionData(SST_Stats inst, struct timespec *now, int *stratum,
+                          NTP_Leap *leap, double *offset_lo_limit,
+                          double *offset_hi_limit, double *root_distance,
+                          double *std_dev, double *first_sample_ago,
+                          double *last_sample_ago, int *select_ok);
+
+void SST_GetTrackingData(SST_Stats inst, struct timespec *ref_time,
+                         double *average_offset, double *offset_sd,
+                         double *frequency, double *frequency_sd,
+                         double *skew, double *root_delay,
+                         double *root_dispersion);
+
+void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq,
+                     double doffset);
+
+void SST_AddDispersion(SST_Stats inst, double dispersion);
+
+double SST_PredictOffset(SST_Stats inst, struct timespec *when);
+
+double SST_MinRoundTripDelay(SST_Stats inst);
+
+int SST_GetDelayTestData(SST_Stats inst, struct timespec *sample_time,
+                         double *last_sample_ago, double *predicted_offset,
+                         double *min_delay, double *skew, double *std_dev);
+
+void SST_SaveToFile(SST_Stats inst, FILE *out);
+
+int SST_LoadFromFile(SST_Stats inst, FILE *in);
+
+void SST_DoSourceReport(SST_Stats inst, RPT_SourceReport *report,
+                        struct timespec *now);
+
+void SST_DoSourcestatsReport(SST_Stats inst, RPT_SourcestatsReport *report,
+                             struct timespec *now);
+
+int SST_Samples(SST_Stats inst);
+
+double SST_GetJitterAsymmetry(SST_Stats inst);
+
+void SRC_Initialise(void);
+
+void SRC_Finalise(void);
+
+SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type,
+                                   int sel_options, IPAddr *addr,
+                                   int min_samples_0, int max_samples_0,
+                                   double min_delay, double asymmetry);
+
+void SRC_DestroyInstance(SRC_Instance instance);
+
+void SRC_ResetInstance(SRC_Instance instance);
+
+void SRC_SetRefid(SRC_Instance instance, uint32_t ref_id, IPAddr *addr);
+
+SST_Stats SRC_GetSourcestats(SRC_Instance instance);
+
+void SRC_AccumulateSample(SRC_Instance inst, NTP_Sample *sample);
+
+void SRC_SetActive(SRC_Instance inst);
+
+void SRC_UnsetActive(SRC_Instance inst);
+
+void SRC_UpdateReachability(SRC_Instance inst, int reachable);
+
+void SRC_ResetReachability(SRC_Instance inst);
+
+void SRC_SelectSource(SRC_Instance updated_inst);
+
+void SRC_ReselectSource(void);
+
+void SRC_SetReselectDistance(double distance);
+
+void SRC_DumpSources(void);
+
+void SRC_ReloadSources(void);
+
+void SRC_RemoveDumpFiles(void);
+
+int SRC_IsSyncPeer(SRC_Instance inst);
+
+int SRC_IsReachable(SRC_Instance inst);
+
+int SRC_ReadNumberOfSources(void);
+
+int SRC_ActiveSources(void);
+
+int SRC_ReportSource(int index_0, RPT_SourceReport *report,
+                     struct timespec *now);
+
+int SRC_ReportSourcestats(int index_0, RPT_SourcestatsReport *report,
+                          struct timespec *now);
+
+SRC_Type SRC_GetType(int index_0);
+
+int CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src);
+
+int CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance);
+
+void CPS_NormalizeLine(char *line);
+
+char *CPS_SplitWord(char *line);
+
+int CPS_ParseKey(char *line, uint32_t *id, char const **hash, char **key);
+
+void DNS_SetAddressFamily(int family);
+
+DNS_Status DNS_Name2IPAddress(char const *name, IPAddr *ip_addrs,
+                              int max_addrs);
+
+int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len);
+
+void DNS_Reload(void);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_1(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_2(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_3(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_4(char const * __restrict s, char const * __restrict format,
+                unsigned short *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_5(char const * __restrict s, char const * __restrict format,
+                double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_6(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_7(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_8(char const * __restrict s, char const * __restrict format,
+                int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_9(char const * __restrict s, char const * __restrict format,
+                double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_10(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_11(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_12(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_13(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_14(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_15(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_16(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_17(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_18(char const * __restrict s, char const * __restrict format,
+                 unsigned int *param0, int *param1);
+
+int CPS_ParseNTPSourceAdd(char *line, CPS_NTP_Source *src)
+{
+  int __retres;
+  char *hostname;
+  char *cmd;
+  int n;
+  src->port = (unsigned short)123;
+  src->params.minpoll = 6;
+  src->params.maxpoll = 10;
+  src->params.connectivity = SRC_ONLINE;
+  src->params.auto_offline = 0;
+  src->params.presend_minpoll = 100;
+  src->params.burst = 0;
+  src->params.iburst = 0;
+  src->params.min_stratum = 0;
+  src->params.poll_target = 8;
+  src->params.version = 0;
+  src->params.max_sources = 4;
+  src->params.min_samples = -1;
+  src->params.max_samples = -1;
+  src->params.filter_length = 0;
+  src->params.interleaved = 0;
+  src->params.sel_options = 0;
+  src->params.authkey = (unsigned int)0;
+  src->params.max_delay = 3.0;
+  src->params.max_delay_ratio = 0.0;
+  src->params.max_delay_dev_ratio = 10.0;
+  src->params.min_delay = 0.0;
+  src->params.asymmetry = 1.0;
+  src->params.offset = 0.0;
+  hostname = line;
+  line = CPS_SplitWord(line);
+  if (! *hostname) {
+    __retres = 0;
+    goto return_label;
+  }
+  src->name = hostname;
+  while (*line) {
+    {
+      int tmp_43;
+      cmd = line;
+      line = CPS_SplitWord(line);
+      n = 0;
+      tmp_43 = strcasecmp((char const *)cmd,"auto_offline");
+      if (tmp_43) {
+        int tmp_42;
+        tmp_42 = strcasecmp((char const *)cmd,"burst");
+        if (tmp_42) {
+          int tmp_41;
+          tmp_41 = strcasecmp((char const *)cmd,"iburst");
+          if (tmp_41) {
+            int tmp_40;
+            tmp_40 = strcasecmp((char const *)cmd,"offline");
+            if (tmp_40) {
+              int tmp_39;
+              tmp_39 = strcasecmp((char const *)cmd,"noselect");
+              if (tmp_39) {
+                int tmp_38;
+                tmp_38 = strcasecmp((char const *)cmd,"prefer");
+                if (tmp_38) {
+                  int tmp_37;
+                  tmp_37 = strcasecmp((char const *)cmd,"require");
+                  if (tmp_37) {
+                    int tmp_36;
+                    tmp_36 = strcasecmp((char const *)cmd,"trust");
+                    if (tmp_36) {
+                      int tmp_35;
+                      tmp_35 = strcasecmp((char const *)cmd,"key");
+                      if (tmp_35) {
+                        int tmp_34;
+                        tmp_34 = strcasecmp((char const *)cmd,"asymmetry");
+                        if (tmp_34) {
+                          int tmp_33;
+                          tmp_33 = strcasecmp((char const *)cmd,"filter");
+                          if (tmp_33) {
+                            int tmp_32;
+                            tmp_32 = strcasecmp((char const *)cmd,"maxdelay");
+                            if (tmp_32) {
+                              int tmp_31;
+                              tmp_31 = strcasecmp((char const *)cmd,
+                                                  "maxdelayratio");
+                              if (tmp_31) {
+                                int tmp_30;
+                                tmp_30 = strcasecmp((char const *)cmd,
+                                                    "maxdelaydevratio");
+                                if (tmp_30) {
+                                  int tmp_29;
+                                  tmp_29 = strcasecmp((char const *)cmd,
+                                                      "maxpoll");
+                                  if (tmp_29) {
+                                    int tmp_28;
+                                    tmp_28 = strcasecmp((char const *)cmd,
+                                                        "maxsamples");
+                                    if (tmp_28) {
+                                      int tmp_27;
+                                      tmp_27 = strcasecmp((char const *)cmd,
+                                                          "maxsources");
+                                      if (tmp_27) {
+                                        int tmp_26;
+                                        tmp_26 = strcasecmp((char const *)cmd,
+                                                            "mindelay");
+                                        if (tmp_26) {
+                                          int tmp_25;
+                                          tmp_25 = strcasecmp((char const *)cmd,
+                                                              "minpoll");
+                                          if (tmp_25) {
+                                            int tmp_24;
+                                            tmp_24 = strcasecmp((char const *)cmd,
+                                                                "minsamples");
+                                            if (tmp_24) {
+                                              int tmp_23;
+                                              tmp_23 = strcasecmp((char const *)cmd,
+                                                                  "minstratum");
+                                              if (tmp_23) {
+                                                int tmp_22;
+                                                tmp_22 = strcasecmp((char const *)cmd,
+                                                                    "offset");
+                                                if (tmp_22) {
+                                                  int tmp_21;
+                                                  tmp_21 = strcasecmp
+                                                  ((char const *)cmd,"port");
+                                                  if (tmp_21) {
+                                                    int tmp_20;
+                                                    tmp_20 = strcasecmp
+                                                    ((char const *)cmd,
+                                                     "polltarget");
+                                                    if (tmp_20) {
+                                                      int tmp_19;
+                                                      tmp_19 = strcasecmp
+                                                      ((char const *)cmd,
+                                                       "presend");
+                                                      if (tmp_19) {
+                                                        int tmp_18;
+                                                        tmp_18 = strcasecmp
+                                                        ((char const *)cmd,
+                                                         "version");
+                                                        if (tmp_18) {
+                                                          int tmp_17;
+                                                          tmp_17 = strcasecmp
+                                                          ((char const *)cmd,
+                                                           "xleave");
+                                                          if (tmp_17) {
+                                                            __retres = 0;
+                                                            goto return_label;
+                                                          }
+                                                          else src->params.interleaved = 1;
+                                                        }
+                                                        else {
+                                                          int tmp_16;
+                                                          tmp_16 = sscanf_va_1
+                                                          ((char const *)line,
+                                                           "%d%n",
+                                                           & src->params.version,
+                                                           & n);
+                                                          if (tmp_16 != 1) {
+                                                            __retres = 0;
+                                                            goto return_label;
+                                                          }
+                                                        }
+                                                      }
+                                                      else {
+                                                        int tmp_15;
+                                                        tmp_15 = sscanf_va_2
+                                                        ((char const *)line,
+                                                         "%d%n",
+                                                         & src->params.presend_minpoll,
+                                                         & n);
+                                                        if (tmp_15 != 1) {
+                                                          __retres = 0;
+                                                          goto return_label;
+                                                        }
+                                                      }
+                                                    }
+                                                    else {
+                                                      int tmp_14;
+                                                      tmp_14 = sscanf_va_3
+                                                      ((char const *)line,
+                                                       "%d%n",
+                                                       & src->params.poll_target,
+                                                       & n);
+                                                      if (tmp_14 != 1) {
+                                                        __retres = 0;
+                                                        goto return_label;
+                                                      }
+                                                    }
+                                                  }
+                                                  else {
+                                                    int tmp_13;
+                                                    tmp_13 = sscanf_va_4
+                                                    ((char const *)line,
+                                                     "%hu%n",& src->port,& n);
+                                                    if (tmp_13 != 1) {
+                                                      __retres = 0;
+                                                      goto return_label;
+                                                    }
+                                                  }
+                                                }
+                                                else {
+                                                  int tmp_12;
+                                                  tmp_12 = sscanf_va_5
+                                                  ((char const *)line,
+                                                   "%lf%n",
+                                                   & src->params.offset,& n);
+                                                  if (tmp_12 != 1) {
+                                                    __retres = 0;
+                                                    goto return_label;
+                                                  }
+                                                }
+                                              }
+                                              else {
+                                                int tmp_11;
+                                                tmp_11 = sscanf_va_6((char const *)line,
+                                                                    "%d%n",
+                                                                    & src->params.min_stratum,
+                                                                    & n);
+                                                if (tmp_11 != 1) {
+                                                  __retres = 0;
+                                                  goto return_label;
+                                                }
+                                              }
+                                            }
+                                            else {
+                                              int tmp_10;
+                                              tmp_10 = sscanf_va_7((char const *)line,
+                                                                   "%d%n",
+                                                                   & src->params.min_samples,
+                                                                   & n);
+                                              if (tmp_10 != 1) {
+                                                __retres = 0;
+                                                goto return_label;
+                                              }
+                                            }
+                                          }
+                                          else {
+                                            int tmp_9;
+                                            tmp_9 = sscanf_va_8((char const *)line,
+                                                                "%d%n",
+                                                                & src->params.minpoll,
+                                                                & n);
+                                            if (tmp_9 != 1) {
+                                              __retres = 0;
+                                              goto return_label;
+                                            }
+                                          }
+                                        }
+                                        else {
+                                          int tmp_8;
+                                          tmp_8 = sscanf_va_9((char const *)line,
+                                                              "%lf%n",
+                                                              & src->params.min_delay,
+                                                              & n);
+                                          if (tmp_8 != 1) {
+                                            __retres = 0;
+                                            goto return_label;
+                                          }
+                                        }
+                                      }
+                                      else {
+                                        int tmp_7;
+                                        tmp_7 = sscanf_va_10((char const *)line,
+                                                             "%d%n",
+                                                             & src->params.max_sources,
+                                                             & n);
+                                        if (tmp_7 != 1) {
+                                          __retres = 0;
+                                          goto return_label;
+                                        }
+                                      }
+                                    }
+                                    else {
+                                      int tmp_6;
+                                      tmp_6 = sscanf_va_11((char const *)line,
+                                                           "%d%n",
+                                                           & src->params.max_samples,
+                                                           & n);
+                                      if (tmp_6 != 1) {
+                                        __retres = 0;
+                                        goto return_label;
+                                      }
+                                    }
+                                  }
+                                  else {
+                                    int tmp_5;
+                                    tmp_5 = sscanf_va_12((char const *)line,
+                                                         "%d%n",
+                                                         & src->params.maxpoll,
+                                                         & n);
+                                    if (tmp_5 != 1) {
+                                      __retres = 0;
+                                      goto return_label;
+                                    }
+                                  }
+                                }
+                                else {
+                                  int tmp_4;
+                                  tmp_4 = sscanf_va_13((char const *)line,
+                                                       "%lf%n",
+                                                       & src->params.max_delay_dev_ratio,
+                                                       & n);
+                                  if (tmp_4 != 1) {
+                                    __retres = 0;
+                                    goto return_label;
+                                  }
+                                }
+                              }
+                              else {
+                                int tmp_3;
+                                tmp_3 = sscanf_va_14((char const *)line,
+                                                     "%lf%n",
+                                                     & src->params.max_delay_ratio,
+                                                     & n);
+                                if (tmp_3 != 1) {
+                                  __retres = 0;
+                                  goto return_label;
+                                }
+                              }
+                            }
+                            else {
+                              int tmp_2;
+                              tmp_2 = sscanf_va_15((char const *)line,
+                                                   "%lf%n",
+                                                   & src->params.max_delay,
+                                                   & n);
+                              if (tmp_2 != 1) {
+                                __retres = 0;
+                                goto return_label;
+                              }
+                            }
+                          }
+                          else {
+                            int tmp_1;
+                            tmp_1 = sscanf_va_16((char const *)line,"%d%n",
+                                                 & src->params.filter_length,
+                                                 & n);
+                            if (tmp_1 != 1) {
+                              __retres = 0;
+                              goto return_label;
+                            }
+                          }
+                        }
+                        else {
+                          int tmp_0;
+                          tmp_0 = sscanf_va_17((char const *)line,"%lf%n",
+                                               & src->params.asymmetry,& n);
+                          if (tmp_0 != 1) {
+                            __retres = 0;
+                            goto return_label;
+                          }
+                        }
+                      }
+                      else {
+                        int tmp;
+                        tmp = sscanf_va_18((char const *)line,"%u%n",
+                                           (unsigned int *)(& src->params.authkey),
+                                           & n);
+                        if (tmp != 1) {
+                          __retres = 0;
+                          goto return_label;
+                        }
+                        else 
+                          if (src->params.authkey == (uint32_t)0) {
+                            __retres = 0;
+                            goto return_label;
+                          }
+                      }
+                    }
+                    else src->params.sel_options |= 0x4;
+                  }
+                  else src->params.sel_options |= 0x8;
+                }
+                else src->params.sel_options |= 0x2;
+              }
+              else src->params.sel_options |= 0x1;
+            }
+            else src->params.connectivity = SRC_OFFLINE;
+          }
+          else src->params.iburst = 1;
+        }
+        else src->params.burst = 1;
+      }
+      else src->params.auto_offline = 1;
+    }
+    line += n;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_19(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_20(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+int CPS_ParseLocal(char *line, int *stratum, int *orphan, double *distance)
+{
+  int __retres;
+  int n;
+  char *cmd;
+  *stratum = 10;
+  *distance = 1.0;
+  *orphan = 0;
+  while (*line) {
+    int tmp_3;
+    cmd = line;
+    line = CPS_SplitWord(line);
+    tmp_3 = strcasecmp((char const *)cmd,"stratum");
+    if (tmp_3) {
+      int tmp_2;
+      tmp_2 = strcasecmp((char const *)cmd,"orphan");
+      if (tmp_2) {
+        int tmp_1;
+        tmp_1 = strcasecmp((char const *)cmd,"distance");
+        if (tmp_1) {
+          __retres = 0;
+          goto return_label;
+        }
+        else {
+          int tmp_0;
+          tmp_0 = sscanf_va_19((char const *)line,"%lf%n",distance,& n);
+          if (tmp_0 != 1) {
+            __retres = 0;
+            goto return_label;
+          }
+        }
+      }
+      else {
+        *orphan = 1;
+        n = 0;
+      }
+    }
+    else {
+      int tmp;
+      tmp = sscanf_va_20((char const *)line,"%d%n",stratum,& n);
+      if (tmp != 1) {
+        __retres = 0;
+        goto return_label;
+      }
+      else 
+        if (*stratum >= 16) {
+          __retres = 0;
+          goto return_label;
+        }
+        else 
+          if (*stratum <= 0) {
+            __retres = 0;
+            goto return_label;
+          }
+    }
+    line += n;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void CPS_NormalizeLine(char *line)
+{
+  char *p;
+  char *q;
+  int space = 1;
+  int first = 1;
+  q = line;
+  p = q;
+  while (*p) {
+    {
+      int tmp_0;
+      char *tmp_2;
+      tmp_0 = isspace((int)((unsigned char)*p));
+      if (tmp_0) {
+        if (! space) {
+          char *tmp;
+          tmp = q;
+          q ++;
+          *tmp = (char)' ';
+        }
+        space = 1;
+        goto __Cont;
+      }
+      if (first) {
+        char *tmp_1;
+        tmp_1 = strchr("!;#%",(int)*p);
+        if (tmp_1) break;
+      }
+      tmp_2 = q;
+      q ++;
+      *tmp_2 = *p;
+      first = 0;
+      space = first;
+    }
+    __Cont: p ++;
+  }
+  if (q > line) 
+    if ((int)*(q + -1) == ' ') q --;
+  *q = (char)'\000';
+  return;
+}
+
+char *CPS_SplitWord(char *line)
+{
+  char *p = line;
+  char *q = line;
+  while (1) {
+    if (*q) {
+      int tmp;
+      tmp = isspace((int)((unsigned char)*q));
+      if (! tmp) break;
+    }
+    else break;
+    q ++;
+  }
+  while (1) {
+    char *tmp_0;
+    char *tmp_1;
+    if (*q) {
+      int tmp_2;
+      tmp_2 = isspace((int)((unsigned char)*q));
+      if (tmp_2) break;
+    }
+    else break;
+    tmp_0 = p;
+    p ++;
+    tmp_1 = q;
+    q ++;
+    *tmp_0 = *tmp_1;
+  }
+  while (1) {
+    if (*q) {
+      int tmp_3;
+      tmp_3 = isspace((int)((unsigned char)*q));
+      if (! tmp_3) break;
+    }
+    else break;
+    q ++;
+  }
+  *p = (char)'\000';
+  return q;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_21(char const * __restrict s, char const * __restrict format,
+                 unsigned int *param0);
+
+int CPS_ParseKey(char *line, uint32_t *id, char const **hash, char **key)
+{
+  int __retres;
+  char *s1;
+  char *s2;
+  char *s3;
+  char *s4;
+  int tmp;
+  s1 = line;
+  s2 = CPS_SplitWord(s1);
+  s3 = CPS_SplitWord(s2);
+  s4 = CPS_SplitWord(s3);
+  if (! *s2) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (*s4) {
+      __retres = 0;
+      goto return_label;
+    }
+  tmp = sscanf_va_21((char const *)s1,"%u",(unsigned int *)id);
+  if (tmp != 1) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (*s3) {
+    *hash = (char const *)s2;
+    *key = s3;
+  }
+  else {
+    *hash = "MD5";
+    *key = s2;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+extern int NCR_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits,
+                                    int allow, int all);
+
+extern void NCR_AddBroadcastDestination(IPAddr *addr, unsigned short port,
+                                        int interval);
+
+extern NSR_Status NSR_AddSource(NTP_Remote_Address *remote_addr,
+                                NTP_Source_Type type,
+                                SourceParameters *params);
+
+extern void NSR_AddSourceByName(char *name, int port, int pool,
+                                NTP_Source_Type type,
+                                SourceParameters *params);
+
+extern void NSR_HandleBadSource(IPAddr *address);
+
+extern uint32_t NSR_GetLocalRefid(IPAddr *address);
+
+extern void NSR_ProcessRx(NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr,
+                          NTP_Local_Timestamp *rx_ts, NTP_Packet *message,
+                          int length);
+
+extern int RCL_AddRefclock(RefclockParameters *params);
+
+extern int CAM_AddAccessRestriction(IPAddr *ip_addr, int subnet_bits,
+                                    int allow, int all);
+
+static int parse_string(char *line, char **result);
+
+static int parse_int(char *line, int *result);
+
+static int parse_double(char *line, double *result);
+
+static int parse_null(char *line);
+
+static void parse_allow_deny(char *line, ARR_Instance restrictions, int allow);
+
+static void parse_bindacqaddress(char *line);
+
+static void parse_bindaddress(char *line);
+
+static void parse_bindcmdaddress(char *line);
+
+static void parse_broadcast(char *line);
+
+static void parse_clientloglimit(char *line);
+
+static void parse_fallbackdrift(char *line);
+
+static void parse_hwtimestamp(char *line);
+
+static void parse_include(char *line);
+
+static void parse_initstepslew(char *line);
+
+static void parse_leapsecmode(char *line);
+
+static void parse_local(char *line);
+
+static void parse_log(char *line);
+
+static void parse_mailonchange(char *line);
+
+static void parse_makestep(char *line);
+
+static void parse_maxchange(char *line);
+
+static void parse_ratelimit(char *line, int *enabled_0, int *interval,
+                            int *burst, int *leak);
+
+static void parse_refclock(char *line);
+
+static void parse_smoothtime(char *line);
+
+static void parse_source(char *line, NTP_Source_Type type, int pool);
+
+static void parse_tempcomp(char *line);
+
+static int restarted = 0;
+static char *rtc_device;
+static int acquisition_port = -1;
+static int ntp_port = 123;
+static char *keys_file = (char *)0;
+static char *drift_file = (char *)0;
+static char *rtc_file = (char *)0;
+static double max_update_skew = 1000.0;
+static double correction_time_ratio = 3.0;
+static double max_clock_error = 1.0;
+static double max_drift = 500000.0;
+static double max_slew_rate = 1e6 / 12.0;
+static double max_distance = 3.0;
+static double max_jitter = 1.0;
+static double reselect_distance = 1e-4;
+static double stratum_weight = 1e-3;
+static double combine_limit = 3.0;
+static int cmd_port = 323;
+static int raw_measurements = 0;
+static int do_log_measurements = 0;
+static int do_log_statistics = 0;
+static int do_log_tracking = 0;
+static int do_log_rtc = 0;
+static int do_log_refclocks = 0;
+static int do_log_tempcomp = 0;
+static int log_banner = 32;
+static char *logdir;
+static char *dumpdir;
+static int enable_local = 0;
+static int local_stratum;
+static int local_orphan;
+static double local_distance;
+static double init_slew_threshold;
+static ARR_Instance init_sources;
+static int enable_manual = 0;
+static int rtc_on_utc = 0;
+static char *hwclock_file;
+static int rtc_sync = 0;
+static int make_step_limit = 0;
+static double make_step_threshold = 0.0;
+static double rtc_autotrim_threshold = 0.0;
+static int min_sources = 1;
+static int max_offset_delay = -1;
+static int max_offset_ignore;
+static double max_offset;
+static int max_samples = 0;
+static int min_samples = 6;
+static double log_change_threshold = 1.0;
+static char *mail_user_on_change = (char *)0;
+static double mail_change_threshold = 0.0;
+static int no_client_log = 0;
+static unsigned long client_log_limit = (unsigned long)524288;
+static int fb_drift_min = 0;
+static int fb_drift_max = 0;
+static IPAddr bind_address4;
+static IPAddr bind_address6;
+static IPAddr bind_acq_address4;
+static IPAddr bind_acq_address6;
+static IPAddr bind_cmd_address4;
+static IPAddr bind_cmd_address6;
+static char *bind_cmd_path;
+static char *ntp_signd_socket = (char *)0;
+static char *pidfile;
+static int ntp_ratelimit_enabled = 0;
+static int ntp_ratelimit_interval = 3;
+static int ntp_ratelimit_burst = 8;
+static int ntp_ratelimit_leak = 2;
+static int cmd_ratelimit_enabled = 0;
+static int cmd_ratelimit_interval = -4;
+static int cmd_ratelimit_burst = 8;
+static int cmd_ratelimit_leak = 2;
+static double smooth_max_freq = 0.0;
+static double smooth_max_wander = 0.0;
+static int smooth_leap_only = 0;
+static char *tempcomp_sensor_file = (char *)0;
+static char *tempcomp_point_file = (char *)0;
+static double tempcomp_interval;
+static double tempcomp_T0;
+static double tempcomp_k0;
+static double tempcomp_k1;
+static double tempcomp_k2;
+static int sched_priority = 0;
+static int lock_memory = 0;
+static REF_LeapMode leapsec_mode = REF_LeapModeSystem;
+static char *leapsec_tz = (char *)0;
+static char *user;
+static ARR_Instance hwts_interfaces;
+static ARR_Instance ntp_sources;
+static ARR_Instance refclock_sources;
+static ARR_Instance ntp_restrictions;
+static ARR_Instance cmd_restrictions;
+static ARR_Instance broadcasts;
+static int line_number;
+static char const *processed_file;
+static char const *processed_command;
+static void command_parse_error(void)
+{
+  char const *tmp;
+  char const *tmp_0;
+  if (processed_file) tmp = processed_file; else tmp = "";
+  if (processed_file) tmp_0 = " in file "; else tmp_0 = "";
+  ;
+  ;
+  {
+    char const *__va_arg0 = processed_command;
+    int __va_arg1 = line_number;
+    char const *__va_arg2 = tmp_0;
+    char const *__va_arg3 = tmp;
+    void *__va_args[4] =
+      {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3};
+    LOG_Message(LOGS_FATAL,"Could not parse %s directive at line %d%s%s",
+                (void * const *)(__va_args));
+  }
+  exit(1);
+  return;
+}
+
+static void other_parse_error(char const *message)
+{
+  char const *tmp;
+  char const *tmp_0;
+  if (processed_file) tmp = processed_file; else tmp = "";
+  if (processed_file) tmp_0 = " in file "; else tmp_0 = "";
+  ;
+  ;
+  {
+    char const *__va_arg0 = message;
+    int __va_arg1 = line_number;
+    char const *__va_arg2 = tmp_0;
+    char const *__va_arg3 = tmp;
+    void *__va_args[4] =
+      {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3};
+    LOG_Message(LOGS_FATAL,"%s at line %d%s%s",(void * const *)(__va_args));
+  }
+  exit(1);
+  return;
+}
+
+static int get_number_of_args(char *line)
+{
+  int num = 0;
+  if ((int)*line == ' ') line ++;
+  if (*line) num ++;
+  while (*line) {
+    if ((int)*line == ' ') num ++;
+    line ++;
+  }
+  return num;
+}
+
+static void check_number_of_args(char *line, int num)
+{
+  int tmp;
+  tmp = get_number_of_args(line);
+  num -= tmp;
+  if (num) {
+    char const *tmp_0;
+    char const *tmp_1;
+    char const *tmp_2;
+    if (processed_file) tmp_0 = processed_file; else tmp_0 = "";
+    if (processed_file) tmp_1 = " in file "; else tmp_1 = "";
+    ;
+    ;
+    if (num > 0) tmp_2 = "Missing"; else tmp_2 = "Too many";
+    {
+      char const *__va_arg0 = tmp_2;
+      char const *__va_arg1 = processed_command;
+      int __va_arg2 = line_number;
+      char const *__va_arg3 = tmp_1;
+      char const *__va_arg4 = tmp_0;
+      void *__va_args[5] =
+        {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3, & __va_arg4};
+      LOG_Message(LOGS_FATAL,"%s arguments for %s directive at line %d%s%s",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  return;
+}
+
+void CNF_Initialise(int r, int client_only)
+{
+  restarted = r;
+  hwts_interfaces = ARR_CreateInstance((unsigned int)sizeof(CNF_HwTsInterface));
+  init_sources = ARR_CreateInstance((unsigned int)sizeof(IPAddr));
+  ntp_sources = ARR_CreateInstance((unsigned int)sizeof(NTP_Source));
+  refclock_sources = ARR_CreateInstance((unsigned int)sizeof(RefclockParameters));
+  broadcasts = ARR_CreateInstance((unsigned int)sizeof(NTP_Broadcast_Destination));
+  ntp_restrictions = ARR_CreateInstance((unsigned int)sizeof(AllowDeny));
+  cmd_restrictions = ARR_CreateInstance((unsigned int)sizeof(AllowDeny));
+  dumpdir = Strdup("");
+  logdir = Strdup("");
+  rtc_device = Strdup("/dev/rtc");
+  hwclock_file = Strdup("");
+  user = Strdup("root");
+  if (client_only) {
+    ntp_port = 0;
+    cmd_port = ntp_port;
+    bind_cmd_path = Strdup("");
+    pidfile = Strdup("");
+  }
+  else {
+    bind_cmd_path = Strdup("/var/run/chrony/chronyd.sock");
+    pidfile = Strdup("/var/run/chronyd.pid");
+  }
+  return;
+}
+
+void CNF_Finalise(void)
+{
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    void *tmp;
+    tmp_0 = ARR_GetSize(hwts_interfaces);
+    ;
+    if (! (i < tmp_0)) break;
+    tmp = ARR_GetElement(hwts_interfaces,i);
+    free((void *)((CNF_HwTsInterface *)tmp)->name);
+    i ++;
+  }
+  ARR_DestroyInstance(hwts_interfaces);
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_2;
+    void *tmp_1;
+    tmp_2 = ARR_GetSize(ntp_sources);
+    ;
+    if (! (i < tmp_2)) break;
+    tmp_1 = ARR_GetElement(ntp_sources,i);
+    free((void *)((NTP_Source *)tmp_1)->params.name);
+    i ++;
+  }
+  ARR_DestroyInstance(init_sources);
+  ARR_DestroyInstance(ntp_sources);
+  ARR_DestroyInstance(refclock_sources);
+  ARR_DestroyInstance(broadcasts);
+  ARR_DestroyInstance(ntp_restrictions);
+  ARR_DestroyInstance(cmd_restrictions);
+  free((void *)drift_file);
+  free((void *)dumpdir);
+  free((void *)hwclock_file);
+  free((void *)keys_file);
+  free((void *)leapsec_tz);
+  free((void *)logdir);
+  free((void *)bind_cmd_path);
+  free((void *)ntp_signd_socket);
+  free((void *)pidfile);
+  free((void *)rtc_device);
+  free((void *)rtc_file);
+  free((void *)user);
+  free((void *)mail_user_on_change);
+  free((void *)tempcomp_sensor_file);
+  free((void *)tempcomp_point_file);
+  return;
+}
+
+void CNF_ReadFile(char const *filename)
+{
+  FILE *in;
+  char line[2048];
+  int i;
+  in = fopen(filename,"r");
+  if (! in) {
+    {
+      char *tmp;
+      tmp = strerror(__fc_errno);
+      ;
+      {
+        char const *__va_arg0 = filename;
+        char *__va_arg1 = tmp;
+        void *__va_args[2] = {& __va_arg0, & __va_arg1};
+        LOG_Message(LOGS_FATAL,"Could not open configuration file %s : %s",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+    goto return_label;
+  }
+  i = 1;
+  while (1) {
+    char *tmp_0;
+    tmp_0 = fgets(line,(int)sizeof(line),in);
+    if (! tmp_0) break;
+    CNF_ParseLine(filename,i,line);
+    i ++;
+  }
+  fclose(in);
+  return_label: return;
+}
+
+void CNF_ParseLine(char const *filename, int number, char *line)
+{
+  char *p;
+  char *command;
+  int tmp_66;
+  processed_file = filename;
+  line_number = number;
+  CPS_NormalizeLine(line);
+  if (! *line) goto return_label;
+  command = line;
+  processed_command = (char const *)command;
+  p = CPS_SplitWord(line);
+  tmp_66 = strcasecmp((char const *)command,"acquisitionport");
+  if (tmp_66) {
+    int tmp_65;
+    tmp_65 = strcasecmp((char const *)command,"allow");
+    if (tmp_65) {
+      int tmp_64;
+      tmp_64 = strcasecmp((char const *)command,"bindacqaddress");
+      if (tmp_64) {
+        int tmp_63;
+        tmp_63 = strcasecmp((char const *)command,"bindaddress");
+        if (tmp_63) {
+          int tmp_62;
+          tmp_62 = strcasecmp((char const *)command,"bindcmdaddress");
+          if (tmp_62) {
+            int tmp_61;
+            tmp_61 = strcasecmp((char const *)command,"broadcast");
+            if (tmp_61) {
+              int tmp_60;
+              tmp_60 = strcasecmp((char const *)command,"clientloglimit");
+              if (tmp_60) {
+                int tmp_59;
+                tmp_59 = strcasecmp((char const *)command,"cmdallow");
+                if (tmp_59) {
+                  int tmp_58;
+                  tmp_58 = strcasecmp((char const *)command,"cmddeny");
+                  if (tmp_58) {
+                    int tmp_57;
+                    tmp_57 = strcasecmp((char const *)command,"cmdport");
+                    if (tmp_57) {
+                      int tmp_56;
+                      tmp_56 = strcasecmp((char const *)command,
+                                          "cmdratelimit");
+                      if (tmp_56) {
+                        int tmp_55;
+                        tmp_55 = strcasecmp((char const *)command,
+                                            "combinelimit");
+                        if (tmp_55) {
+                          int tmp_54;
+                          tmp_54 = strcasecmp((char const *)command,
+                                              "corrtimeratio");
+                          if (tmp_54) {
+                            int tmp_53;
+                            tmp_53 = strcasecmp((char const *)command,"deny");
+                            if (tmp_53) {
+                              int tmp_52;
+                              tmp_52 = strcasecmp((char const *)command,
+                                                  "driftfile");
+                              if (tmp_52) {
+                                int tmp_51;
+                                tmp_51 = strcasecmp((char const *)command,
+                                                    "dumpdir");
+                                if (tmp_51) {
+                                  int tmp_50;
+                                  tmp_50 = strcasecmp((char const *)command,
+                                                      "dumponexit");
+                                  if (tmp_50) {
+                                    int tmp_49;
+                                    tmp_49 = strcasecmp((char const *)command,
+                                                        "fallbackdrift");
+                                    if (tmp_49) {
+                                      int tmp_48;
+                                      tmp_48 = strcasecmp((char const *)command,
+                                                          "hwclockfile");
+                                      if (tmp_48) {
+                                        int tmp_47;
+                                        tmp_47 = strcasecmp((char const *)command,
+                                                            "hwtimestamp");
+                                        if (tmp_47) {
+                                          int tmp_46;
+                                          tmp_46 = strcasecmp((char const *)command,
+                                                              "include");
+                                          if (tmp_46) {
+                                            int tmp_45;
+                                            tmp_45 = strcasecmp((char const *)command,
+                                                                "initstepslew");
+                                            if (tmp_45) {
+                                              int tmp_44;
+                                              tmp_44 = strcasecmp((char const *)command,
+                                                                  "keyfile");
+                                              if (tmp_44) {
+                                                int tmp_43;
+                                                tmp_43 = strcasecmp((char const *)command,
+                                                                    "leapsecmode");
+                                                if (tmp_43) {
+                                                  int tmp_42;
+                                                  tmp_42 = strcasecmp
+                                                  ((char const *)command,
+                                                   "leapsectz");
+                                                  if (tmp_42) {
+                                                    int tmp_41;
+                                                    tmp_41 = strcasecmp
+                                                    ((char const *)command,
+                                                     "local");
+                                                    if (tmp_41) {
+                                                      int tmp_40;
+                                                      tmp_40 = strcasecmp
+                                                      ((char const *)command,
+                                                       "lock_all");
+                                                      if (tmp_40) {
+                                                        int tmp_39;
+                                                        tmp_39 = strcasecmp
+                                                        ((char const *)command,
+                                                         "log");
+                                                        if (tmp_39) {
+                                                          int tmp_38;
+                                                          tmp_38 = strcasecmp
+                                                          ((char const *)command,
+                                                           "logbanner");
+                                                          if (tmp_38) {
+                                                            int tmp_37;
+                                                            tmp_37 = strcasecmp
+                                                            ((char const *)command,
+                                                             "logchange");
+                                                            if (tmp_37) {
+                                                              int tmp_36;
+                                                              tmp_36 = strcasecmp
+                                                              ((char const *)command,
+                                                               "logdir");
+                                                              if (tmp_36) {
+                                                                int tmp_35;
+                                                                tmp_35 = strcasecmp
+                                                                ((char const *)command,
+                                                                 "mailonchange");
+                                                                if (tmp_35) {
+                                                                  int tmp_34;
+                                                                  tmp_34 = strcasecmp
+                                                                  ((char const *)command,
+                                                                   "makestep");
+                                                                  if (tmp_34) {
+                                                                    int tmp_33;
+                                                                    tmp_33 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "manual");
+                                                                    if (tmp_33) {
+                                                                    int tmp_32;
+                                                                    tmp_32 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxchange");
+                                                                    if (tmp_32) {
+                                                                    int tmp_31;
+                                                                    tmp_31 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxclockerror");
+                                                                    if (tmp_31) {
+                                                                    int tmp_30;
+                                                                    tmp_30 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxdistance");
+                                                                    if (tmp_30) {
+                                                                    int tmp_29;
+                                                                    tmp_29 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxdrift");
+                                                                    if (tmp_29) {
+                                                                    int tmp_28;
+                                                                    tmp_28 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxjitter");
+                                                                    if (tmp_28) {
+                                                                    int tmp_27;
+                                                                    tmp_27 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxsamples");
+                                                                    if (tmp_27) {
+                                                                    int tmp_26;
+                                                                    tmp_26 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxslewrate");
+                                                                    if (tmp_26) {
+                                                                    int tmp_25;
+                                                                    tmp_25 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "maxupdateskew");
+                                                                    if (tmp_25) {
+                                                                    int tmp_24;
+                                                                    tmp_24 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "minsamples");
+                                                                    if (tmp_24) {
+                                                                    int tmp_23;
+                                                                    tmp_23 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "minsources");
+                                                                    if (tmp_23) {
+                                                                    int tmp_22;
+                                                                    tmp_22 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "noclientlog");
+                                                                    if (tmp_22) {
+                                                                    int tmp_21;
+                                                                    tmp_21 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "ntpsigndsocket");
+                                                                    if (tmp_21) {
+                                                                    int tmp_20;
+                                                                    tmp_20 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "peer");
+                                                                    if (tmp_20) {
+                                                                    int tmp_19;
+                                                                    tmp_19 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "pidfile");
+                                                                    if (tmp_19) {
+                                                                    int tmp_18;
+                                                                    tmp_18 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "pool");
+                                                                    if (tmp_18) {
+                                                                    int tmp_17;
+                                                                    tmp_17 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "port");
+                                                                    if (tmp_17) {
+                                                                    int tmp_16;
+                                                                    tmp_16 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "ratelimit");
+                                                                    if (tmp_16) {
+                                                                    int tmp_15;
+                                                                    tmp_15 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "refclock");
+                                                                    if (tmp_15) {
+                                                                    int tmp_14;
+                                                                    tmp_14 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "reselectdist");
+                                                                    if (tmp_14) {
+                                                                    int tmp_13;
+                                                                    tmp_13 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtcautotrim");
+                                                                    if (tmp_13) {
+                                                                    int tmp_12;
+                                                                    tmp_12 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtcdevice");
+                                                                    if (tmp_12) {
+                                                                    int tmp_11;
+                                                                    tmp_11 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtcfile");
+                                                                    if (tmp_11) {
+                                                                    int tmp_10;
+                                                                    tmp_10 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtconutc");
+                                                                    if (tmp_10) {
+                                                                    int tmp_9;
+                                                                    tmp_9 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "rtcsync");
+                                                                    if (tmp_9) {
+                                                                    int tmp_8;
+                                                                    tmp_8 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "sched_priority");
+                                                                    if (tmp_8) {
+                                                                    int tmp_7;
+                                                                    tmp_7 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "server");
+                                                                    if (tmp_7) {
+                                                                    int tmp_6;
+                                                                    tmp_6 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "smoothtime");
+                                                                    if (tmp_6) {
+                                                                    int tmp_5;
+                                                                    tmp_5 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "stratumweight");
+                                                                    if (tmp_5) {
+                                                                    int tmp_4;
+                                                                    tmp_4 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "tempcomp");
+                                                                    if (tmp_4) {
+                                                                    int tmp_3;
+                                                                    tmp_3 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "user");
+                                                                    if (tmp_3) {
+                                                                    int tmp;
+                                                                    tmp = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "commandkey");
+                                                                    if (tmp) {
+                                                                    int tmp_0;
+                                                                    tmp_0 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "generatecommandkey");
+                                                                    if (tmp_0) {
+                                                                    int tmp_1;
+                                                                    tmp_1 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "linux_freq_scale");
+                                                                    if (tmp_1) {
+                                                                    int tmp_2;
+                                                                    tmp_2 = strcasecmp
+                                                                    ((char const *)command,
+                                                                    "linux_hz");
+                                                                    if (tmp_2) 
+                                                                    other_parse_error
+                                                                    ("Invalid command");
+                                                                    else {
+                                                                    _LOR:
+                                                                    {
+                                                                    char *__va_arg0 =
+                                                                    command;
+                                                                    void *__va_args[1] =
+                                                                    {& __va_arg0};
+                                                                    LOG_Message
+                                                                    (LOGS_WARN,
+                                                                    "%s directive is no longer supported",
+                                                                    (void * const *)(__va_args));
+                                                                    }
+                                                                    }
+                                                                    }
+                                                                    else 
+                                                                    goto _LOR;
+                                                                    }
+                                                                    else 
+                                                                    goto _LOR;
+                                                                    }
+                                                                    else 
+                                                                    goto _LOR;
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & user);
+                                                                    }
+                                                                    else 
+                                                                    parse_tempcomp
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & stratum_weight);
+                                                                    }
+                                                                    else 
+                                                                    parse_smoothtime
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_source
+                                                                    (p,
+                                                                    NTP_SERVER,
+                                                                    0);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & sched_priority);
+                                                                    }
+                                                                    else 
+                                                                    rtc_sync = parse_null
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    rtc_on_utc = parse_null
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & rtc_file);
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & rtc_device);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & rtc_autotrim_threshold);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & reselect_distance);
+                                                                    }
+                                                                    else 
+                                                                    parse_refclock
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_ratelimit
+                                                                    (p,
+                                                                    & ntp_ratelimit_enabled,
+                                                                    & ntp_ratelimit_interval,
+                                                                    & ntp_ratelimit_burst,
+                                                                    & ntp_ratelimit_leak);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & ntp_port);
+                                                                    }
+                                                                    else 
+                                                                    parse_source
+                                                                    (p,
+                                                                    NTP_SERVER,
+                                                                    1);
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & pidfile);
+                                                                    }
+                                                                    else 
+                                                                    parse_source
+                                                                    (p,
+                                                                    NTP_PEER,
+                                                                    0);
+                                                                    }
+                                                                    else 
+                                                                    parse_string
+                                                                    (p,
+                                                                    & ntp_signd_socket);
+                                                                    }
+                                                                    else 
+                                                                    no_client_log = parse_null
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & min_sources);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & min_samples);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_update_skew);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_slew_rate);
+                                                                    }
+                                                                    else 
+                                                                    parse_int
+                                                                    (p,
+                                                                    & max_samples);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_jitter);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_drift);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_distance);
+                                                                    }
+                                                                    else 
+                                                                    parse_double
+                                                                    (p,
+                                                                    & max_clock_error);
+                                                                    }
+                                                                    else 
+                                                                    parse_maxchange
+                                                                    (p);
+                                                                    }
+                                                                    else 
+                                                                    enable_manual = parse_null
+                                                                    (p);
+                                                                  }
+                                                                  else 
+                                                                    parse_makestep
+                                                                    (p);
+                                                                }
+                                                                else 
+                                                                  parse_mailonchange
+                                                                  (p);
+                                                              }
+                                                              else parse_string
+                                                                   (p,
+                                                                    & logdir);
+                                                            }
+                                                            else parse_double
+                                                                 (p,
+                                                                  & log_change_threshold);
+                                                          }
+                                                          else parse_int
+                                                               (p,
+                                                                & log_banner);
+                                                        }
+                                                        else parse_log(p);
+                                                      }
+                                                      else lock_memory = parse_null
+                                                           (p);
+                                                    }
+                                                    else parse_local(p);
+                                                  }
+                                                  else parse_string(p,
+                                                                    & leapsec_tz);
+                                                }
+                                                else parse_leapsecmode(p);
+                                              }
+                                              else parse_string(p,
+                                                                & keys_file);
+                                            }
+                                            else parse_initstepslew(p);
+                                          }
+                                          else parse_include(p);
+                                        }
+                                        else parse_hwtimestamp(p);
+                                      }
+                                      else parse_string(p,& hwclock_file);
+                                    }
+                                    else parse_fallbackdrift(p);
+                                  }
+                                }
+                                else parse_string(p,& dumpdir);
+                              }
+                              else parse_string(p,& drift_file);
+                            }
+                            else parse_allow_deny(p,ntp_restrictions,0);
+                          }
+                          else parse_double(p,& correction_time_ratio);
+                        }
+                        else parse_double(p,& combine_limit);
+                      }
+                      else parse_ratelimit(p,& cmd_ratelimit_enabled,
+                                           & cmd_ratelimit_interval,
+                                           & cmd_ratelimit_burst,
+                                           & cmd_ratelimit_leak);
+                    }
+                    else parse_int(p,& cmd_port);
+                  }
+                  else parse_allow_deny(p,cmd_restrictions,0);
+                }
+                else parse_allow_deny(p,cmd_restrictions,1);
+              }
+              else parse_clientloglimit(p);
+            }
+            else parse_broadcast(p);
+          }
+          else parse_bindcmdaddress(p);
+        }
+        else parse_bindaddress(p);
+      }
+      else parse_bindacqaddress(p);
+    }
+    else parse_allow_deny(p,ntp_restrictions,1);
+  }
+  else parse_int(p,& acquisition_port);
+  return_label: return;
+}
+
+static int parse_string(char *line, char **result)
+{
+  int __retres;
+  check_number_of_args(line,1);
+  free((void *)*result);
+  *result = Strdup((char const *)line);
+  __retres = 1;
+  return __retres;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_22(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+static int parse_int(char *line, int *result)
+{
+  int __retres;
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = sscanf_va_22((char const *)line,"%d",result);
+  if (tmp != 1) {
+    command_parse_error();
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_23(char const * __restrict s, char const * __restrict format,
+                 double *param0);
+
+static int parse_double(char *line, double *result)
+{
+  int __retres;
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = sscanf_va_23((char const *)line,"%lf",result);
+  if (tmp != 1) {
+    command_parse_error();
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int parse_null(char *line)
+{
+  int __retres;
+  check_number_of_args(line,0);
+  __retres = 1;
+  return __retres;
+}
+
+static void parse_source(char *line, NTP_Source_Type type, int pool)
+{
+  NTP_Source source;
+  int tmp;
+  source.type = type;
+  source.pool = pool;
+  tmp = CPS_ParseNTPSourceAdd(line,& source.params);
+  if (! tmp) {
+    command_parse_error();
+    goto return_label;
+  }
+  source.params.name = Strdup((char const *)source.params.name);
+  ARR_AppendElement(ntp_sources,(void *)(& source));
+  return_label: return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_24(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+static void parse_ratelimit(char *line, int *enabled_0, int *interval,
+                            int *burst, int *leak)
+{
+  int n;
+  int val;
+  char *opt;
+  *enabled_0 = 1;
+  while (*line) {
+    int tmp;
+    int tmp_2;
+    opt = line;
+    line = CPS_SplitWord(line);
+    tmp = sscanf_va_24((char const *)line,"%d%n",& val,& n);
+    if (tmp != 1) {
+      command_parse_error();
+      goto return_label;
+    }
+    line += n;
+    tmp_2 = strcasecmp((char const *)opt,"interval");
+    if (tmp_2) {
+      int tmp_1;
+      tmp_1 = strcasecmp((char const *)opt,"burst");
+      if (tmp_1) {
+        int tmp_0;
+        tmp_0 = strcasecmp((char const *)opt,"leak");
+        if (tmp_0) command_parse_error(); else *leak = val;
+      }
+      else *burst = val;
+    }
+    else *interval = val;
+  }
+  return_label: return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_25(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_26(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_27(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_28(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_29(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_30(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_31(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_32(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_33(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_34(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_35(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_36(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_37(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    ensures \initialized(param1);
+    assigns \result, *param1, *(param0 + (0 ..));
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *(param0 + (0 ..))
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_38(char const * __restrict s, char const * __restrict format,
+                 char *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    ensures \initialized(param1);
+    assigns \result, *param1, *(param0 + (0 ..));
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *(param0 + (0 ..))
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_39(char const * __restrict s, char const * __restrict format,
+                 char *param0, int *param1);
+
+static void parse_refclock(char *line)
+{
+  int n;
+  int poll;
+  int dpoll;
+  int filter_length;
+  int pps_rate;
+  int min_samples_0;
+  int max_samples_0;
+  int sel_options;
+  int max_lock_age;
+  int pps_forced;
+  int stratum;
+  int tai;
+  uint32_t ref_id;
+  uint32_t lock_ref_id;
+  double offset;
+  double delay;
+  double precision;
+  double max_dispersion;
+  double pulse_width;
+  char *p;
+  char *cmd;
+  char *name;
+  char *param;
+  unsigned char ref[5];
+  RefclockParameters *refclock;
+  poll = 4;
+  dpoll = 0;
+  filter_length = 64;
+  pps_forced = 0;
+  pps_rate = 0;
+  min_samples_0 = -1;
+  max_samples_0 = -1;
+  sel_options = 0;
+  offset = 0.0;
+  delay = 1e-9;
+  precision = 0.0;
+  max_dispersion = 0.0;
+  pulse_width = 0.0;
+  ref_id = (unsigned int)0;
+  max_lock_age = 2;
+  lock_ref_id = (unsigned int)0;
+  stratum = 0;
+  tai = 0;
+  if (! *line) {
+    command_parse_error();
+    goto return_label;
+  }
+  p = line;
+  line = CPS_SplitWord(line);
+  if (! *line) {
+    command_parse_error();
+    goto return_label;
+  }
+  name = Strdup((char const *)p);
+  p = line;
+  line = CPS_SplitWord(line);
+  param = Strdup((char const *)p);
+  cmd = line;
+  while (*cmd) {
+    {
+      int tmp_34;
+      line = CPS_SplitWord(line);
+      tmp_34 = strcasecmp((char const *)cmd,"refid");
+      if (tmp_34) {
+        int tmp_33;
+        tmp_33 = strcasecmp((char const *)cmd,"lock");
+        if (tmp_33) {
+          int tmp_32;
+          tmp_32 = strcasecmp((char const *)cmd,"poll");
+          if (tmp_32) {
+            int tmp_31;
+            tmp_31 = strcasecmp((char const *)cmd,"dpoll");
+            if (tmp_31) {
+              int tmp_30;
+              tmp_30 = strcasecmp((char const *)cmd,"filter");
+              if (tmp_30) {
+                int tmp_29;
+                tmp_29 = strcasecmp((char const *)cmd,"rate");
+                if (tmp_29) {
+                  int tmp_28;
+                  tmp_28 = strcasecmp((char const *)cmd,"minsamples");
+                  if (tmp_28) {
+                    int tmp_27;
+                    tmp_27 = strcasecmp((char const *)cmd,"maxlockage");
+                    if (tmp_27) {
+                      int tmp_26;
+                      tmp_26 = strcasecmp((char const *)cmd,"maxsamples");
+                      if (tmp_26) {
+                        int tmp_25;
+                        tmp_25 = strcasecmp((char const *)cmd,"offset");
+                        if (tmp_25) {
+                          int tmp_24;
+                          tmp_24 = strcasecmp((char const *)cmd,"delay");
+                          if (tmp_24) {
+                            int tmp_23;
+                            tmp_23 = strcasecmp((char const *)cmd,"pps");
+                            if (tmp_23) {
+                              int tmp_22;
+                              tmp_22 = strcasecmp((char const *)cmd,
+                                                  "precision");
+                              if (tmp_22) {
+                                int tmp_21;
+                                tmp_21 = strcasecmp((char const *)cmd,
+                                                    "maxdispersion");
+                                if (tmp_21) {
+                                  int tmp_20;
+                                  tmp_20 = strcasecmp((char const *)cmd,
+                                                      "stratum");
+                                  if (tmp_20) {
+                                    int tmp_19;
+                                    tmp_19 = strcasecmp((char const *)cmd,
+                                                        "tai");
+                                    if (tmp_19) {
+                                      int tmp_18;
+                                      tmp_18 = strcasecmp((char const *)cmd,
+                                                          "width");
+                                      if (tmp_18) {
+                                        int tmp_17;
+                                        tmp_17 = strcasecmp((char const *)cmd,
+                                                            "noselect");
+                                        if (tmp_17) {
+                                          int tmp_16;
+                                          tmp_16 = strcasecmp((char const *)cmd,
+                                                              "prefer");
+                                          if (tmp_16) {
+                                            int tmp_15;
+                                            tmp_15 = strcasecmp((char const *)cmd,
+                                                                "trust");
+                                            if (tmp_15) {
+                                              int tmp_14;
+                                              tmp_14 = strcasecmp((char const *)cmd,
+                                                                  "require");
+                                              if (tmp_14) {
+                                                other_parse_error("Invalid refclock option");
+                                                goto return_label;
+                                              }
+                                              else {
+                                                n = 0;
+                                                sel_options |= 0x8;
+                                              }
+                                            }
+                                            else {
+                                              n = 0;
+                                              sel_options |= 0x4;
+                                            }
+                                          }
+                                          else {
+                                            n = 0;
+                                            sel_options |= 0x2;
+                                          }
+                                        }
+                                        else {
+                                          n = 0;
+                                          sel_options |= 0x1;
+                                        }
+                                      }
+                                      else {
+                                        int tmp_13;
+                                        tmp_13 = sscanf_va_25((char const *)line,
+                                                              "%lf%n",
+                                                              & pulse_width,
+                                                              & n);
+                                        if (tmp_13 != 1) break;
+                                      }
+                                    }
+                                    else {
+                                      n = 0;
+                                      tai = 1;
+                                    }
+                                  }
+                                  else {
+                                    int tmp_12;
+                                    tmp_12 = sscanf_va_26((char const *)line,
+                                                          "%d%n",& stratum,
+                                                          & n);
+                                    if (tmp_12 != 1) break;
+                                    else 
+                                      if (stratum >= 16) break;
+                                      else 
+                                        if (stratum < 0) break;
+                                  }
+                                }
+                                else {
+                                  int tmp_11;
+                                  tmp_11 = sscanf_va_27((char const *)line,
+                                                        "%lf%n",
+                                                        & max_dispersion,& n);
+                                  if (tmp_11 != 1) break;
+                                }
+                              }
+                              else {
+                                int tmp_10;
+                                tmp_10 = sscanf_va_28((char const *)line,
+                                                      "%lf%n",& precision,
+                                                      & n);
+                                if (tmp_10 != 1) break;
+                              }
+                            }
+                            else {
+                              n = 0;
+                              pps_forced = 1;
+                            }
+                          }
+                          else {
+                            int tmp_9;
+                            tmp_9 = sscanf_va_29((char const *)line,"%lf%n",
+                                                 & delay,& n);
+                            if (tmp_9 != 1) break;
+                          }
+                        }
+                        else {
+                          int tmp_8;
+                          tmp_8 = sscanf_va_30((char const *)line,"%lf%n",
+                                               & offset,& n);
+                          if (tmp_8 != 1) break;
+                        }
+                      }
+                      else {
+                        int tmp_7;
+                        tmp_7 = sscanf_va_31((char const *)line,"%d%n",
+                                             & max_samples_0,& n);
+                        if (tmp_7 != 1) break;
+                      }
+                    }
+                    else {
+                      int tmp_6;
+                      tmp_6 = sscanf_va_32((char const *)line,"%d%n",
+                                           & max_lock_age,& n);
+                      if (tmp_6 != 1) break;
+                    }
+                  }
+                  else {
+                    int tmp_5;
+                    tmp_5 = sscanf_va_33((char const *)line,"%d%n",
+                                         & min_samples_0,& n);
+                    if (tmp_5 != 1) break;
+                  }
+                }
+                else {
+                  int tmp_4;
+                  tmp_4 = sscanf_va_34((char const *)line,"%d%n",& pps_rate,
+                                       & n);
+                  if (tmp_4 != 1) break;
+                }
+              }
+              else {
+                int tmp_3;
+                tmp_3 = sscanf_va_35((char const *)line,"%d%n",
+                                     & filter_length,& n);
+                if (tmp_3 != 1) break;
+              }
+            }
+            else {
+              int tmp_2;
+              tmp_2 = sscanf_va_36((char const *)line,"%d%n",& dpoll,& n);
+              if (tmp_2 != 1) break;
+            }
+          }
+          else {
+            int tmp_1;
+            tmp_1 = sscanf_va_37((char const *)line,"%d%n",& poll,& n);
+            if (tmp_1 != 1) break;
+          }
+        }
+        else {
+          int tmp_0;
+          tmp_0 = sscanf_va_38((char const *)line,"%4s%n",(char *)(ref),& n);
+          if (tmp_0 != 1) break;
+          lock_ref_id = ((((unsigned int)ref[0] << 24) | (unsigned int)(
+                          (int)ref[1] << 16)) | (unsigned int)((int)ref[2] << 8)) | (unsigned int)ref[3];
+        }
+      }
+      else {
+        int tmp;
+        tmp = sscanf_va_39((char const *)line,"%4s%n",(char *)(ref),& n);
+        if (tmp != 1) break;
+        ref_id = ((((unsigned int)ref[0] << 24) | (unsigned int)((int)ref[1] << 16)) | (unsigned int)(
+                  (int)ref[2] << 8)) | (unsigned int)ref[3];
+      }
+    }
+    line += n;
+    cmd = line;
+  }
+  if (*cmd) {
+    command_parse_error();
+    goto return_label;
+  }
+  refclock = (RefclockParameters *)ARR_GetNewElement(refclock_sources);
+  refclock->driver_name = name;
+  refclock->driver_parameter = param;
+  refclock->driver_poll = dpoll;
+  refclock->poll = poll;
+  refclock->filter_length = filter_length;
+  refclock->pps_forced = pps_forced;
+  refclock->pps_rate = pps_rate;
+  refclock->min_samples = min_samples_0;
+  refclock->max_samples = max_samples_0;
+  refclock->sel_options = sel_options;
+  refclock->stratum = stratum;
+  refclock->tai = tai;
+  refclock->offset = offset;
+  refclock->delay = delay;
+  refclock->precision = precision;
+  refclock->max_dispersion = max_dispersion;
+  refclock->pulse_width = pulse_width;
+  refclock->ref_id = ref_id;
+  refclock->max_lock_age = max_lock_age;
+  refclock->lock_ref_id = lock_ref_id;
+  return_label: return;
+}
+
+static void parse_log(char *line)
+{
+  char *log_name;
+  while (1) {
+    log_name = line;
+    line = CPS_SplitWord(line);
+    if (*log_name) {
+      int tmp_5;
+      tmp_5 = strcmp((char const *)log_name,"rawmeasurements");
+      if (tmp_5) {
+        int tmp_4;
+        tmp_4 = strcmp((char const *)log_name,"measurements");
+        if (tmp_4) {
+          int tmp_3;
+          tmp_3 = strcmp((char const *)log_name,"statistics");
+          if (tmp_3) {
+            int tmp_2;
+            tmp_2 = strcmp((char const *)log_name,"tracking");
+            if (tmp_2) {
+              int tmp_1;
+              tmp_1 = strcmp((char const *)log_name,"rtc");
+              if (tmp_1) {
+                int tmp_0;
+                tmp_0 = strcmp((char const *)log_name,"refclocks");
+                if (tmp_0) {
+                  int tmp;
+                  tmp = strcmp((char const *)log_name,"tempcomp");
+                  if (tmp) {
+                    other_parse_error("Invalid log parameter");
+                    break;
+                  }
+                  else do_log_tempcomp = 1;
+                }
+                else do_log_refclocks = 1;
+              }
+              else do_log_rtc = 1;
+            }
+            else do_log_tracking = 1;
+          }
+          else do_log_statistics = 1;
+        }
+        else do_log_measurements = 1;
+      }
+      else {
+        do_log_measurements = 1;
+        raw_measurements = 1;
+      }
+    }
+    else break;
+  }
+  return;
+}
+
+static void parse_local(char *line)
+{
+  int tmp;
+  tmp = CPS_ParseLocal(line,& local_stratum,& local_orphan,& local_distance);
+  if (! tmp) command_parse_error();
+  enable_local = 1;
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_40(char const * __restrict s, char const * __restrict format,
+                 double *param0);
+
+static void parse_initstepslew(char *line)
+{
+  char *p;
+  char *hostname;
+  IPAddr ip_addr;
+  int tmp;
+  if (restarted) goto return_label;
+  ARR_SetSize(init_sources,(unsigned int)0);
+  p = CPS_SplitWord(line);
+  tmp = sscanf_va_40((char const *)line,"%lf",& init_slew_threshold);
+  if (tmp != 1) {
+    command_parse_error();
+    goto return_label;
+  }
+  while (*p) {
+    hostname = p;
+    p = CPS_SplitWord(p);
+    if (*hostname) {
+      DNS_Status tmp_0;
+      tmp_0 = DNS_Name2IPAddress((char const *)hostname,& ip_addr,1);
+      if (tmp_0 == (unsigned int)DNS_Success) ARR_AppendElement(init_sources,
+                                                                (void *)(& ip_addr));
+      else {
+        {
+          char *__va_arg0 = hostname;
+          void *__va_args[1] = {& __va_arg0};
+          LOG_Message(LOGS_WARN,
+                      "Could not resolve address of initstepslew server %s",
+                      (void * const *)(__va_args));
+        }
+      }
+    }
+  }
+  return_label: return;
+}
+
+static void parse_leapsecmode(char *line)
+{
+  int tmp_2;
+  tmp_2 = strcasecmp((char const *)line,"system");
+  if (tmp_2) {
+    int tmp_1;
+    tmp_1 = strcasecmp((char const *)line,"slew");
+    if (tmp_1) {
+      int tmp_0;
+      tmp_0 = strcasecmp((char const *)line,"step");
+      if (tmp_0) {
+        int tmp;
+        tmp = strcasecmp((char const *)line,"ignore");
+        if (tmp) command_parse_error();
+        else leapsec_mode = REF_LeapModeIgnore;
+      }
+      else leapsec_mode = REF_LeapModeStep;
+    }
+    else leapsec_mode = REF_LeapModeSlew;
+  }
+  else leapsec_mode = REF_LeapModeSystem;
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_41(char const * __restrict s, char const * __restrict format,
+                 unsigned long *param0);
+
+static void parse_clientloglimit(char *line)
+{
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = sscanf_va_41((char const *)line,"%lu",& client_log_limit);
+  if (tmp != 1) command_parse_error();
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_42(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+static void parse_fallbackdrift(char *line)
+{
+  int tmp;
+  check_number_of_args(line,2);
+  tmp = sscanf_va_42((char const *)line,"%d %d",& fb_drift_min,
+                     & fb_drift_max);
+  if (tmp != 2) command_parse_error();
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_43(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+static void parse_makestep(char *line)
+{
+  int tmp;
+  check_number_of_args(line,2);
+  tmp = sscanf_va_43((char const *)line,"%lf %d",& make_step_threshold,
+                     & make_step_limit);
+  if (tmp != 2) {
+    make_step_limit = 0;
+    command_parse_error();
+  }
+  if (restarted) 
+    if (make_step_limit > 0) make_step_limit = 0;
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_44(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1, int *param2);
+
+static void parse_maxchange(char *line)
+{
+  int tmp;
+  check_number_of_args(line,3);
+  tmp = sscanf_va_44((char const *)line,"%lf %d %d",& max_offset,
+                     & max_offset_delay,& max_offset_ignore);
+  if (tmp != 3) {
+    max_offset_delay = -1;
+    command_parse_error();
+  }
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_45(char const * __restrict s, char const * __restrict format,
+                 double *param0);
+
+static void parse_mailonchange(char *line)
+{
+  char *address;
+  int tmp;
+  check_number_of_args(line,2);
+  address = line;
+  line = CPS_SplitWord(line);
+  free((void *)mail_user_on_change);
+  tmp = sscanf_va_45((char const *)line,"%lf",& mail_change_threshold);
+  if (tmp == 1) mail_user_on_change = Strdup((char const *)address);
+  else {
+    mail_user_on_change = (char *)0;
+    command_parse_error();
+  }
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param3);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param3);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param3, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param3
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_46(char const * __restrict s, char const * __restrict format,
+                 unsigned long *param0, unsigned long *param1,
+                 unsigned long *param2, unsigned long *param3);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_47(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+static void parse_allow_deny(char *line, ARR_Instance restrictions, int allow)
+{
+  char *p;
+  unsigned long a;
+  unsigned long b;
+  unsigned long c;
+  unsigned long d;
+  unsigned long n;
+  IPAddr ip_addr;
+  int tmp;
+  int all = 0;
+  AllowDeny *new_node = (AllowDeny *)0;
+  p = line;
+  tmp = strncmp((char const *)p,"all",(unsigned long)3);
+  if (! tmp) {
+    all = 1;
+    p = CPS_SplitWord(line);
+  }
+  if (! *p) {
+    new_node = (AllowDeny *)ARR_GetNewElement(restrictions);
+    new_node->allow = allow;
+    new_node->all = all;
+    new_node->ip.family = (unsigned short)0;
+    new_node->subnet_bits = 0;
+  }
+  else {
+    char *slashpos;
+    int tmp_4;
+    slashpos = strchr((char const *)p,'/');
+    if (slashpos) *slashpos = (char)0;
+    check_number_of_args(p,1);
+    n = (unsigned long)0;
+    tmp_4 = UTI_StringToIP((char const *)p,& ip_addr);
+    if (tmp_4) goto _LOR;
+    else {
+      int tmp_5;
+      tmp_5 = sscanf_va_46((char const *)p,"%lu.%lu.%lu.%lu",& a,& b,& c,& d);
+      n = (unsigned long)tmp_5;
+      if (n >= (unsigned long)1) {
+        _LOR:
+        {
+          /*@ assert n ≤ 4; */ ;
+          new_node = (AllowDeny *)ARR_GetNewElement(restrictions);
+          new_node->allow = allow;
+          new_node->all = all;
+          if (n == (unsigned long)0) {
+            new_node->ip = ip_addr;
+            if ((int)ip_addr.family == 2) new_node->subnet_bits = 128;
+            else new_node->subnet_bits = 32;
+          }
+          else {
+            new_node->ip.family = (unsigned short)1;
+            a &= (unsigned long)0xff;
+            b &= (unsigned long)0xff;
+            c &= (unsigned long)0xff;
+            d &= (unsigned long)0xff;
+            switch (n) {
+              case (unsigned long)1:
+              new_node->ip.addr.in4 = (unsigned int)(a << 24);
+              new_node->subnet_bits = 8;
+              break;
+              case (unsigned long)2:
+              new_node->ip.addr.in4 = (unsigned int)((a << 24) | (b << 16));
+              new_node->subnet_bits = 16;
+              break;
+              case (unsigned long)3:
+              new_node->ip.addr.in4 = (unsigned int)(((a << 24) | (b << 16)) | (
+                                                     c << 8));
+              new_node->subnet_bits = 24;
+              break;
+              case (unsigned long)4:
+              new_node->ip.addr.in4 = (unsigned int)((((a << 24) | (b << 16)) | (
+                                                      c << 8)) | d);
+              new_node->subnet_bits = 32;
+              break;
+              default: __FC_assert(0 != 0,"conf.c",1073,"0");
+            }
+          }
+          if (slashpos) {
+            int specified_subnet_bits;
+            int n_0;
+            n_0 = sscanf_va_47((char const *)(slashpos + 1),"%d",
+                               & specified_subnet_bits);
+            if (n_0 == 1) new_node->subnet_bits = specified_subnet_bits;
+            else command_parse_error();
+          }
+        }
+      }
+      else 
+        if (! slashpos) {
+          DNS_Status tmp_3;
+          tmp_3 = DNS_Name2IPAddress((char const *)p,& ip_addr,1);
+          if (tmp_3 == (unsigned int)DNS_Success) {
+            new_node = (AllowDeny *)ARR_GetNewElement(restrictions);
+            new_node->allow = allow;
+            new_node->all = all;
+            new_node->ip = ip_addr;
+            if ((int)ip_addr.family == 2) new_node->subnet_bits = 128;
+            else new_node->subnet_bits = 32;
+          }
+          else goto _LAND;
+        }
+        else _LAND: command_parse_error();
+    }
+  }
+  return;
+}
+
+static void parse_bindacqaddress(char *line)
+{
+  IPAddr ip;
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = UTI_StringToIP((char const *)line,& ip);
+  if (tmp) {
+    if ((int)ip.family == 1) bind_acq_address4 = ip;
+    else 
+      if ((int)ip.family == 2) bind_acq_address6 = ip;
+  }
+  else command_parse_error();
+  return;
+}
+
+static void parse_bindaddress(char *line)
+{
+  IPAddr ip;
+  int tmp;
+  check_number_of_args(line,1);
+  tmp = UTI_StringToIP((char const *)line,& ip);
+  if (tmp) {
+    if ((int)ip.family == 1) bind_address4 = ip;
+    else 
+      if ((int)ip.family == 2) bind_address6 = ip;
+  }
+  else command_parse_error();
+  return;
+}
+
+static void parse_bindcmdaddress(char *line)
+{
+  IPAddr ip;
+  check_number_of_args(line,1);
+  if ((int)*(line + 0) == '/') {
+    int tmp;
+    parse_string(line,& bind_cmd_path);
+    tmp = strcmp((char const *)bind_cmd_path,"/");
+    if (! tmp) *(bind_cmd_path + 0) = (char)'\000';
+  }
+  else {
+    int tmp_0;
+    tmp_0 = UTI_StringToIP((char const *)line,& ip);
+    if (tmp_0) {
+      if ((int)ip.family == 1) bind_cmd_address4 = ip;
+      else 
+        if ((int)ip.family == 2) bind_cmd_address6 = ip;
+    }
+    else command_parse_error();
+  }
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_48(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_49(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+static void parse_broadcast(char *line)
+{
+  NTP_Broadcast_Destination *destination;
+  int port;
+  int interval;
+  char *p;
+  IPAddr ip;
+  int tmp;
+  int tmp_0;
+  p = line;
+  line = CPS_SplitWord(line);
+  tmp = sscanf_va_48((char const *)p,"%d",& interval);
+  if (tmp != 1) {
+    command_parse_error();
+    goto return_label;
+  }
+  p = line;
+  line = CPS_SplitWord(line);
+  tmp_0 = UTI_StringToIP((char const *)p,& ip);
+  if (! tmp_0) {
+    command_parse_error();
+    goto return_label;
+  }
+  p = line;
+  line = CPS_SplitWord(line);
+  if (*p) {
+    int tmp_1;
+    tmp_1 = sscanf_va_49((char const *)p,"%d",& port);
+    if (tmp_1 != 1) goto _LOR;
+    else 
+      if (*line) {
+        _LOR: {
+                command_parse_error();
+                goto return_label;
+              }
+      }
+  }
+  else port = 123;
+  destination = (NTP_Broadcast_Destination *)ARR_GetNewElement(broadcasts);
+  destination->addr = ip;
+  destination->port = (unsigned short)port;
+  destination->interval = interval;
+  return_label: return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_50(char const * __restrict s, char const * __restrict format,
+                 double *param0, double *param1);
+
+static void parse_smoothtime(char *line)
+{
+  int tmp;
+  int tmp_0;
+  char *tmp_1;
+  tmp = get_number_of_args(line);
+  if (tmp != 3) check_number_of_args(line,2);
+  tmp_0 = sscanf_va_50((char const *)line,"%lf %lf",& smooth_max_freq,
+                       & smooth_max_wander);
+  if (tmp_0 != 2) {
+    smooth_max_freq = 0.0;
+    command_parse_error();
+  }
+  tmp_1 = CPS_SplitWord(line);
+  line = CPS_SplitWord(tmp_1);
+  smooth_leap_only = 0;
+  if (*line) {
+    int tmp_2;
+    tmp_2 = strcasecmp((char const *)line,"leaponly");
+    if (tmp_2) command_parse_error(); else smooth_leap_only = 1;
+  }
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_51(char const * __restrict s, char const * __restrict format,
+                 double *param0);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param4);
+    requires \valid(param3);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param4);
+    ensures \initialized(param3);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param4, *param3, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param4
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param3
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_52(char const * __restrict s, char const * __restrict format,
+                 double *param0, double *param1, double *param2,
+                 double *param3, double *param4);
+
+static void parse_tempcomp(char *line)
+{
+  char *p;
+  int point_form;
+  int tmp;
+  tmp = get_number_of_args(line);
+  point_form = tmp == 3;
+  if (! point_form) check_number_of_args(line,6);
+  p = line;
+  line = CPS_SplitWord(line);
+  if (! *p) {
+    command_parse_error();
+    goto return_label;
+  }
+  free((void *)tempcomp_point_file);
+  if (point_form) {
+    int tmp_0;
+    char *tmp_1;
+    tmp_0 = sscanf_va_51((char const *)line,"%lf",& tempcomp_interval);
+    if (tmp_0 != 1) {
+      command_parse_error();
+      goto return_label;
+    }
+    tmp_1 = CPS_SplitWord(line);
+    tempcomp_point_file = Strdup((char const *)tmp_1);
+  }
+  else {
+    int tmp_2;
+    tmp_2 = sscanf_va_52((char const *)line,"%lf %lf %lf %lf %lf",
+                         & tempcomp_interval,& tempcomp_T0,& tempcomp_k0,
+                         & tempcomp_k1,& tempcomp_k2);
+    if (tmp_2 != 5) {
+      command_parse_error();
+      goto return_label;
+    }
+    tempcomp_point_file = (char *)0;
+  }
+  free((void *)tempcomp_sensor_file);
+  tempcomp_sensor_file = Strdup((char const *)p);
+  return_label: return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    ensures \initialized(param1);
+    assigns \result, *param1, *(param0 + (0 ..));
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *(param0 + (0 ..))
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_53(char const * __restrict s, char const * __restrict format,
+                 char *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_54(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_55(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_56(char const * __restrict s, char const * __restrict format,
+                 double *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_57(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_58(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_59(char const * __restrict s, char const * __restrict format,
+                 int *param0, int *param1);
+
+static void parse_hwtimestamp(char *line)
+{
+  CNF_HwTsInterface *iface;
+  char *p;
+  char filter[5];
+  int n;
+  if (! *line) {
+    command_parse_error();
+    goto return_label;
+  }
+  p = line;
+  line = CPS_SplitWord(line);
+  iface = (CNF_HwTsInterface *)ARR_GetNewElement(hwts_interfaces);
+  iface->name = Strdup((char const *)p);
+  iface->minpoll = 0;
+  iface->min_samples = 2;
+  iface->max_samples = 16;
+  iface->nocrossts = 0;
+  iface->rxfilter = CNF_HWTS_RXFILTER_ANY;
+  iface->precision = 100.0e-9;
+  iface->tx_comp = 0.0;
+  iface->rx_comp = 0.0;
+  p = line;
+  while (*p) {
+    {
+      int tmp_16;
+      line = CPS_SplitWord(line);
+      tmp_16 = strcasecmp((char const *)p,"maxsamples");
+      if (tmp_16) {
+        int tmp_15;
+        tmp_15 = strcasecmp((char const *)p,"minpoll");
+        if (tmp_15) {
+          int tmp_14;
+          tmp_14 = strcasecmp((char const *)p,"minsamples");
+          if (tmp_14) {
+            int tmp_13;
+            tmp_13 = strcasecmp((char const *)p,"precision");
+            if (tmp_13) {
+              int tmp_12;
+              tmp_12 = strcasecmp((char const *)p,"rxcomp");
+              if (tmp_12) {
+                int tmp_11;
+                tmp_11 = strcasecmp((char const *)p,"txcomp");
+                if (tmp_11) {
+                  int tmp_10;
+                  tmp_10 = strcasecmp((char const *)p,"rxfilter");
+                  if (tmp_10) {
+                    int tmp_9;
+                    tmp_9 = strcasecmp((char const *)p,"nocrossts");
+                    if (tmp_9) break;
+                    else {
+                      n = 0;
+                      iface->nocrossts = 1;
+                    }
+                  }
+                  else {
+                    int tmp_5;
+                    int tmp_8;
+                    tmp_5 = sscanf_va_53((char const *)line,"%4s%n",filter,
+                                         & n);
+                    if (tmp_5 != 1) break;
+                    tmp_8 = strcasecmp((char const *)(filter),"none");
+                    if (tmp_8) {
+                      int tmp_7;
+                      tmp_7 = strcasecmp((char const *)(filter),"ntp");
+                      if (tmp_7) {
+                        int tmp_6;
+                        tmp_6 = strcasecmp((char const *)(filter),"all");
+                        if (tmp_6) break;
+                        else iface->rxfilter = CNF_HWTS_RXFILTER_ALL;
+                      }
+                      else iface->rxfilter = CNF_HWTS_RXFILTER_NTP;
+                    }
+                    else iface->rxfilter = CNF_HWTS_RXFILTER_NONE;
+                  }
+                }
+                else {
+                  int tmp_4;
+                  tmp_4 = sscanf_va_54((char const *)line,"%lf%n",
+                                       & iface->tx_comp,& n);
+                  if (tmp_4 != 1) break;
+                }
+              }
+              else {
+                int tmp_3;
+                tmp_3 = sscanf_va_55((char const *)line,"%lf%n",
+                                     & iface->rx_comp,& n);
+                if (tmp_3 != 1) break;
+              }
+            }
+            else {
+              int tmp_2;
+              tmp_2 = sscanf_va_56((char const *)line,"%lf%n",
+                                   & iface->precision,& n);
+              if (tmp_2 != 1) break;
+            }
+          }
+          else {
+            int tmp_1;
+            tmp_1 = sscanf_va_57((char const *)line,"%d%n",
+                                 & iface->min_samples,& n);
+            if (tmp_1 != 1) break;
+          }
+        }
+        else {
+          int tmp_0;
+          tmp_0 = sscanf_va_58((char const *)line,"%d%n",& iface->minpoll,
+                               & n);
+          if (tmp_0 != 1) break;
+        }
+      }
+      else {
+        int tmp;
+        tmp = sscanf_va_59((char const *)line,"%d%n",& iface->max_samples,
+                           & n);
+        if (tmp != 1) break;
+      }
+    }
+    line += n;
+    p = line;
+  }
+  if (*p) command_parse_error();
+  return_label: return;
+}
+
+/*@ assigns \nothing; */
+static void parse_include(char *line)
+{
+  glob_t gl;
+  size_t i;
+  int r;
+  check_number_of_args(line,1);
+  r = glob((char const *)line,1 << 0,
+           (int (*)(char const *epath, int eerrno))0,& gl);
+  if (r != 0) {
+    if (r != 3) {
+      {
+        char *__va_arg0 = line;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_FATAL,"Could not search for files matching %s",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+    goto return_label;
+  }
+  i = (unsigned long)0;
+  while (i < gl.gl_pathc) {
+    CNF_ReadFile((char const *)*(gl.gl_pathv + i));
+    i += (size_t)1;
+  }
+  globfree(& gl);
+  return_label: return;
+}
+
+void CNF_CreateDirs(uid_t uid, gid_t gid)
+{
+  char *dir;
+  if (*(bind_cmd_path + 0)) {
+    int tmp;
+    dir = UTI_PathToDir((char const *)bind_cmd_path);
+    UTI_CreateDirAndParents((char const *)dir,(unsigned int)0770,uid,gid);
+    tmp = UTI_CheckDirPermissions((char const *)dir,(unsigned int)0770,uid,
+                                  gid);
+    if (! tmp) {
+      {
+        char *__va_arg0 = bind_cmd_path;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_WARN,"Disabled command socket %s",
+                    (void * const *)(__va_args));
+      }
+      *(bind_cmd_path + 0) = (char)'\000';
+    }
+    free((void *)dir);
+  }
+  if (*(logdir + 0)) UTI_CreateDirAndParents((char const *)logdir,
+                                             (unsigned int)0755,uid,gid);
+  if (*(dumpdir + 0)) UTI_CreateDirAndParents((char const *)dumpdir,
+                                              (unsigned int)0755,uid,gid);
+  return;
+}
+
+void CNF_AddInitSources(void)
+{
+  CPS_NTP_Source cps_source;
+  NTP_Remote_Address ntp_addr;
+  unsigned int i;
+  char dummy_hostname[2] = {(char)'H', (char)'\000'};
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(init_sources);
+    ;
+    if (! (i < tmp_0)) break;
+    {
+      void *tmp;
+      CPS_ParseNTPSourceAdd(dummy_hostname,& cps_source);
+      tmp = ARR_GetElement(init_sources,i);
+      ntp_addr.ip_addr = *((IPAddr *)tmp);
+      ntp_addr.port = cps_source.port;
+      cps_source.params.iburst = 1;
+      cps_source.params.connectivity = SRC_OFFLINE;
+      NSR_AddSource(& ntp_addr,NTP_SERVER,& cps_source.params);
+    }
+    i ++;
+  }
+  ARR_SetSize(init_sources,(unsigned int)0);
+  return;
+}
+
+void CNF_AddSources(void)
+{
+  NTP_Source *source;
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(ntp_sources);
+    ;
+    if (! (i < tmp_0)) break;
+    source = (NTP_Source *)ARR_GetElement(ntp_sources,i);
+    NSR_AddSourceByName(source->params.name,(int)source->params.port,
+                        source->pool,source->type,& source->params.params);
+    free((void *)source->params.name);
+    i ++;
+  }
+  ARR_SetSize(ntp_sources,(unsigned int)0);
+  return;
+}
+
+void CNF_AddRefclocks(void)
+{
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(refclock_sources);
+    ;
+    if (! (i < tmp_0)) break;
+    {
+      void *tmp;
+      tmp = ARR_GetElement(refclock_sources,i);
+      RCL_AddRefclock((RefclockParameters *)tmp);
+    }
+    i ++;
+  }
+  ARR_SetSize(refclock_sources,(unsigned int)0);
+  return;
+}
+
+void CNF_AddBroadcasts(void)
+{
+  unsigned int i;
+  NTP_Broadcast_Destination *destination;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(broadcasts);
+    ;
+    if (! (i < tmp_0)) break;
+    destination = (NTP_Broadcast_Destination *)ARR_GetElement(broadcasts,i);
+    NCR_AddBroadcastDestination(& destination->addr,destination->port,
+                                destination->interval);
+    i ++;
+  }
+  ARR_SetSize(broadcasts,(unsigned int)0);
+  return;
+}
+
+int CNF_GetNTPPort(void)
+{
+  return ntp_port;
+}
+
+int CNF_GetAcquisitionPort(void)
+{
+  return acquisition_port;
+}
+
+char *CNF_GetDriftFile(void)
+{
+  return drift_file;
+}
+
+int CNF_GetLogBanner(void)
+{
+  return log_banner;
+}
+
+char *CNF_GetLogDir(void)
+{
+  return logdir;
+}
+
+char *CNF_GetDumpDir(void)
+{
+  return dumpdir;
+}
+
+int CNF_GetLogMeasurements(int *raw)
+{
+  *raw = raw_measurements;
+  return do_log_measurements;
+}
+
+int CNF_GetLogStatistics(void)
+{
+  return do_log_statistics;
+}
+
+int CNF_GetLogTracking(void)
+{
+  return do_log_tracking;
+}
+
+int CNF_GetLogRtc(void)
+{
+  return do_log_rtc;
+}
+
+int CNF_GetLogRefclocks(void)
+{
+  return do_log_refclocks;
+}
+
+int CNF_GetLogTempComp(void)
+{
+  return do_log_tempcomp;
+}
+
+char *CNF_GetKeysFile(void)
+{
+  return keys_file;
+}
+
+double CNF_GetRtcAutotrim(void)
+{
+  return rtc_autotrim_threshold;
+}
+
+char *CNF_GetRtcFile(void)
+{
+  return rtc_file;
+}
+
+char *CNF_GetRtcDevice(void)
+{
+  return rtc_device;
+}
+
+double CNF_GetMaxUpdateSkew(void)
+{
+  return max_update_skew;
+}
+
+double CNF_GetMaxDrift(void)
+{
+  return max_drift;
+}
+
+double CNF_GetMaxClockError(void)
+{
+  return max_clock_error;
+}
+
+double CNF_GetCorrectionTimeRatio(void)
+{
+  return correction_time_ratio;
+}
+
+double CNF_GetMaxSlewRate(void)
+{
+  return max_slew_rate;
+}
+
+double CNF_GetMaxDistance(void)
+{
+  return max_distance;
+}
+
+double CNF_GetMaxJitter(void)
+{
+  return max_jitter;
+}
+
+double CNF_GetReselectDistance(void)
+{
+  return reselect_distance;
+}
+
+double CNF_GetStratumWeight(void)
+{
+  return stratum_weight;
+}
+
+double CNF_GetCombineLimit(void)
+{
+  return combine_limit;
+}
+
+int CNF_GetManualEnabled(void)
+{
+  return enable_manual;
+}
+
+int CNF_GetCommandPort(void)
+{
+  return cmd_port;
+}
+
+int CNF_AllowLocalReference(int *stratum, int *orphan, double *distance)
+{
+  int __retres;
+  if (enable_local) {
+    *stratum = local_stratum;
+    *orphan = local_orphan;
+    *distance = local_distance;
+    __retres = 1;
+    goto return_label;
+  }
+  else {
+    __retres = 0;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+int CNF_GetRtcOnUtc(void)
+{
+  return rtc_on_utc;
+}
+
+int CNF_GetRtcSync(void)
+{
+  return rtc_sync;
+}
+
+void CNF_GetMakeStep(int *limit, double *threshold)
+{
+  *limit = make_step_limit;
+  *threshold = make_step_threshold;
+  return;
+}
+
+void CNF_GetMaxChange(int *delay, int *ignore, double *offset)
+{
+  *delay = max_offset_delay;
+  *ignore = max_offset_ignore;
+  *offset = max_offset;
+  return;
+}
+
+double CNF_GetLogChange(void)
+{
+  return log_change_threshold;
+}
+
+void CNF_GetMailOnChange(int *enabled_0, double *threshold, char **user_0)
+{
+  if (mail_user_on_change) {
+    *enabled_0 = 1;
+    *threshold = mail_change_threshold;
+    *user_0 = mail_user_on_change;
+  }
+  else {
+    *enabled_0 = 0;
+    *threshold = 0.0;
+    *user_0 = (char *)0;
+  }
+  return;
+}
+
+void CNF_SetupAccessRestrictions(void)
+{
+  AllowDeny *node;
+  int status;
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    tmp_0 = ARR_GetSize(ntp_restrictions);
+    ;
+    if (! (i < tmp_0)) break;
+    node = (AllowDeny *)ARR_GetElement(ntp_restrictions,i);
+    status = NCR_AddAccessRestriction(& node->ip,node->subnet_bits,
+                                      node->allow,node->all);
+    if (! status) {
+      char *tmp;
+      ;
+      tmp = UTI_IPToString(& node->ip);
+      {
+        char *__va_arg0 = tmp;
+        int __va_arg1 = node->subnet_bits;
+        void *__va_args[2] = {& __va_arg0, & __va_arg1};
+        LOG_Message(LOGS_FATAL,"Bad subnet in %s/%d",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+    i ++;
+  }
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_2;
+    tmp_2 = ARR_GetSize(cmd_restrictions);
+    ;
+    if (! (i < tmp_2)) break;
+    node = (AllowDeny *)ARR_GetElement(cmd_restrictions,i);
+    status = CAM_AddAccessRestriction(& node->ip,node->subnet_bits,
+                                      node->allow,node->all);
+    if (! status) {
+      char *tmp_1;
+      ;
+      tmp_1 = UTI_IPToString(& node->ip);
+      {
+        char *__va_arg0_12 = tmp_1;
+        int __va_arg1_14 = node->subnet_bits;
+        void *__va_args_16[2] = {& __va_arg0_12, & __va_arg1_14};
+        LOG_Message(LOGS_FATAL,"Bad subnet in %s/%d",
+                    (void * const *)(__va_args_16));
+      }
+      exit(1);
+    }
+    i ++;
+  }
+  ARR_SetSize(ntp_restrictions,(unsigned int)0);
+  ARR_SetSize(cmd_restrictions,(unsigned int)0);
+  return;
+}
+
+int CNF_GetNoClientLog(void)
+{
+  return no_client_log;
+}
+
+unsigned long CNF_GetClientLogLimit(void)
+{
+  return client_log_limit;
+}
+
+void CNF_GetFallbackDrifts(int *min, int *max)
+{
+  *min = fb_drift_min;
+  *max = fb_drift_max;
+  return;
+}
+
+void CNF_GetBindAddress(int family, IPAddr *addr)
+{
+  if (family == 1) *addr = bind_address4;
+  else 
+    if (family == 2) *addr = bind_address6;
+    else addr->family = (unsigned short)0;
+  return;
+}
+
+void CNF_GetBindAcquisitionAddress(int family, IPAddr *addr)
+{
+  if (family == 1) *addr = bind_acq_address4;
+  else 
+    if (family == 2) *addr = bind_acq_address6;
+    else addr->family = (unsigned short)0;
+  return;
+}
+
+char *CNF_GetBindCommandPath(void)
+{
+  return bind_cmd_path;
+}
+
+void CNF_GetBindCommandAddress(int family, IPAddr *addr)
+{
+  if (family == 1) *addr = bind_cmd_address4;
+  else 
+    if (family == 2) *addr = bind_cmd_address6;
+    else addr->family = (unsigned short)0;
+  return;
+}
+
+char *CNF_GetNtpSigndSocket(void)
+{
+  return ntp_signd_socket;
+}
+
+char *CNF_GetPidFile(void)
+{
+  return pidfile;
+}
+
+REF_LeapMode CNF_GetLeapSecMode(void)
+{
+  return leapsec_mode;
+}
+
+char *CNF_GetLeapSecTimezone(void)
+{
+  return leapsec_tz;
+}
+
+int CNF_GetSchedPriority(void)
+{
+  return sched_priority;
+}
+
+int CNF_GetLockMemory(void)
+{
+  return lock_memory;
+}
+
+int CNF_GetNTPRateLimit(int *interval, int *burst, int *leak)
+{
+  *interval = ntp_ratelimit_interval;
+  *burst = ntp_ratelimit_burst;
+  *leak = ntp_ratelimit_leak;
+  return ntp_ratelimit_enabled;
+}
+
+int CNF_GetCommandRateLimit(int *interval, int *burst, int *leak)
+{
+  *interval = cmd_ratelimit_interval;
+  *burst = cmd_ratelimit_burst;
+  *leak = cmd_ratelimit_leak;
+  return cmd_ratelimit_enabled;
+}
+
+void CNF_GetSmooth(double *max_freq_0, double *max_wander_0, int *leap_only)
+{
+  *max_freq_0 = smooth_max_freq;
+  *max_wander_0 = smooth_max_wander;
+  *leap_only = smooth_leap_only;
+  return;
+}
+
+void CNF_GetTempComp(char **file, double *interval, char **point_file,
+                     double *T0, double *k0, double *k1, double *k2)
+{
+  *file = tempcomp_sensor_file;
+  *point_file = tempcomp_point_file;
+  *interval = tempcomp_interval;
+  *T0 = tempcomp_T0;
+  *k0 = tempcomp_k0;
+  *k1 = tempcomp_k1;
+  *k2 = tempcomp_k2;
+  return;
+}
+
+char *CNF_GetUser(void)
+{
+  return user;
+}
+
+int CNF_GetMaxSamples(void)
+{
+  return max_samples;
+}
+
+int CNF_GetMinSamples(void)
+{
+  return min_samples;
+}
+
+int CNF_GetMinSources(void)
+{
+  return min_sources;
+}
+
+char *CNF_GetHwclockFile(void)
+{
+  return hwclock_file;
+}
+
+int CNF_GetInitSources(void)
+{
+  int __retres;
+  unsigned int tmp;
+  tmp = ARR_GetSize(init_sources);
+  __retres = (int)tmp;
+  return __retres;
+}
+
+double CNF_GetInitStepThreshold(void)
+{
+  return init_slew_threshold;
+}
+
+int CNF_GetHwTsInterface(unsigned int index_0, CNF_HwTsInterface **iface)
+{
+  int __retres;
+  unsigned int tmp;
+  tmp = ARR_GetSize(hwts_interfaces);
+  ;
+  if (index_0 >= tmp) {
+    __retres = 0;
+    goto return_label;
+  }
+  *iface = (CNF_HwTsInterface *)ARR_GetElement(hwts_interfaces,index_0);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void MD5Init(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__));
+
+void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf,
+               unsigned int inLen) __attribute__((__FC_OLDSTYLEPROTO__));
+
+void MD5Final(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__));
+
+static void Transform(UINT4 *buf, UINT4 *in) __attribute__((__FC_OLDSTYLEPROTO__));
+
+static unsigned char const PADDING[64] =
+  {(unsigned char)0x80,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00,
+   (unsigned char)0x00};
+void MD5Init(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__));
+void MD5Init(MD5_CTX *mdContext)
+{
+  UINT4 tmp;
+  tmp = (unsigned int)0;
+  mdContext->i[1] = tmp;
+  mdContext->i[0] = tmp;
+  mdContext->buf[0] = (unsigned int)0x67452301;
+  mdContext->buf[1] = 0xefcdab89;
+  mdContext->buf[2] = 0x98badcfe;
+  mdContext->buf[3] = (unsigned int)0x10325476;
+  return;
+}
+
+void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf,
+               unsigned int inLen) __attribute__((__FC_OLDSTYLEPROTO__));
+void MD5Update(MD5_CTX *mdContext, unsigned char const *inBuf,
+               unsigned int inLen)
+{
+  UINT4 in[16];
+  int mdi;
+  unsigned int i;
+  unsigned int ii;
+  mdi = (int)((mdContext->i[0] >> 3) & (unsigned int)0x3F);
+  if (mdContext->i[0] + (inLen << 3) < mdContext->i[0]) mdContext->i[1] += (UINT4)1;
+  mdContext->i[0] += inLen << 3;
+  mdContext->i[1] += inLen >> 29;
+  while (1) {
+    unsigned int tmp_1;
+    tmp_1 = inLen;
+    inLen --;
+    ;
+    if (! tmp_1) break;
+    {
+      int tmp;
+      unsigned char const *tmp_0;
+      tmp = mdi;
+      mdi ++;
+      tmp_0 = inBuf;
+      inBuf ++;
+      mdContext->in[tmp] = *tmp_0;
+      if (mdi == 0x40) {
+        i = (unsigned int)0;
+        ii = (unsigned int)0;
+        /*@ loop unroll 16; */
+        while (i < (unsigned int)16) {
+          in[i] = ((((unsigned int)mdContext->in[ii + (unsigned int)3] << 24) | (
+                    (unsigned int)mdContext->in[ii + (unsigned int)2] << 16)) | (
+                   (unsigned int)mdContext->in[ii + (unsigned int)1] << 8)) | (unsigned int)mdContext->in[ii];
+          i ++;
+          ii += (unsigned int)4;
+        }
+        Transform(mdContext->buf,in);
+        mdi = 0;
+      }
+    }
+  }
+  return;
+}
+
+void MD5Final(MD5_CTX *mdContext) __attribute__((__FC_OLDSTYLEPROTO__));
+void MD5Final(MD5_CTX *mdContext)
+{
+  UINT4 in[16];
+  int mdi;
+  unsigned int i;
+  unsigned int ii;
+  unsigned int padLen;
+  in[14] = mdContext->i[0];
+  in[15] = mdContext->i[1];
+  mdi = (int)((mdContext->i[0] >> 3) & (unsigned int)0x3F);
+  if (mdi < 56) padLen = (unsigned int)(56 - mdi);
+  else padLen = (unsigned int)(120 - mdi);
+  MD5Update(mdContext,PADDING,padLen);
+  i = (unsigned int)0;
+  ii = (unsigned int)0;
+  /*@ loop unroll 14; */
+  while (i < (unsigned int)14) {
+    in[i] = ((((unsigned int)mdContext->in[ii + (unsigned int)3] << 24) | (
+              (unsigned int)mdContext->in[ii + (unsigned int)2] << 16)) | (
+             (unsigned int)mdContext->in[ii + (unsigned int)1] << 8)) | (unsigned int)mdContext->in[ii];
+    i ++;
+    ii += (unsigned int)4;
+  }
+  Transform(mdContext->buf,in);
+  i = (unsigned int)0;
+  ii = (unsigned int)0;
+  /*@ loop unroll 4; */
+  while (i < (unsigned int)4) {
+    mdContext->digest[ii] = (unsigned char)(mdContext->buf[i] & (unsigned int)0xFF);
+    mdContext->digest[ii + (unsigned int)1] = (unsigned char)((mdContext->buf[i] >> 8) & (unsigned int)0xFF);
+    mdContext->digest[ii + (unsigned int)2] = (unsigned char)((mdContext->buf[i] >> 16) & (unsigned int)0xFF);
+    mdContext->digest[ii + (unsigned int)3] = (unsigned char)((mdContext->buf[i] >> 24) & (unsigned int)0xFF);
+    i ++;
+    ii += (unsigned int)4;
+  }
+  return;
+}
+
+/*@ requires \initialized(in + (0 .. 15));
+    assigns *(buf + (0 .. 3));
+    assigns *(buf + (0 .. 3)) \from (indirect: in), *(in + (0 .. 15));
+ */
+static void Transform(UINT4 *buf, UINT4 *in) __attribute__((__FC_OLDSTYLEPROTO__));
+static void Transform(UINT4 *buf, UINT4 *in)
+{
+  UINT4 a = *(buf + 0);
+  UINT4 b = *(buf + 1);
+  UINT4 c = *(buf + 2);
+  UINT4 d = *(buf + 3);
+  a += (((b & c) | (~ b & d)) + *(in + 0)) + 0xd76aa478;
+  a = (a << 7) | (a >> (32 - 7));
+  a += b;
+  d += (((a & b) | (~ a & c)) + *(in + 1)) + 0xe8c7b756;
+  d = (d << 12) | (d >> (32 - 12));
+  d += a;
+  c += (((d & a) | (~ d & b)) + *(in + 2)) + (unsigned int)0x242070db;
+  c = (c << 17) | (c >> (32 - 17));
+  c += d;
+  b += (((c & d) | (~ c & a)) + *(in + 3)) + 0xc1bdceee;
+  b = (b << 22) | (b >> (32 - 22));
+  b += c;
+  a += (((b & c) | (~ b & d)) + *(in + 4)) + 0xf57c0faf;
+  a = (a << 7) | (a >> (32 - 7));
+  a += b;
+  d += (((a & b) | (~ a & c)) + *(in + 5)) + (unsigned int)0x4787c62a;
+  d = (d << 12) | (d >> (32 - 12));
+  d += a;
+  c += (((d & a) | (~ d & b)) + *(in + 6)) + 0xa8304613;
+  c = (c << 17) | (c >> (32 - 17));
+  c += d;
+  b += (((c & d) | (~ c & a)) + *(in + 7)) + 0xfd469501;
+  b = (b << 22) | (b >> (32 - 22));
+  b += c;
+  a += (((b & c) | (~ b & d)) + *(in + 8)) + (unsigned int)0x698098d8;
+  a = (a << 7) | (a >> (32 - 7));
+  a += b;
+  d += (((a & b) | (~ a & c)) + *(in + 9)) + 0x8b44f7af;
+  d = (d << 12) | (d >> (32 - 12));
+  d += a;
+  c += (((d & a) | (~ d & b)) + *(in + 10)) + 0xffff5bb1;
+  c = (c << 17) | (c >> (32 - 17));
+  c += d;
+  b += (((c & d) | (~ c & a)) + *(in + 11)) + 0x895cd7be;
+  b = (b << 22) | (b >> (32 - 22));
+  b += c;
+  a += (((b & c) | (~ b & d)) + *(in + 12)) + (unsigned int)0x6b901122;
+  a = (a << 7) | (a >> (32 - 7));
+  a += b;
+  d += (((a & b) | (~ a & c)) + *(in + 13)) + 0xfd987193;
+  d = (d << 12) | (d >> (32 - 12));
+  d += a;
+  c += (((d & a) | (~ d & b)) + *(in + 14)) + 0xa679438e;
+  c = (c << 17) | (c >> (32 - 17));
+  c += d;
+  b += (((c & d) | (~ c & a)) + *(in + 15)) + (unsigned int)0x49b40821;
+  b = (b << 22) | (b >> (32 - 22));
+  b += c;
+  a += (((b & d) | (c & ~ d)) + *(in + 1)) + 0xf61e2562;
+  a = (a << 5) | (a >> (32 - 5));
+  a += b;
+  d += (((a & c) | (b & ~ c)) + *(in + 6)) + 0xc040b340;
+  d = (d << 9) | (d >> (32 - 9));
+  d += a;
+  c += (((d & b) | (a & ~ b)) + *(in + 11)) + (unsigned int)0x265e5a51;
+  c = (c << 14) | (c >> (32 - 14));
+  c += d;
+  b += (((c & a) | (d & ~ a)) + *(in + 0)) + 0xe9b6c7aa;
+  b = (b << 20) | (b >> (32 - 20));
+  b += c;
+  a += (((b & d) | (c & ~ d)) + *(in + 5)) + 0xd62f105d;
+  a = (a << 5) | (a >> (32 - 5));
+  a += b;
+  d += (((a & c) | (b & ~ c)) + *(in + 10)) + (unsigned int)0x2441453;
+  d = (d << 9) | (d >> (32 - 9));
+  d += a;
+  c += (((d & b) | (a & ~ b)) + *(in + 15)) + 0xd8a1e681;
+  c = (c << 14) | (c >> (32 - 14));
+  c += d;
+  b += (((c & a) | (d & ~ a)) + *(in + 4)) + 0xe7d3fbc8;
+  b = (b << 20) | (b >> (32 - 20));
+  b += c;
+  a += (((b & d) | (c & ~ d)) + *(in + 9)) + (unsigned int)0x21e1cde6;
+  a = (a << 5) | (a >> (32 - 5));
+  a += b;
+  d += (((a & c) | (b & ~ c)) + *(in + 14)) + 0xc33707d6;
+  d = (d << 9) | (d >> (32 - 9));
+  d += a;
+  c += (((d & b) | (a & ~ b)) + *(in + 3)) + 0xf4d50d87;
+  c = (c << 14) | (c >> (32 - 14));
+  c += d;
+  b += (((c & a) | (d & ~ a)) + *(in + 8)) + (unsigned int)0x455a14ed;
+  b = (b << 20) | (b >> (32 - 20));
+  b += c;
+  a += (((b & d) | (c & ~ d)) + *(in + 13)) + 0xa9e3e905;
+  a = (a << 5) | (a >> (32 - 5));
+  a += b;
+  d += (((a & c) | (b & ~ c)) + *(in + 2)) + 0xfcefa3f8;
+  d = (d << 9) | (d >> (32 - 9));
+  d += a;
+  c += (((d & b) | (a & ~ b)) + *(in + 7)) + (unsigned int)0x676f02d9;
+  c = (c << 14) | (c >> (32 - 14));
+  c += d;
+  b += (((c & a) | (d & ~ a)) + *(in + 12)) + 0x8d2a4c8a;
+  b = (b << 20) | (b >> (32 - 20));
+  b += c;
+  a += (((b ^ c) ^ d) + *(in + 5)) + 0xfffa3942;
+  a = (a << 4) | (a >> (32 - 4));
+  a += b;
+  d += (((a ^ b) ^ c) + *(in + 8)) + 0x8771f681;
+  d = (d << 11) | (d >> (32 - 11));
+  d += a;
+  c += (((d ^ a) ^ b) + *(in + 11)) + (unsigned int)0x6d9d6122;
+  c = (c << 16) | (c >> (32 - 16));
+  c += d;
+  b += (((c ^ d) ^ a) + *(in + 14)) + 0xfde5380c;
+  b = (b << 23) | (b >> (32 - 23));
+  b += c;
+  a += (((b ^ c) ^ d) + *(in + 1)) + 0xa4beea44;
+  a = (a << 4) | (a >> (32 - 4));
+  a += b;
+  d += (((a ^ b) ^ c) + *(in + 4)) + (unsigned int)0x4bdecfa9;
+  d = (d << 11) | (d >> (32 - 11));
+  d += a;
+  c += (((d ^ a) ^ b) + *(in + 7)) + 0xf6bb4b60;
+  c = (c << 16) | (c >> (32 - 16));
+  c += d;
+  b += (((c ^ d) ^ a) + *(in + 10)) + 0xbebfbc70;
+  b = (b << 23) | (b >> (32 - 23));
+  b += c;
+  a += (((b ^ c) ^ d) + *(in + 13)) + (unsigned int)0x289b7ec6;
+  a = (a << 4) | (a >> (32 - 4));
+  a += b;
+  d += (((a ^ b) ^ c) + *(in + 0)) + 0xeaa127fa;
+  d = (d << 11) | (d >> (32 - 11));
+  d += a;
+  c += (((d ^ a) ^ b) + *(in + 3)) + 0xd4ef3085;
+  c = (c << 16) | (c >> (32 - 16));
+  c += d;
+  b += (((c ^ d) ^ a) + *(in + 6)) + (unsigned int)0x4881d05;
+  b = (b << 23) | (b >> (32 - 23));
+  b += c;
+  a += (((b ^ c) ^ d) + *(in + 9)) + 0xd9d4d039;
+  a = (a << 4) | (a >> (32 - 4));
+  a += b;
+  d += (((a ^ b) ^ c) + *(in + 12)) + 0xe6db99e5;
+  d = (d << 11) | (d >> (32 - 11));
+  d += a;
+  c += (((d ^ a) ^ b) + *(in + 15)) + (unsigned int)0x1fa27cf8;
+  c = (c << 16) | (c >> (32 - 16));
+  c += d;
+  b += (((c ^ d) ^ a) + *(in + 2)) + 0xc4ac5665;
+  b = (b << 23) | (b >> (32 - 23));
+  b += c;
+  a += ((c ^ (b | ~ d)) + *(in + 0)) + 0xf4292244;
+  a = (a << 6) | (a >> (32 - 6));
+  a += b;
+  d += ((b ^ (a | ~ c)) + *(in + 7)) + (unsigned int)0x432aff97;
+  d = (d << 10) | (d >> (32 - 10));
+  d += a;
+  c += ((a ^ (d | ~ b)) + *(in + 14)) + 0xab9423a7;
+  c = (c << 15) | (c >> (32 - 15));
+  c += d;
+  b += ((d ^ (c | ~ a)) + *(in + 5)) + 0xfc93a039;
+  b = (b << 21) | (b >> (32 - 21));
+  b += c;
+  a += ((c ^ (b | ~ d)) + *(in + 12)) + (unsigned int)0x655b59c3;
+  a = (a << 6) | (a >> (32 - 6));
+  a += b;
+  d += ((b ^ (a | ~ c)) + *(in + 3)) + 0x8f0ccc92;
+  d = (d << 10) | (d >> (32 - 10));
+  d += a;
+  c += ((a ^ (d | ~ b)) + *(in + 10)) + 0xffeff47d;
+  c = (c << 15) | (c >> (32 - 15));
+  c += d;
+  b += ((d ^ (c | ~ a)) + *(in + 1)) + 0x85845dd1;
+  b = (b << 21) | (b >> (32 - 21));
+  b += c;
+  a += ((c ^ (b | ~ d)) + *(in + 8)) + (unsigned int)0x6fa87e4f;
+  a = (a << 6) | (a >> (32 - 6));
+  a += b;
+  d += ((b ^ (a | ~ c)) + *(in + 15)) + 0xfe2ce6e0;
+  d = (d << 10) | (d >> (32 - 10));
+  d += a;
+  c += ((a ^ (d | ~ b)) + *(in + 6)) + 0xa3014314;
+  c = (c << 15) | (c >> (32 - 15));
+  c += d;
+  b += ((d ^ (c | ~ a)) + *(in + 13)) + (unsigned int)0x4e0811a1;
+  b = (b << 21) | (b >> (32 - 21));
+  b += c;
+  a += ((c ^ (b | ~ d)) + *(in + 4)) + 0xf7537e82;
+  a = (a << 6) | (a >> (32 - 6));
+  a += b;
+  d += ((b ^ (a | ~ c)) + *(in + 11)) + 0xbd3af235;
+  d = (d << 10) | (d >> (32 - 10));
+  d += a;
+  c += ((a ^ (d | ~ b)) + *(in + 2)) + (unsigned int)0x2ad7d2bb;
+  c = (c << 15) | (c >> (32 - 15));
+  c += d;
+  b += ((d ^ (c | ~ a)) + *(in + 9)) + 0xeb86d391;
+  b = (b << 21) | (b >> (32 - 21));
+  b += c;
+  *(buf + 0) += a;
+  *(buf + 1) += b;
+  *(buf + 2) += c;
+  *(buf + 3) += d;
+  return;
+}
+
+static MD5_CTX ctx;
+int HSH_GetHashId(char const *name)
+{
+  int __retres;
+  int tmp;
+  tmp = strcmp(name,"MD5");
+  if (tmp) {
+    __retres = -1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+unsigned int HSH_Hash(int id, unsigned char const *in1, unsigned int in1_len,
+                      unsigned char const *in2, unsigned int in2_len,
+                      unsigned char *out, unsigned int out_len)
+{
+  MD5Init(& ctx);
+  MD5Update(& ctx,in1,in1_len);
+  if (in2) MD5Update(& ctx,in2,in2_len);
+  MD5Final(& ctx);
+  if (out_len < (unsigned int)16) out_len = out_len;
+  else out_len = (unsigned int)16;
+  memcpy((void *)out,(void const *)(ctx.digest),(unsigned long)out_len);
+  return out_len;
+}
+
+void HSH_Finalise(void)
+{
+  return;
+}
+
+void KEY_Initialise(void);
+
+void KEY_Finalise(void);
+
+void KEY_Reload(void);
+
+int KEY_KeyKnown(uint32_t key_id);
+
+int KEY_GetAuthDelay(uint32_t key_id);
+
+int KEY_GetAuthLength(uint32_t key_id);
+
+int KEY_CheckKeyLength(uint32_t key_id);
+
+int KEY_GenerateAuth(uint32_t key_id, unsigned char const *data,
+                     int data_len, unsigned char *auth, int auth_len);
+
+int KEY_CheckAuth(uint32_t key_id, unsigned char const *data, int data_len,
+                  unsigned char const *auth, int auth_len, int trunc_len);
+
+void LCL_ReadRawTime(struct timespec *ts);
+
+void LCL_ReadCookedTime(struct timespec *result, double *err);
+
+void LCL_CookTime(struct timespec *raw, struct timespec *cooked, double *err);
+
+void LCL_GetOffsetCorrection(struct timespec *raw, double *correction,
+                             double *err);
+
+void LCL_AddParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                   struct timespec *cooked,
+                                                   double dfreq,
+                                                   double doffset,
+                                                   LCL_ChangeType change_type,
+                                                   void *anything),
+                                   void *anything);
+
+void LCL_RemoveParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                      struct timespec *cooked,
+                                                      double dfreq,
+                                                      double doffset,
+                                                      LCL_ChangeType change_type,
+                                                      void *anything),
+                                      void *anything);
+
+int LCL_IsFirstParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                      struct timespec *cooked,
+                                                      double dfreq,
+                                                      double doffset,
+                                                      LCL_ChangeType change_type,
+                                                      void *anything));
+
+void LCL_AddDispersionNotifyHandler(void (*handler)(double dispersion,
+                                                    void *anything),
+                                    void *anything);
+
+extern void LCL_RemoveDispersionNotifyHandler(void (*handler)(double dispersion,
+                                                              void *anything),
+                                              void *anything);
+
+double LCL_ReadAbsoluteFrequency(void);
+
+void LCL_SetAbsoluteFrequency(double afreq_ppm);
+
+void LCL_AccumulateDeltaFrequency(double dfreq);
+
+void LCL_AccumulateOffset(double offset, double corr_rate);
+
+int LCL_ApplyStepOffset(double offset);
+
+void LCL_NotifyExternalTimeStep(struct timespec *raw,
+                                struct timespec *cooked, double offset,
+                                double dispersion);
+
+void LCL_NotifyLeap(int leap);
+
+void LCL_AccumulateFrequencyAndOffset(double dfreq, double doffset,
+                                      double corr_rate);
+
+int LCL_GetSysPrecisionAsLog(void);
+
+double LCL_GetSysPrecisionAsQuantum(void);
+
+double LCL_GetMaxClockError(void);
+
+void LCL_Initialise(void);
+
+void LCL_Finalise(void);
+
+int LCL_MakeStep(void);
+
+int LCL_CanSystemLeap(void);
+
+void LCL_SetSystemLeap(int leap, int tai_offset);
+
+double LCL_SetTempComp(double comp);
+
+void LCL_SetSyncStatus(int synchronised, double est_error, double max_error);
+
+static ARR_Instance keys;
+static int cache_valid;
+static uint32_t cache_key_id;
+static int cache_key_pos;
+static void free_keys(void)
+{
+  unsigned int i;
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_0;
+    void *tmp;
+    tmp_0 = ARR_GetSize(keys);
+    ;
+    if (! (i < tmp_0)) break;
+    tmp = ARR_GetElement(keys,i);
+    free((void *)((Key *)tmp)->val);
+    i ++;
+  }
+  ARR_SetSize(keys,(unsigned int)0);
+  cache_valid = 0;
+  return;
+}
+
+void KEY_Initialise(void)
+{
+  keys = ARR_CreateInstance((unsigned int)sizeof(Key));
+  cache_valid = 0;
+  KEY_Reload();
+  return;
+}
+
+void KEY_Finalise(void)
+{
+  free_keys();
+  ARR_DestroyInstance(keys);
+  return;
+}
+
+static Key *get_key(unsigned int index_0)
+{
+  Key *__retres;
+  void *tmp;
+  tmp = ARR_GetElements(keys);
+  ;
+  __retres = (Key *)tmp + index_0;
+  return __retres;
+}
+
+static int determine_hash_delay(uint32_t key_id)
+{
+  NTP_Packet pkt;
+  struct timespec before;
+  struct timespec after;
+  double diff;
+  double min_diff;
+  int i;
+  int nsecs;
+  memset((void *)(& pkt),0,sizeof(pkt));
+  i = 0;
+  /*@ loop unroll 10; */
+  while (i < 10) {
+    LCL_ReadRawTime(& before);
+    KEY_GenerateAuth(key_id,(unsigned char const *)(& pkt),48,
+                     (unsigned char *)(& pkt.auth_data),
+                     (int)sizeof(pkt.auth_data));
+    LCL_ReadRawTime(& after);
+    diff = UTI_DiffTimespecsToDouble(& after,& before);
+    if (i == 0) min_diff = diff;
+    else 
+      if (min_diff > diff) min_diff = diff;
+    i ++;
+  }
+  nsecs = (int)(1.0625e9 * min_diff);
+  return nsecs;
+}
+
+static int decode_password(char *key)
+{
+  int __retres;
+  int i;
+  int j;
+  size_t tmp;
+  char buf[3];
+  char *p;
+  int tmp_2;
+  tmp = strlen((char const *)key);
+  int len = (int)tmp;
+  tmp_2 = strncmp((char const *)key,"ASCII:",(unsigned long)6);
+  if (tmp_2) {
+    int tmp_1;
+    tmp_1 = strncmp((char const *)key,"HEX:",(unsigned long)4);
+    if (tmp_1) {
+      __retres = len;
+      goto return_label;
+    }
+    else {
+      if ((len - 4) % 2) {
+        __retres = 0;
+        goto return_label;
+      }
+      i = 0;
+      j = 4;
+      while (j + 1 < len) {
+        {
+          long tmp_0;
+          buf[0] = *(key + j);
+          buf[1] = *(key + (j + 1));
+          buf[2] = (char)'\000';
+          tmp_0 = strtol((char const *)(buf),& p,16);
+          *(key + i) = (char)tmp_0;
+          if (p != & buf[2]) {
+            __retres = 0;
+            goto return_label;
+          }
+        }
+        i ++;
+        j += 2;
+      }
+      __retres = i;
+      goto return_label;
+    }
+  }
+  else {
+    memmove((void *)key,(void const *)(key + 6),(unsigned long)(len - 6));
+    __retres = len - 6;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static int compare_keys_by_id(void const *a, void const *b)
+{
+  int __retres;
+  Key const *c = (Key const *)a;
+  Key const *d = (Key const *)b;
+  if (c->id < d->id) {
+    __retres = -1;
+    goto return_label;
+  }
+  else 
+    if (c->id > d->id) {
+      __retres = 1;
+      goto return_label;
+    }
+    else {
+      __retres = 0;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+void KEY_Reload(void)
+{
+  unsigned int i;
+  unsigned int line_number_0;
+  FILE *in;
+  uint32_t key_id;
+  char line[2048];
+  char *keyval;
+  char *key_file;
+  char const *hashname;
+  Key key;
+  unsigned int tmp_2;
+  void *tmp_3;
+  free_keys();
+  key_file = CNF_GetKeysFile();
+  line_number_0 = (unsigned int)0;
+  if (! key_file) goto return_label;
+  in = fopen((char const *)key_file,"r");
+  if (! in) {
+    {
+      char *__va_arg0 = key_file;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_WARN,"Could not open keyfile %s",
+                  (void * const *)(__va_args));
+    }
+    goto return_label;
+  }
+  while (1) {
+    char *tmp_1;
+    tmp_1 = fgets(line,(int)sizeof(line),in);
+    if (! tmp_1) break;
+    {
+      int tmp;
+      line_number_0 ++;
+      CPS_NormalizeLine(line);
+      if (! line[0]) continue;
+      tmp = CPS_ParseKey(line,& key_id,& hashname,& keyval);
+      if (! tmp) {
+        {
+          unsigned int __va_arg0_25 = line_number_0;
+          char *__va_arg1 = key_file;
+          void *__va_args_28[2] = {& __va_arg0_25, & __va_arg1};
+          LOG_Message(LOGS_WARN,"Could not parse key at line %u in file %s",
+                      (void * const *)(__va_args_28));
+        }
+        continue;
+      }
+      key.hash_id = HSH_GetHashId(hashname);
+      if (key.hash_id < 0) {
+        {
+          uint32_t __va_arg0_30 = key_id;
+          void *__va_args_32[1] = {& __va_arg0_30};
+          LOG_Message(LOGS_WARN,"Unknown hash function in key %u",
+                      (void * const *)(__va_args_32));
+        }
+        continue;
+      }
+      key.len = decode_password(keyval);
+      if (! key.len) {
+        {
+          uint32_t __va_arg0_34 = key_id;
+          void *__va_args_36[1] = {& __va_arg0_34};
+          LOG_Message(LOGS_WARN,"Could not decode password in key %u",
+                      (void * const *)(__va_args_36));
+        }
+        continue;
+      }
+      key.id = key_id;
+      key.val = (char *)Malloc2((unsigned long)key.len,sizeof(char));
+      memcpy((void *)key.val,(void const *)keyval,(unsigned long)key.len);
+      ARR_AppendElement(keys,(void *)(& key));
+    }
+  }
+  fclose(in);
+  tmp_2 = ARR_GetSize(keys);
+  tmp_3 = ARR_GetElements(keys);
+  qsort(tmp_3,(unsigned long)tmp_2,sizeof(Key),& compare_keys_by_id);
+  i = (unsigned int)1;
+  while (1) {
+    unsigned int tmp_7;
+    tmp_7 = ARR_GetSize(keys);
+    ;
+    if (! (i < tmp_7)) break;
+    {
+      Key *tmp_5;
+      Key *tmp_6;
+      tmp_5 = get_key(i - (unsigned int)1);
+      tmp_6 = get_key(i);
+      ;
+      if (tmp_5->id == tmp_6->id) {
+        Key *tmp_4;
+        tmp_4 = get_key(i - (unsigned int)1);
+        {
+          uint32_t __va_arg0_38 = tmp_4->id;
+          void *__va_args_40[1] = {& __va_arg0_38};
+          LOG_Message(LOGS_WARN,"Detected duplicate key %u",
+                      (void * const *)(__va_args_40));
+        }
+      }
+    }
+    i ++;
+  }
+  memset((void *)(line),0,sizeof(line));
+  i = (unsigned int)0;
+  while (1) {
+    unsigned int tmp_10;
+    Key *tmp_8;
+    Key *tmp_9;
+    tmp_10 = ARR_GetSize(keys);
+    ;
+    if (! (i < tmp_10)) break;
+    tmp_8 = get_key(i);
+    tmp_9 = get_key(i);
+    tmp_8->auth_delay = determine_hash_delay(tmp_9->id);
+    i ++;
+  }
+  return_label: return;
+}
+
+static int lookup_key(uint32_t id)
+{
+  int __retres;
+  Key specimen;
+  Key *where;
+  Key *keys_ptr;
+  int pos;
+  void *tmp_0;
+  unsigned int tmp;
+  keys_ptr = (Key *)ARR_GetElements(keys);
+  specimen.id = id;
+  tmp = ARR_GetSize(keys);
+  ;
+  tmp_0 = bsearch((void const *)(& specimen),(void const *)keys_ptr,
+                  (unsigned long)tmp,sizeof(Key),& compare_keys_by_id);
+  where = (Key *)tmp_0;
+  if (! where) {
+    __retres = -1;
+    goto return_label;
+  }
+  else {
+    pos = (int)(where - keys_ptr);
+    __retres = pos;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static Key *get_key_by_id(uint32_t key_id)
+{
+  Key *__retres;
+  int position;
+  if (cache_valid) 
+    if (key_id == cache_key_id) {
+      Key *tmp;
+      tmp = get_key((unsigned int)cache_key_pos);
+      __retres = tmp;
+      goto return_label;
+    }
+  position = lookup_key(key_id);
+  if (position >= 0) {
+    Key *tmp_0;
+    cache_valid = 1;
+    cache_key_pos = position;
+    cache_key_id = key_id;
+    tmp_0 = get_key((unsigned int)position);
+    __retres = tmp_0;
+    goto return_label;
+  }
+  __retres = (Key *)0;
+  return_label: return __retres;
+}
+
+int KEY_KeyKnown(uint32_t key_id)
+{
+  int __retres;
+  Key *tmp;
+  tmp = get_key_by_id(key_id);
+  __retres = tmp != (Key *)0;
+  return __retres;
+}
+
+int KEY_GetAuthDelay(uint32_t key_id)
+{
+  int __retres;
+  Key *key;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = key->auth_delay;
+  return_label: return __retres;
+}
+
+int KEY_GetAuthLength(uint32_t key_id)
+{
+  int __retres;
+  unsigned char buf[64];
+  Key *key;
+  unsigned int tmp;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = HSH_Hash(key->hash_id,(unsigned char const *)(buf),(unsigned int)0,
+                 (unsigned char const *)(buf),(unsigned int)0,buf,
+                 (unsigned int)sizeof(buf));
+  __retres = (int)tmp;
+  return_label: return __retres;
+}
+
+int KEY_CheckKeyLength(uint32_t key_id)
+{
+  int __retres;
+  Key *key;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = key->len >= 10;
+  return_label: return __retres;
+}
+
+static int generate_ntp_auth(int hash_id, unsigned char const *key,
+                             int key_len, unsigned char const *data,
+                             int data_len, unsigned char *auth, int auth_len)
+{
+  int __retres;
+  unsigned int tmp;
+  tmp = HSH_Hash(hash_id,key,(unsigned int)key_len,data,
+                 (unsigned int)data_len,auth,(unsigned int)auth_len);
+  __retres = (int)tmp;
+  return __retres;
+}
+
+static int check_ntp_auth(int hash_id, unsigned char const *key, int key_len,
+                          unsigned char const *data, int data_len,
+                          unsigned char const *auth, int auth_len,
+                          int trunc_len)
+{
+  unsigned char buf[64];
+  int hash_len;
+  int tmp_1;
+  int tmp;
+  hash_len = generate_ntp_auth(hash_id,key,key_len,data,data_len,buf,
+                               (int)sizeof(buf));
+  if (hash_len < trunc_len) tmp = hash_len; else tmp = trunc_len;
+  ;
+  if (tmp == auth_len) {
+    int tmp_0;
+    tmp_0 = memcmp((void const *)(buf),(void const *)auth,
+                   (unsigned long)auth_len);
+    if (tmp_0) tmp_1 = 0; else tmp_1 = 1;
+  }
+  else tmp_1 = 0;
+  return tmp_1;
+}
+
+int KEY_GenerateAuth(uint32_t key_id, unsigned char const *data,
+                     int data_len, unsigned char *auth, int auth_len)
+{
+  int __retres;
+  Key *key;
+  int tmp;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = generate_ntp_auth(key->hash_id,(unsigned char const *)key->val,
+                          key->len,data,data_len,auth,auth_len);
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+int KEY_CheckAuth(uint32_t key_id, unsigned char const *data, int data_len,
+                  unsigned char const *auth, int auth_len, int trunc_len)
+{
+  int __retres;
+  Key *key;
+  int tmp;
+  key = get_key_by_id(key_id);
+  if (! key) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = check_ntp_auth(key->hash_id,(unsigned char const *)key->val,key->len,
+                       data,data_len,auth,auth_len,trunc_len);
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+void SMT_Initialise(void);
+
+void SMT_Finalise(void);
+
+int SMT_IsEnabled(void);
+
+double SMT_GetOffset(struct timespec *now);
+
+void SMT_Activate(struct timespec *now);
+
+void SMT_Reset(struct timespec *now);
+
+void SMT_Leap(struct timespec *now, int leap);
+
+int SMT_GetSmoothingReport(RPT_SmoothingReport *report, struct timespec *now);
+
+static double current_freq_ppm;
+static double max_freq_ppm;
+static double temp_comp_ppm;
+static double (*drv_read_freq)(void);
+static double (*drv_set_freq)(double freq_ppm);
+static void (*drv_accrue_offset)(double offset, double corr_rate);
+static int (*drv_apply_step_offset)(double offset);
+static void (*drv_offset_convert)(struct timespec *raw, double *corr,
+                                  double *err);
+static void (*drv_set_leap)(int leap, int tai_offset);
+static void (*drv_set_sync_status)(int synchronised, double est_error,
+                                   double max_error);
+static ChangeListEntry change_list;
+static DispersionNotifyListEntry dispersion_notify_list;
+static int precision_log;
+static double precision_quantum;
+static double max_clock_error_0;
+static void calculate_sys_precision(void)
+{
+  struct timespec ts;
+  struct timespec old_ts;
+  int iters;
+  int diff;
+  int best;
+  LCL_ReadRawTime(& old_ts);
+  best = 1000000000;
+  iters = 0;
+  while (1) {
+    LCL_ReadRawTime(& ts);
+    diff = (int)((long)1000000000 * (ts.tv_sec - old_ts.tv_sec) + (ts.tv_nsec - old_ts.tv_nsec));
+    old_ts = ts;
+    if (diff > 0) {
+      if (diff < best) best = diff;
+      iters ++;
+    }
+    if (! (iters < 100)) break;
+  }
+  __FC_assert((best > 0) != 0,"local.c",136,"best > 0");
+  precision_quantum = 1.0e-9 * (double)best;
+  precision_log = 0;
+  while (best < 707106781) {
+    precision_log --;
+    best *= 2;
+  }
+  __FC_assert((precision_log >= -30) != 0,"local.c",147,
+              "precision_log >= -30");
+  return;
+}
+
+void LCL_Initialise(void)
+{
+  double tmp;
+  double tmp_1;
+  change_list.prev = & change_list;
+  change_list.next = change_list.prev;
+  dispersion_notify_list.prev = & dispersion_notify_list;
+  dispersion_notify_list.next = dispersion_notify_list.prev;
+  drv_read_freq = (double (*)(void))0;
+  drv_set_freq = (double (*)(double freq_ppm))0;
+  drv_accrue_offset = (void (*)(double offset, double corr_rate))0;
+  drv_offset_convert = (void (*)(struct timespec *raw, double *corr,
+                                 double *err))0;
+  current_freq_ppm = 0.0;
+  temp_comp_ppm = 0.0;
+  calculate_sys_precision();
+  max_freq_ppm = CNF_GetMaxDrift();
+  if (max_freq_ppm < 500000.0) tmp = max_freq_ppm; else tmp = 500000.0;
+  if (0.0 > tmp) max_freq_ppm = 0.0;
+  else {
+    double tmp_0;
+    if (max_freq_ppm < 500000.0) tmp_0 = max_freq_ppm; else tmp_0 = 500000.0;
+    max_freq_ppm = tmp_0;
+  }
+  tmp_1 = CNF_GetMaxClockError();
+  max_clock_error_0 = tmp_1 * 1e-6;
+  return;
+}
+
+void LCL_Finalise(void)
+{
+  while (change_list.next != & change_list) LCL_RemoveParameterChangeHandler
+                                            ((change_list.next)->handler,
+                                             (change_list.next)->anything);
+  while (dispersion_notify_list.next != & dispersion_notify_list) LCL_RemoveDispersionNotifyHandler
+                                                                  ((dispersion_notify_list.next)->handler,
+                                                                   (dispersion_notify_list.next)->anything);
+  return;
+}
+
+int LCL_GetSysPrecisionAsLog(void)
+{
+  return precision_log;
+}
+
+double LCL_GetSysPrecisionAsQuantum(void)
+{
+  return precision_quantum;
+}
+
+double LCL_GetMaxClockError(void)
+{
+  return max_clock_error_0;
+}
+
+void LCL_AddParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                   struct timespec *cooked,
+                                                   double dfreq,
+                                                   double doffset,
+                                                   LCL_ChangeType change_type,
+                                                   void *anything),
+                                   void *anything)
+{
+  ChangeListEntry *ptr;
+  ChangeListEntry *new_entry;
+  ptr = change_list.next;
+  while (ptr != & change_list) {
+    if (! (ptr->handler != handler)) 
+      if (! (ptr->anything != anything)) __FC_assert(0 != 0,"local.c",233,
+                                                     "0");
+    ptr = ptr->next;
+  }
+  new_entry = (ChangeListEntry *)Malloc(sizeof(ChangeListEntry));
+  new_entry->handler = handler;
+  new_entry->anything = anything;
+  new_entry->next = & change_list;
+  new_entry->prev = change_list.prev;
+  (change_list.prev)->next = new_entry;
+  change_list.prev = new_entry;
+  return;
+}
+
+void LCL_RemoveParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                      struct timespec *cooked,
+                                                      double dfreq,
+                                                      double doffset,
+                                                      LCL_ChangeType change_type,
+                                                      void *anything),
+                                      void *anything)
+{
+  ChangeListEntry *ptr;
+  int ok;
+  ptr = (ChangeListEntry *)0;
+  ok = 0;
+  ptr = change_list.next;
+  while (ptr != & change_list) {
+    if (ptr->handler == handler) 
+      if (ptr->anything == anything) {
+        ok = 1;
+        break;
+      }
+    ptr = ptr->next;
+  }
+  __FC_assert(ok != 0,"local.c",268,"ok");
+  (ptr->next)->prev = ptr->prev;
+  (ptr->prev)->next = ptr->next;
+  free((void *)ptr);
+  return;
+}
+
+int LCL_IsFirstParameterChangeHandler(void (*handler)(struct timespec *raw,
+                                                      struct timespec *cooked,
+                                                      double dfreq,
+                                                      double doffset,
+                                                      LCL_ChangeType change_type,
+                                                      void *anything))
+{
+  int __retres;
+  __retres = (change_list.next)->handler == handler;
+  return __retres;
+}
+
+static void invoke_parameter_change_handlers(struct timespec *raw,
+                                             struct timespec *cooked,
+                                             double dfreq, double doffset,
+                                             LCL_ChangeType change_type)
+{
+  ChangeListEntry *ptr;
+  ptr = change_list.next;
+  while (ptr != & change_list) {
+    (*(ptr->handler))(raw,cooked,dfreq,doffset,change_type,ptr->anything);
+    ptr = ptr->next;
+  }
+  return;
+}
+
+void LCL_AddDispersionNotifyHandler(void (*handler)(double dispersion,
+                                                    void *anything),
+                                    void *anything)
+{
+  DispersionNotifyListEntry *ptr;
+  DispersionNotifyListEntry *new_entry;
+  ptr = dispersion_notify_list.next;
+  while (ptr != & dispersion_notify_list) {
+    if (! (ptr->handler != handler)) 
+      if (! (ptr->anything != anything)) __FC_assert(0 != 0,"local.c",309,
+                                                     "0");
+    ptr = ptr->next;
+  }
+  new_entry = (DispersionNotifyListEntry *)Malloc(sizeof(DispersionNotifyListEntry));
+  new_entry->handler = handler;
+  new_entry->anything = anything;
+  new_entry->next = & dispersion_notify_list;
+  new_entry->prev = dispersion_notify_list.prev;
+  (dispersion_notify_list.prev)->next = new_entry;
+  dispersion_notify_list.prev = new_entry;
+  return;
+}
+
+extern void LCL_RemoveDispersionNotifyHandler(void (*handler)(double dispersion,
+                                                              void *anything),
+                                              void *anything)
+{
+  DispersionNotifyListEntry *ptr;
+  int ok;
+  ptr = (DispersionNotifyListEntry *)0;
+  ok = 0;
+  ptr = dispersion_notify_list.next;
+  while (ptr != & dispersion_notify_list) {
+    if (ptr->handler == handler) 
+      if (ptr->anything == anything) {
+        ok = 1;
+        break;
+      }
+    ptr = ptr->next;
+  }
+  __FC_assert(ok != 0,"local.c",345,"ok");
+  (ptr->next)->prev = ptr->prev;
+  (ptr->prev)->next = ptr->next;
+  free((void *)ptr);
+  return;
+}
+
+void LCL_ReadRawTime(struct timespec *ts)
+{
+  int tmp_0;
+  tmp_0 = clock_gettime(666,ts);
+  if (tmp_0 < 0) {
+    char *tmp;
+    tmp = strerror(__fc_errno);
+    {
+      char *__va_arg0 = tmp;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_FATAL,"clock_gettime() failed : %s",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  return;
+}
+
+void LCL_ReadCookedTime(struct timespec *result, double *err)
+{
+  struct timespec raw;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,result,err);
+  return;
+}
+
+void LCL_CookTime(struct timespec *raw, struct timespec *cooked, double *err)
+{
+  double correction;
+  LCL_GetOffsetCorrection(raw,& correction,err);
+  UTI_AddDoubleToTimespec(raw,correction,cooked);
+  return;
+}
+
+void LCL_GetOffsetCorrection(struct timespec *raw, double *correction,
+                             double *err)
+{
+  (*drv_offset_convert)(raw,correction,err);
+  return;
+}
+
+double LCL_ReadAbsoluteFrequency(void)
+{
+  double freq;
+  freq = current_freq_ppm;
+  if (temp_comp_ppm != 0.0) freq = (freq + temp_comp_ppm) / (1.0 - 1.0e-6 * temp_comp_ppm);
+  return freq;
+}
+
+static double clamp_freq(double freq)
+{
+  double __retres;
+  double tmp_1;
+  double tmp;
+  if (freq <= max_freq_ppm) 
+    if (freq >= - max_freq_ppm) {
+      __retres = freq;
+      goto return_label;
+    }
+  {
+    double __va_arg0 = freq;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_WARN,"Frequency %.1f ppm exceeds allowed maximum",
+                (void * const *)(__va_args));
+  }
+  if (freq < max_freq_ppm) tmp = freq; else tmp = max_freq_ppm;
+  ;
+  if (- max_freq_ppm > tmp) tmp_1 = - max_freq_ppm;
+  else {
+    double tmp_0;
+    if (freq < max_freq_ppm) tmp_0 = freq; else tmp_0 = max_freq_ppm;
+    tmp_1 = tmp_0;
+  }
+  __retres = tmp_1;
+  return_label: return __retres;
+}
+
+static int check_offset(struct timespec *now, double offset)
+{
+  int __retres;
+  int tmp;
+  tmp = UTI_IsTimeOffsetSane(now,- offset);
+  if (tmp) {
+    __retres = 1;
+    goto return_label;
+  }
+  {
+    double __va_arg0 = - offset;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_WARN,"Adjustment of %.1f seconds is invalid",
+                (void * const *)(__va_args));
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void LCL_SetAbsoluteFrequency(double afreq_ppm)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  double dfreq;
+  afreq_ppm = clamp_freq(afreq_ppm);
+  if (temp_comp_ppm != 0.0) afreq_ppm = afreq_ppm * (1.0 - 1.0e-6 * temp_comp_ppm) - temp_comp_ppm;
+  afreq_ppm = (*drv_set_freq)(afreq_ppm);
+  dfreq = (afreq_ppm - current_freq_ppm) / (1.0e6 - current_freq_ppm);
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  invoke_parameter_change_handlers(& raw,& cooked,dfreq,0.0,LCL_ChangeAdjust);
+  current_freq_ppm = afreq_ppm;
+  return;
+}
+
+void LCL_AccumulateDeltaFrequency(double dfreq)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  double old_freq_ppm;
+  old_freq_ppm = current_freq_ppm;
+  current_freq_ppm += dfreq * (1.0e6 - current_freq_ppm);
+  current_freq_ppm = clamp_freq(current_freq_ppm);
+  current_freq_ppm = (*drv_set_freq)(current_freq_ppm);
+  dfreq = (current_freq_ppm - old_freq_ppm) / (1.0e6 - old_freq_ppm);
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  invoke_parameter_change_handlers(& raw,& cooked,dfreq,0.0,LCL_ChangeAdjust);
+  return;
+}
+
+void LCL_AccumulateOffset(double offset, double corr_rate)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  int tmp;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  tmp = check_offset(& cooked,offset);
+  if (! tmp) goto return_label;
+  (*drv_accrue_offset)(offset,corr_rate);
+  invoke_parameter_change_handlers(& raw,& cooked,0.0,offset,
+                                   LCL_ChangeAdjust);
+  return_label: return;
+}
+
+int LCL_ApplyStepOffset(double offset)
+{
+  int __retres;
+  struct timespec raw;
+  struct timespec cooked;
+  int tmp;
+  int tmp_0;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  tmp = check_offset(& raw,offset);
+  if (! tmp) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp_0 = (*drv_apply_step_offset)(offset);
+  if (! tmp_0) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_ERR,"Could not step system clock",
+                  (void * const *)(__va_args));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  SMT_Reset(& cooked);
+  invoke_parameter_change_handlers(& raw,& cooked,0.0,offset,LCL_ChangeStep);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void LCL_NotifyExternalTimeStep(struct timespec *raw,
+                                struct timespec *cooked, double offset,
+                                double dispersion)
+{
+  invoke_parameter_change_handlers(raw,cooked,0.0,offset,
+                                   LCL_ChangeUnknownStep);
+  lcl_InvokeDispersionNotifyHandlers(dispersion);
+  return;
+}
+
+void LCL_NotifyLeap(int leap)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  SMT_Leap(& cooked,leap);
+  invoke_parameter_change_handlers(& raw,& cooked,0.0,(double)(- leap),
+                                   LCL_ChangeStep);
+  return;
+}
+
+void LCL_AccumulateFrequencyAndOffset(double dfreq, double doffset,
+                                      double corr_rate)
+{
+  struct timespec raw;
+  struct timespec cooked;
+  double old_freq_ppm;
+  int tmp;
+  LCL_ReadRawTime(& raw);
+  LCL_CookTime(& raw,& cooked,(double *)0);
+  tmp = check_offset(& cooked,doffset);
+  if (! tmp) goto return_label;
+  old_freq_ppm = current_freq_ppm;
+  current_freq_ppm += dfreq * (1.0e6 - current_freq_ppm);
+  current_freq_ppm = clamp_freq(current_freq_ppm);
+  current_freq_ppm = (*drv_set_freq)(current_freq_ppm);
+  dfreq = (current_freq_ppm - old_freq_ppm) / (1.0e6 - old_freq_ppm);
+  (*drv_accrue_offset)(doffset,corr_rate);
+  invoke_parameter_change_handlers(& raw,& cooked,dfreq,doffset,
+                                   LCL_ChangeAdjust);
+  return_label: return;
+}
+
+void lcl_InvokeDispersionNotifyHandlers(double dispersion)
+{
+  DispersionNotifyListEntry *ptr;
+  ptr = dispersion_notify_list.next;
+  while (ptr != & dispersion_notify_list) {
+    (*(ptr->handler))(dispersion,ptr->anything);
+    ptr = ptr->next;
+  }
+  return;
+}
+
+void lcl_RegisterSystemDrivers(double (*read_freq)(void),
+                               double (*set_freq)(double freq_ppm),
+                               void (*accrue_offset_0)(double offset,
+                                                       double corr_rate),
+                               int (*apply_step_offset_0)(double offset),
+                               void (*offset_convert_0)(struct timespec *raw,
+                                                        double *corr,
+                                                        double *err),
+                               void (*set_leap)(int leap, int tai_offset),
+                               void (*set_sync_status)(int synchronised,
+                                                       double est_error,
+                                                       double max_error))
+{
+  drv_read_freq = read_freq;
+  drv_set_freq = set_freq;
+  drv_accrue_offset = accrue_offset_0;
+  drv_apply_step_offset = apply_step_offset_0;
+  drv_offset_convert = offset_convert_0;
+  drv_set_leap = set_leap;
+  drv_set_sync_status = set_sync_status;
+  current_freq_ppm = (*drv_read_freq)();
+  return;
+}
+
+int LCL_MakeStep(void)
+{
+  int __retres;
+  struct timespec raw;
+  double correction;
+  int tmp;
+  int tmp_0;
+  LCL_ReadRawTime(& raw);
+  LCL_GetOffsetCorrection(& raw,& correction,(double *)0);
+  tmp = check_offset(& raw,- correction);
+  if (! tmp) {
+    __retres = 0;
+    goto return_label;
+  }
+  LCL_AccumulateOffset(correction,0.0);
+  tmp_0 = LCL_ApplyStepOffset(- correction);
+  if (! tmp_0) {
+    __retres = 0;
+    goto return_label;
+  }
+  {
+    double __va_arg0 = correction;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_WARN,"System clock was stepped by %.6f seconds",
+                (void * const *)(__va_args));
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int LCL_CanSystemLeap(void)
+{
+  int tmp;
+  if (drv_set_leap) tmp = 1; else tmp = 0;
+  return tmp;
+}
+
+void LCL_SetSystemLeap(int leap, int tai_offset)
+{
+  if (drv_set_leap) (*drv_set_leap)(leap,tai_offset);
+  return;
+}
+
+double LCL_SetTempComp(double comp)
+{
+  double __retres;
+  double uncomp_freq_ppm;
+  if (temp_comp_ppm == comp) {
+    __retres = comp;
+    goto return_label;
+  }
+  current_freq_ppm = (current_freq_ppm + temp_comp_ppm) / (1.0 - 1.0e-6 * temp_comp_ppm);
+  uncomp_freq_ppm = current_freq_ppm;
+  current_freq_ppm = current_freq_ppm * (1.0 - 1.0e-6 * comp) - comp;
+  current_freq_ppm = (*drv_set_freq)(current_freq_ppm);
+  temp_comp_ppm = (uncomp_freq_ppm - current_freq_ppm) / (1.0e-6 * uncomp_freq_ppm + 1.0);
+  __retres = temp_comp_ppm;
+  return_label: return __retres;
+}
+
+void LCL_SetSyncStatus(int synchronised, double est_error, double max_error)
+{
+  if (drv_set_sync_status) (*drv_set_sync_status)(synchronised,est_error,
+                                                  max_error);
+  return;
+}
+
+void *Malloc(size_t size)
+{
+  void *r;
+  r = malloc(size);
+  if (! r) 
+    if (size) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_FATAL,"Could not allocate memory",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+  return r;
+}
+
+void *Realloc(void *ptr, size_t size)
+{
+  void *r;
+  r = realloc(ptr,size);
+  if (! r) 
+    if (size) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_FATAL,"Could not allocate memory",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+  return r;
+}
+
+static size_t get_array_size(size_t nmemb, size_t size)
+{
+  size_t array_size;
+  array_size = nmemb * size;
+  if (nmemb > (size_t)0) 
+    if (array_size / nmemb != size) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_FATAL,"Could not allocate memory",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+  return array_size;
+}
+
+void *Malloc2(size_t nmemb, size_t size)
+{
+  void *tmp_0;
+  size_t tmp;
+  tmp = get_array_size(nmemb,size);
+  tmp_0 = Malloc(tmp);
+  return tmp_0;
+}
+
+void *Realloc2(void *ptr, size_t nmemb, size_t size)
+{
+  void *tmp_0;
+  size_t tmp;
+  tmp = get_array_size(nmemb,size);
+  ;
+  tmp_0 = Realloc(ptr,tmp);
+  return tmp_0;
+}
+
+char *Strdup(char const *s)
+{
+  char *__retres;
+  void *r;
+  r = (void *)strdup(s);
+  if (! r) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"Could not allocate memory",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  __retres = (char *)r;
+  return __retres;
+}
+
+static int address_family = 0;
+void DNS_SetAddressFamily(int family)
+{
+  address_family = family;
+  return;
+}
+
+DNS_Status DNS_Name2IPAddress(char const *name, IPAddr *ip_addrs,
+                              int max_addrs)
+{
+  DNS_Status __retres;
+  struct hostent *host;
+  int i;
+  if (address_family != 0) 
+    if (address_family != 1) {
+      __retres = DNS_Failure;
+      goto return_label;
+    }
+  if (max_addrs < 16) max_addrs = max_addrs; else max_addrs = 16;
+  host = gethostbyname(name);
+  if (host == (struct hostent *)0) {
+    if (h_errno == 2) {
+      __retres = DNS_TryAgain;
+      goto return_label;
+    }
+  }
+  else {
+    if (host->h_addrtype != 2) {
+      __retres = DNS_Failure;
+      goto return_label;
+    }
+    else 
+      if (! *(host->h_addr_list + 0)) {
+        __retres = DNS_Failure;
+        goto return_label;
+      }
+    i = 0;
+    while (1) {
+      if (*(host->h_addr_list + i)) {
+        if (! (i < max_addrs)) break;
+      }
+      else break;
+      (ip_addrs + i)->family = (unsigned short)1;
+      (ip_addrs + i)->addr.in4 = ntohl(*((uint32_t *)*(host->h_addr_list + i)));
+      i ++;
+    }
+    while (i < max_addrs) {
+      (ip_addrs + i)->family = (unsigned short)0;
+      i ++;
+    }
+    __retres = DNS_Success;
+    goto return_label;
+  }
+  __retres = DNS_TryAgain;
+  return_label: return __retres;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_1(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0);
+
+int DNS_IPAddress2Name(IPAddr *ip_addr, char *name, int len)
+{
+  int __retres;
+  struct hostent *host;
+  uint32_t addr;
+  int tmp;
+  char *result = (char *)0;
+  switch ((int)ip_addr->family) {
+    case 1: addr = htonl(ip_addr->addr.in4);
+    host = gethostbyaddr((void const *)(& addr),
+                         (unsigned int)sizeof(ip_addr),2);
+    break;
+    default: host = (struct hostent *)0;
+  }
+  if (host) result = host->h_name;
+  if (result == (char *)0) result = UTI_IPToString(ip_addr);
+  tmp = snprintf_va_1(name,(unsigned long)len,"%s",result);
+  ;
+  if (tmp >= len) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void DNS_Reload(void)
+{
+  res_init();
+  return;
+}
+
+void NIO_Initialise(int family);
+
+void NIO_Finalise(void);
+
+int NIO_OpenClientSocket(NTP_Remote_Address *remote_addr);
+
+int NIO_OpenServerSocket(NTP_Remote_Address *remote_addr);
+
+void NIO_CloseClientSocket(int sock_fd);
+
+void NIO_CloseServerSocket(int sock_fd);
+
+int NIO_IsServerSocket(int sock_fd);
+
+int NIO_IsServerConnectable(NTP_Remote_Address *remote_addr);
+
+int NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr,
+                   NTP_Local_Address *local_addr, int length, int process_tx);
+
+void SCH_Initialise(void);
+
+void SCH_Finalise(void);
+
+void SCH_AddFileHandler(int fd, int events,
+                        void (*handler)(int fd, int event,
+                                        SCH_ArbitraryArgument ),
+                        SCH_ArbitraryArgument arg);
+
+void SCH_RemoveFileHandler(int fd);
+
+void SCH_SetFileHandlerEvent(int fd, int event, int enable);
+
+void SCH_GetLastEventTime(struct timespec *cooked, double *err,
+                          struct timespec *raw);
+
+SCH_TimeoutID SCH_AddTimeout(struct timespec *ts,
+                             void (*handler)(SCH_ArbitraryArgument ),
+                             SCH_ArbitraryArgument arg);
+
+SCH_TimeoutID SCH_AddTimeoutByDelay(double delay,
+                                    void (*handler)(SCH_ArbitraryArgument ),
+                                    SCH_ArbitraryArgument arg);
+
+SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation,
+                                    double randomness,
+                                    SCH_TimeoutClass class,
+                                    void (*handler)(SCH_ArbitraryArgument ),
+                                    SCH_ArbitraryArgument arg);
+
+void SCH_RemoveTimeout(SCH_TimeoutID id);
+
+void SCH_MainLoop(void);
+
+void SCH_QuitProgram(void);
+
+static ARR_Instance recv_messages;
+static ARR_Instance recv_headers;
+static int server_sock_fd4;
+static int client_sock_fd4;
+static int server_sock_ref4;
+static int separate_client_sockets;
+static int permanent_server_sockets;
+static int initialised = 0;
+static void read_from_socket(int sock_fd, int event, void *anything);
+
+static int prepare_socket(int family, int port_number, int client_only)
+{
+  int __retres;
+  union sockaddr_in46 my_addr;
+  socklen_t my_addr_len;
+  int sock_fd;
+  IPAddr bind_address;
+  int tmp_8;
+  int events = 1;
+  int on_off = 1;
+  sock_fd = socket(family,2,0);
+  if (sock_fd < 0) {
+    if (! client_only) {
+      char *tmp;
+      char const *tmp_0;
+      tmp = strerror(__fc_errno);
+      tmp_0 = UTI_SockaddrFamilyToString(family);
+      {
+        char const *__va_arg0 = tmp_0;
+        char *__va_arg1 = tmp;
+        void *__va_args[2] = {& __va_arg0, & __va_arg1};
+        LOG_Message(LOGS_ERR,"Could not open %s NTP socket : %s",
+                    (void * const *)(__va_args));
+      }
+    }
+    __retres = -1;
+    goto return_label;
+  }
+  UTI_FdSetCloexec(sock_fd);
+  if (! client_only) {
+    int tmp_4;
+    tmp_4 = __va_fcntl_int(sock_fd,4,0x800);
+    if (tmp_4) ;
+  }
+  memset((void *)(& my_addr),0,sizeof(my_addr));
+  my_addr_len = (unsigned int)0;
+  switch (family) {
+    case 2:
+    if (! client_only) CNF_GetBindAddress(1,& bind_address);
+    else CNF_GetBindAcquisitionAddress(1,& bind_address);
+    if ((int)bind_address.family == 1) my_addr.in4.sin_addr.s_addr = htonl
+                                       (bind_address.addr.in4);
+    else 
+      if (port_number) my_addr.in4.sin_addr.s_addr = htonl((unsigned int)0);
+      else break;
+    my_addr.in4.sin_family = (unsigned short)family;
+    my_addr.in4.sin_port = htons((unsigned short)port_number);
+    my_addr_len = (unsigned int)sizeof(my_addr.in4);
+    break;
+    default: __FC_assert(0 != 0,"ntp_io.c",194,"0");
+  }
+  if (port_number) {
+    int tmp_5;
+    tmp_5 = setsockopt(sock_fd,1,2,(void const *)(& on_off),
+                       (unsigned int)sizeof(on_off));
+    if (tmp_5 < 0) {
+      {
+        char const *__va_arg0_25 = "SO_REUSEADDR";
+        void *__va_args_27[1] = {& __va_arg0_25};
+        LOG_Message(LOGS_ERR,"Could not set %s socket option",
+                    (void * const *)(__va_args_27));
+      }
+    }
+  }
+  if (! client_only) {
+    int tmp_6;
+    tmp_6 = setsockopt(sock_fd,1,6,(void const *)(& on_off),
+                       (unsigned int)sizeof(on_off));
+    if (tmp_6 < 0) {
+      {
+        char const *__va_arg0_29 = "SO_BROADCAST";
+        void *__va_args_31[1] = {& __va_arg0_29};
+        LOG_Message(LOGS_ERR,"Could not set %s socket option",
+                    (void * const *)(__va_args_31));
+      }
+    }
+  }
+  tmp_8 = setsockopt(sock_fd,1,35,(void const *)(& on_off),
+                     (unsigned int)sizeof(on_off));
+  if (tmp_8 < 0) {
+    int tmp_7;
+    tmp_7 = setsockopt(sock_fd,1,29,(void const *)(& on_off),
+                       (unsigned int)sizeof(on_off));
+    if (tmp_7 < 0) {
+      {
+        char const *__va_arg0_33 = "SO_TIMESTAMP";
+        void *__va_args_35[1] = {& __va_arg0_33};
+        LOG_Message(LOGS_ERR,"Could not set %s socket option",
+                    (void * const *)(__va_args_35));
+      }
+    }
+  }
+  if (my_addr_len > (socklen_t)0) {
+    int tmp_9;
+    tmp_9 = setsockopt(sock_fd,IPPROTO_IP,15,(void const *)(& on_off),
+                       (unsigned int)sizeof(on_off));
+    if (tmp_9 < 0) {
+      {
+        char const *__va_arg0_37 = "IP_FREEBIND";
+        void *__va_args_39[1] = {& __va_arg0_37};
+        LOG_Message(LOGS_ERR,"Could not set %s socket option",
+                    (void * const *)(__va_args_39));
+      }
+    }
+  }
+  if (family == 2) ;
+  if (my_addr_len > (socklen_t)0) {
+    int tmp_12;
+    tmp_12 = bind(sock_fd,(struct sockaddr const *)(& my_addr.u),my_addr_len);
+    if (tmp_12 < 0) {
+      char *tmp_10;
+      char const *tmp_11;
+      tmp_10 = strerror(__fc_errno);
+      tmp_11 = UTI_SockaddrFamilyToString(family);
+      {
+        char const *__va_arg0_41 = tmp_11;
+        char *__va_arg1_43 = tmp_10;
+        void *__va_args_45[2] = {& __va_arg0_41, & __va_arg1_43};
+        LOG_Message(LOGS_ERR,"Could not bind %s NTP socket : %s",
+                    (void * const *)(__va_args_45));
+      }
+      close(sock_fd);
+      __retres = -1;
+      goto return_label;
+    }
+  }
+  SCH_AddFileHandler(sock_fd,events,& read_from_socket,(void *)0);
+  __retres = sock_fd;
+  return_label: return __retres;
+}
+
+static int prepare_separate_client_socket(int family)
+{
+  int __retres;
+  switch (family) {
+    int tmp;
+    case 1: tmp = prepare_socket(2,0,1);
+    __retres = tmp;
+    goto return_label;
+    default: __retres = -1;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static int connect_socket(int sock_fd, NTP_Remote_Address *remote_addr)
+{
+  int __retres;
+  union sockaddr_in46 addr;
+  socklen_t addr_len;
+  int tmp;
+  int tmp_2;
+  tmp = UTI_IPAndPortToSockaddr(& remote_addr->ip_addr,remote_addr->port,
+                                & addr.u);
+  addr_len = (unsigned int)tmp;
+  __FC_assert(addr_len != (socklen_t)0,"ntp_io.c",305,"addr_len");
+  tmp_2 = connect(sock_fd,(struct sockaddr const *)(& addr.u),addr_len);
+  if (tmp_2 < 0) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static void close_socket(int sock_fd)
+{
+  if (sock_fd == -1) goto return_label;
+  SCH_RemoveFileHandler(sock_fd);
+  close(sock_fd);
+  return_label: return;
+}
+
+static void prepare_buffers(unsigned int n)
+{
+  struct MessageHeader *hdr;
+  struct Message *msg;
+  unsigned int i;
+  i = (unsigned int)0;
+  while (i < n) {
+    msg = (struct Message *)ARR_GetElement(recv_messages,i);
+    hdr = (struct MessageHeader *)ARR_GetElement(recv_headers,i);
+    msg->iov.iov_base = (void *)(& msg->buf);
+    msg->iov.iov_len = sizeof(msg->buf);
+    hdr->msg_hdr.msg_name = (void *)(& msg->name);
+    hdr->msg_hdr.msg_namelen = (unsigned int)sizeof(msg->name);
+    hdr->msg_hdr.msg_iov = & msg->iov;
+    hdr->msg_hdr.msg_iovlen = 1;
+    hdr->msg_hdr.msg_control = (void *)(& msg->cmsgbuf);
+    hdr->msg_hdr.msg_controllen = (unsigned int)sizeof(msg->cmsgbuf);
+    hdr->msg_hdr.msg_flags = 0;
+    hdr->msg_len = (unsigned int)0;
+    i ++;
+  }
+  return;
+}
+
+void NIO_Initialise(int family)
+{
+  int server_port;
+  int client_port;
+  int tmp_0;
+  __FC_assert(! initialised != 0,"ntp_io.c",365,"!initialised");
+  initialised = 1;
+  {
+    CNF_HwTsInterface *conf_iface;
+    int tmp;
+    tmp = CNF_GetHwTsInterface((unsigned int)0,& conf_iface);
+    if (tmp) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_FATAL,"HW timestamping not supported",
+                    (void * const *)(__va_args));
+      }
+      exit(1);
+    }
+  }
+  recv_messages = ARR_CreateInstance((unsigned int)sizeof(struct Message));
+  ARR_SetSize(recv_messages,(unsigned int)1);
+  recv_headers = ARR_CreateInstance((unsigned int)sizeof(struct MessageHeader));
+  ARR_SetSize(recv_headers,(unsigned int)1);
+  prepare_buffers((unsigned int)1);
+  server_port = CNF_GetNTPPort();
+  client_port = CNF_GetAcquisitionPort();
+  separate_client_sockets = client_port < 0;
+  if (client_port < 0) client_port = 0;
+  if (! server_port) tmp_0 = 1;
+  else 
+    if (! separate_client_sockets) 
+      if (client_port == server_port) tmp_0 = 1; else tmp_0 = 0;
+    else tmp_0 = 0;
+  permanent_server_sockets = tmp_0;
+  server_sock_fd4 = -1;
+  client_sock_fd4 = -1;
+  server_sock_ref4 = 0;
+  if (family == 0) goto _LOR;
+  else 
+    if (family == 1) {
+      _LOR:
+      {
+        if (permanent_server_sockets) 
+          if (server_port) server_sock_fd4 = prepare_socket(2,server_port,0);
+        if (! separate_client_sockets) 
+          if (client_port != server_port) client_sock_fd4 = prepare_socket
+                                          (2,client_port,1);
+          else 
+            if (! server_port) client_sock_fd4 = prepare_socket(2,
+                                                                client_port,
+                                                                1);
+            else client_sock_fd4 = server_sock_fd4;
+      }
+    }
+  if (server_port) {
+    if (server_sock_fd4 == -1) {
+      if (permanent_server_sockets) goto _LOR_0; else goto _LAND_0;
+    }
+    else goto _LAND_0;
+  }
+  else 
+    _LAND_0:
+    if (! separate_client_sockets) 
+      if (client_sock_fd4 == -1) {
+        _LOR_0:
+        {
+          {
+            void *__va_args_9[1] = {(void *)0};
+            LOG_Message(LOGS_FATAL,"Could not open NTP sockets",
+                        (void * const *)(__va_args_9));
+          }
+          exit(1);
+        }
+      }
+  return;
+}
+
+void NIO_Finalise(void)
+{
+  if (server_sock_fd4 != client_sock_fd4) close_socket(client_sock_fd4);
+  close_socket(server_sock_fd4);
+  client_sock_fd4 = -1;
+  server_sock_fd4 = client_sock_fd4;
+  ARR_DestroyInstance(recv_headers);
+  ARR_DestroyInstance(recv_messages);
+  initialised = 0;
+  return;
+}
+
+int NIO_OpenClientSocket(NTP_Remote_Address *remote_addr)
+{
+  int __retres;
+  if (separate_client_sockets) {
+    int tmp_0;
+    int sock_fd =
+      prepare_separate_client_socket((int)remote_addr->ip_addr.family);
+    if (sock_fd == -1) {
+      __retres = -1;
+      goto return_label;
+    }
+    tmp_0 = connect_socket(sock_fd,remote_addr);
+    if (! tmp_0) {
+      close_socket(sock_fd);
+      __retres = -1;
+      goto return_label;
+    }
+    __retres = sock_fd;
+    goto return_label;
+  }
+  else 
+    switch ((int)remote_addr->ip_addr.family) {
+      case 1: ;
+      __retres = client_sock_fd4;
+      goto return_label;
+      default: __retres = -1;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+int NIO_OpenServerSocket(NTP_Remote_Address *remote_addr)
+{
+  int __retres;
+  switch ((int)remote_addr->ip_addr.family) {
+    case 1: ;
+    if (permanent_server_sockets) {
+      __retres = server_sock_fd4;
+      goto return_label;
+    }
+    if (server_sock_fd4 == -1) {
+      int tmp;
+      tmp = CNF_GetNTPPort();
+      server_sock_fd4 = prepare_socket(2,tmp,0);
+    }
+    if (server_sock_fd4 != -1) server_sock_ref4 ++;
+    __retres = server_sock_fd4;
+    goto return_label;
+    default: __retres = -1;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+void NIO_CloseClientSocket(int sock_fd)
+{
+  if (separate_client_sockets) close_socket(sock_fd);
+  return;
+}
+
+void NIO_CloseServerSocket(int sock_fd)
+{
+  if (permanent_server_sockets) goto return_label;
+  else 
+    if (sock_fd == -1) goto return_label;
+  if (sock_fd == server_sock_fd4) {
+    server_sock_ref4 --;
+    if (server_sock_ref4 <= 0) {
+      close_socket(server_sock_fd4);
+      server_sock_fd4 = -1;
+    }
+  }
+  else __FC_assert(0 != 0,"ntp_io.c",558,"0");
+  return_label: return;
+}
+
+int NIO_IsServerSocket(int sock_fd)
+{
+  int tmp;
+  if (sock_fd != -1) 
+    if (sock_fd == server_sock_fd4) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  return tmp;
+}
+
+int NIO_IsServerConnectable(NTP_Remote_Address *remote_addr)
+{
+  int __retres;
+  int sock_fd;
+  int r;
+  sock_fd = prepare_separate_client_socket((int)remote_addr->ip_addr.family);
+  if (sock_fd == -1) {
+    __retres = 0;
+    goto return_label;
+  }
+  r = connect_socket(sock_fd,remote_addr);
+  close_socket(sock_fd);
+  __retres = r;
+  return_label: return __retres;
+}
+
+static void process_message(struct msghdr *hdr, int length, int sock_fd)
+{
+  NTP_Remote_Address remote_addr;
+  NTP_Local_Address local_addr;
+  NTP_Local_Timestamp local_ts;
+  struct timespec sched_ts;
+  struct cmsghdr *cmsg;
+  SCH_GetLastEventTime(& local_ts.ts,& local_ts.err,(struct timespec *)0);
+  local_ts.source = NTP_TS_DAEMON;
+  sched_ts = local_ts.ts;
+  if ((unsigned long)hdr->msg_namelen > sizeof(union sockaddr_in46)) 
+    goto return_label;
+  if ((unsigned long)hdr->msg_namelen >= sizeof(((struct sockaddr *)hdr->msg_name)->sa_family)) 
+    UTI_SockaddrToIPAndPort((struct sockaddr *)hdr->msg_name,
+                            & remote_addr.ip_addr,& remote_addr.port);
+  else {
+    remote_addr.ip_addr.family = (unsigned short)0;
+    remote_addr.port = (unsigned short)0;
+  }
+  local_addr.ip_addr.family = (unsigned short)0;
+  local_addr.if_index = -1;
+  local_addr.sock_fd = sock_fd;
+  if (hdr->msg_flags & 0x20) goto return_label;
+  if (hdr->msg_flags & 0x8) ;
+  cmsg = CMSG_FIRSTHDR(hdr);
+  while (cmsg) {
+    if (cmsg->cmsg_level == 1) 
+      if (cmsg->cmsg_type == 29) {
+        struct timeval tv;
+        struct timespec ts;
+        unsigned char *tmp_0;
+        tmp_0 = CMSG_DATA(cmsg);
+        memcpy((void *)(& tv),(void const *)tmp_0,sizeof(tv));
+        UTI_TimevalToTimespec(& tv,& ts);
+        LCL_CookTime(& ts,& local_ts.ts,& local_ts.err);
+        local_ts.source = NTP_TS_KERNEL;
+      }
+    if (cmsg->cmsg_level == 1) 
+      if (cmsg->cmsg_type == 35) {
+        struct timespec ts_0;
+        unsigned char *tmp_1;
+        tmp_1 = CMSG_DATA(cmsg);
+        memcpy((void *)(& ts_0),(void const *)tmp_1,sizeof(ts_0));
+        LCL_CookTime(& ts_0,& local_ts.ts,& local_ts.err);
+        local_ts.source = NTP_TS_KERNEL;
+      }
+    cmsg = CMSG_NXTHDR(hdr,cmsg);
+  }
+  if (length < 48) goto return_label;
+  else 
+    if ((unsigned long)length > sizeof(NTP_Receive_Buffer)) goto return_label;
+  NSR_ProcessRx(& remote_addr,& local_addr,& local_ts,
+                (NTP_Packet *)(hdr->msg_iov + 0)->iov_base,length);
+  return_label: return;
+}
+
+static void read_from_socket(int sock_fd, int event, void *anything)
+{
+  struct MessageHeader *hdr;
+  unsigned int i;
+  unsigned int n;
+  int status;
+  ssize_t tmp;
+  int flags = 0;
+  hdr = (struct MessageHeader *)ARR_GetElements(recv_headers);
+  n = ARR_GetSize(recv_headers);
+  __FC_assert((n >= (unsigned int)1) != 0,"ntp_io.c",727,"n >= 1");
+  if (event == 4) __FC_assert(0 != 0,"ntp_io.c",733,"0");
+  n = (unsigned int)1;
+  tmp = recvmsg(sock_fd,& (hdr + 0)->msg_hdr,flags);
+  status = (int)tmp;
+  if (status >= 0) (hdr + 0)->msg_len = (unsigned int)status;
+  if (status < 0) goto return_label;
+  i = (unsigned int)0;
+  while (i < n) {
+    hdr = (struct MessageHeader *)ARR_GetElement(recv_headers,i);
+    process_message(& hdr->msg_hdr,(int)hdr->msg_len,sock_fd);
+    i ++;
+  }
+  prepare_buffers(n);
+  return_label: return;
+}
+
+int NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr,
+                   NTP_Local_Address *local_addr, int length, int process_tx)
+{
+  int __retres;
+  union sockaddr_in46 remote;
+  struct msghdr msg;
+  struct iovec iov;
+  struct cmsghdr *cmsg;
+  struct cmsghdr cmsgbuf[(unsigned long)256 / sizeof(struct cmsghdr)];
+  int cmsglen;
+  int tmp_1;
+  ssize_t tmp_5;
+  socklen_t addrlen = (unsigned int)0;
+  __FC_assert(initialised != 0,"ntp_io.c",791,"initialised");
+  if (local_addr->sock_fd == -1) {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp_1 = NIO_IsServerSocket(local_addr->sock_fd);
+  if (tmp_1) goto _LOR;
+  else 
+    if (! separate_client_sockets) {
+      _LOR:
+      {
+        int tmp_0;
+        tmp_0 = UTI_IPAndPortToSockaddr(& remote_addr->ip_addr,
+                                        remote_addr->port,& remote.u);
+        addrlen = (unsigned int)tmp_0;
+        if (! addrlen) {
+          __retres = 0;
+          goto return_label;
+        }
+      }
+    }
+  if (addrlen) {
+    msg.msg_name = (void *)(& remote.u);
+    msg.msg_namelen = addrlen;
+  }
+  else {
+    msg.msg_name = (void *)0;
+    msg.msg_namelen = (unsigned int)0;
+  }
+  iov.iov_base = (void *)packet;
+  iov.iov_len = (unsigned long)length;
+  msg.msg_iov = & iov;
+  msg.msg_iovlen = 1;
+  msg.msg_control = (void *)(cmsgbuf);
+  msg.msg_controllen = (unsigned int)sizeof(cmsgbuf);
+  msg.msg_flags = 0;
+  cmsglen = 0;
+  if ((int)local_addr->ip_addr.family == 1) ;
+  msg.msg_controllen = (unsigned int)cmsglen;
+  if (! cmsglen) msg.msg_control = (void *)0;
+  tmp_5 = sendmsg(local_addr->sock_fd,(struct msghdr const *)(& msg),0);
+  if (tmp_5 < (ssize_t)0) {
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int are_we_synchronised;
+static int enable_local_stratum;
+static int local_stratum_0;
+static int local_orphan_0;
+static double local_distance_0;
+static NTP_Leap our_leap_status;
+static int our_leap_sec;
+static int our_tai_offset;
+static int our_stratum;
+static uint32_t our_ref_id;
+static IPAddr our_ref_ip;
+static struct timespec our_ref_time;
+static double our_skew;
+static double our_residual_freq;
+static double our_root_delay;
+static double our_root_dispersion;
+static double max_update_skew_0;
+static double last_offset;
+static double avg2_offset;
+static int avg2_moving;
+static double correction_time_ratio_0;
+static int initialised_0 = 0;
+static REF_Mode mode;
+static int make_step_limit_0;
+static double make_step_threshold_0;
+static int max_offset_delay_0;
+static int max_offset_ignore_0;
+static double max_offset_0;
+static double log_change_threshold_0;
+static int do_mail_change;
+static double mail_change_threshold_0;
+static char *mail_change_user;
+static void (*mode_end_handler)(int result) = (void (*)(int result))0;
+static char *drift_file_0 = (char *)0;
+static double drift_file_age;
+static void update_drift_file(double freq_ppm, double skew);
+
+static REF_LeapMode leap_mode;
+static int leap_in_progress;
+static SCH_TimeoutID leap_timeout_id;
+static char *leap_tzname;
+static LOG_FileID logfileid;
+static int fb_drift_min_0;
+static int fb_drift_max_0;
+static struct fb_drift *fb_drifts = (struct fb_drift *)0;
+static int next_fb_drift;
+static SCH_TimeoutID fb_drift_timeout_id;
+static struct timespec last_ref_update;
+static double last_ref_update_interval;
+static NTP_Leap get_tz_leap(time_t when, int *tai_offset);
+
+static void update_leap_status(NTP_Leap leap, time_t now, int reset);
+
+static void handle_slew(struct timespec *raw, struct timespec *cooked,
+                        double dfreq, double doffset,
+                        LCL_ChangeType change_type, void *anything)
+{
+  double delta;
+  struct timespec now;
+  int tmp;
+  tmp = UTI_IsZeroTimespec(& our_ref_time);
+  if (! tmp) UTI_AdjustTimespec(& our_ref_time,cooked,& our_ref_time,& delta,
+                                dfreq,doffset);
+  if (change_type == (unsigned int)LCL_ChangeUnknownStep) UTI_ZeroTimespec
+                                                          (& last_ref_update);
+  else 
+    if (last_ref_update.tv_sec) UTI_AdjustTimespec(& last_ref_update,cooked,
+                                                   & last_ref_update,& delta,
+                                                   dfreq,doffset);
+  if (change_type != (unsigned int)LCL_ChangeAdjust) 
+    if (our_leap_sec) 
+      if (! leap_in_progress) {
+        LCL_ReadRawTime(& now);
+        update_leap_status(our_leap_status,now.tv_sec,1);
+      }
+  return;
+}
+
+/*@ requires valid_read_string(format);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, stream->__fc_FILE_data, *param1, *param0;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..)));
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..)));
+ */
+int fscanf_va_1(FILE * __restrict stream, char const * __restrict format,
+                double *param0, double *param1);
+
+void REF_Initialise(void)
+{
+  FILE *in;
+  double file_freq_ppm;
+  double file_skew_ppm;
+  double our_frequency_ppm;
+  int tai_offset;
+  int tmp_0;
+  double tmp_3;
+  double tmp_2;
+  mode = REF_ModeNormal;
+  are_we_synchronised = 0;
+  our_leap_status = LEAP_Unsynchronised;
+  our_leap_sec = 0;
+  our_tai_offset = 0;
+  initialised_0 = 1;
+  our_root_dispersion = 1.0;
+  our_root_delay = 1.0;
+  our_frequency_ppm = 0.0;
+  our_skew = 1.0;
+  our_residual_freq = 0.0;
+  drift_file_age = 0.0;
+  drift_file_0 = CNF_GetDriftFile();
+  if (drift_file_0) {
+    in = fopen((char const *)drift_file_0,"r");
+    if (in) {
+      int tmp;
+      tmp = fscanf_va_1(in,"%lf%lf",& file_freq_ppm,& file_skew_ppm);
+      if (tmp == 2) {
+        our_frequency_ppm = file_freq_ppm;
+        our_skew = 1.0e-6 * file_skew_ppm;
+        if (our_skew < 1.0e-12) our_skew = 1.0e-12;
+        {
+          double __va_arg0 = file_freq_ppm;
+          double __va_arg1 = file_skew_ppm;
+          char *__va_arg2 = drift_file_0;
+          void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2};
+          LOG_Message(LOGS_INFO,"Frequency %.3f +/- %.3f ppm read from %s",
+                      (void * const *)(__va_args));
+        }
+        LCL_SetAbsoluteFrequency(our_frequency_ppm);
+      }
+      else {
+        {
+          char *__va_arg0_20 = drift_file_0;
+          void *__va_args_22[1] = {& __va_arg0_20};
+          LOG_Message(LOGS_WARN,
+                      "Could not read valid frequency and skew from driftfile %s",
+                      (void * const *)(__va_args_22));
+        }
+      }
+      fclose(in);
+    }
+  }
+  if (our_frequency_ppm == 0.0) {
+    our_frequency_ppm = LCL_ReadAbsoluteFrequency();
+    if (our_frequency_ppm != 0.0) {
+      {
+        double __va_arg0_24 = our_frequency_ppm;
+        void *__va_args_26[1] = {& __va_arg0_24};
+        LOG_Message(LOGS_INFO,"Initial frequency %.3f ppm",
+                    (void * const *)(__va_args_26));
+      }
+    }
+  }
+  tmp_0 = CNF_GetLogTracking();
+  if (tmp_0) logfileid = LOG_FileOpen("tracking",
+                                      "   Date (UTC) Time     IP Address   St   Freq ppm   Skew ppm     Offset L Co  Offset sd Rem. corr. Root delay Root disp. Max. error");
+  else logfileid = -1;
+  tmp_2 = CNF_GetMaxUpdateSkew();
+  tmp_3 = fabs(tmp_2);
+  max_update_skew_0 = tmp_3 * 1.0e-6;
+  correction_time_ratio_0 = CNF_GetCorrectionTimeRatio();
+  enable_local_stratum = CNF_AllowLocalReference(& local_stratum_0,
+                                                 & local_orphan_0,
+                                                 & local_distance_0);
+  leap_timeout_id = (unsigned int)0;
+  leap_in_progress = 0;
+  leap_mode = CNF_GetLeapSecMode();
+  if (leap_mode == (unsigned int)REF_LeapModeSystem) {
+    int tmp_4;
+    tmp_4 = LCL_CanSystemLeap();
+    if (! tmp_4) leap_mode = REF_LeapModeStep;
+  }
+  leap_tzname = CNF_GetLeapSecTimezone();
+  if (leap_tzname) {
+    NTP_Leap tmp_5;
+    tmp_5 = get_tz_leap((long)1341014400,& tai_offset);
+    if (tmp_5 == (unsigned int)LEAP_InsertSecond) {
+      if (tai_offset == 34) {
+        NTP_Leap tmp_6;
+        tmp_6 = get_tz_leap((long)1356912000,& tai_offset);
+        if (tmp_6 == (unsigned int)LEAP_Normal) {
+          if (tai_offset == 35) {
+            {
+              char *__va_arg0_28 = leap_tzname;
+              void *__va_args_30[1] = {& __va_arg0_28};
+              LOG_Message(LOGS_INFO,
+                          "Using %s timezone to obtain leap second data",
+                          (void * const *)(__va_args_30));
+            }
+          }
+          else goto _LAND_1;
+        }
+        else goto _LAND_1;
+      }
+      else goto _LAND_1;
+    }
+    else {
+      _LAND_1:
+      {
+        {
+          char *__va_arg0_32 = leap_tzname;
+          void *__va_args_34[1] = {& __va_arg0_32};
+          LOG_Message(LOGS_WARN,
+                      "Timezone %s failed leap second check, ignoring",
+                      (void * const *)(__va_args_34));
+        }
+        leap_tzname = (char *)0;
+      }
+    }
+  }
+  CNF_GetMakeStep(& make_step_limit_0,& make_step_threshold_0);
+  CNF_GetMaxChange(& max_offset_delay_0,& max_offset_ignore_0,& max_offset_0);
+  CNF_GetMailOnChange(& do_mail_change,& mail_change_threshold_0,
+                      & mail_change_user);
+  log_change_threshold_0 = CNF_GetLogChange();
+  CNF_GetFallbackDrifts(& fb_drift_min_0,& fb_drift_max_0);
+  if (fb_drift_max_0 >= fb_drift_min_0) 
+    if (fb_drift_min_0 > 0) {
+      fb_drifts = (struct fb_drift *)Malloc2((unsigned long)((fb_drift_max_0 - fb_drift_min_0) + 1),
+                                             sizeof(struct fb_drift));
+      memset((void *)fb_drifts,0,
+             sizeof(struct fb_drift) * (unsigned long)((fb_drift_max_0 - fb_drift_min_0) + 1));
+      next_fb_drift = 0;
+      fb_drift_timeout_id = (unsigned int)0;
+    }
+  UTI_ZeroTimespec(& our_ref_time);
+  UTI_ZeroTimespec(& last_ref_update);
+  last_ref_update_interval = 0.0;
+  LCL_AddParameterChangeHandler(& handle_slew,(void *)0);
+  REF_SetUnsynchronised();
+  return;
+}
+
+void REF_Finalise(void)
+{
+  update_leap_status(LEAP_Unsynchronised,(long)0,0);
+  if (drift_file_0) {
+    double tmp;
+    ;
+    tmp = LCL_ReadAbsoluteFrequency();
+    update_drift_file(tmp,our_skew);
+  }
+  free((void *)fb_drifts);
+  initialised_0 = 0;
+  return;
+}
+
+void REF_SetMode(REF_Mode new_mode)
+{
+  mode = new_mode;
+  return;
+}
+
+REF_Mode REF_GetMode(void)
+{
+  return mode;
+}
+
+void REF_SetModeEndHandler(void (*handler)(int result))
+{
+  mode_end_handler = handler;
+  return;
+}
+
+REF_LeapMode REF_GetLeapMode(void)
+{
+  return leap_mode;
+}
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param1),
+            (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param1, param0;
+ */
+int fprintf_va_2(FILE * __restrict stream, char const * __restrict format,
+                 double param0, double param1);
+
+static void update_drift_file(double freq_ppm, double skew)
+{
+  struct stat buf;
+  char *temp_drift_file;
+  FILE *out;
+  int r1;
+  int r2;
+  void *tmp_0;
+  size_t tmp;
+  int tmp_3;
+  int tmp_4;
+  tmp = strlen((char const *)drift_file_0);
+  tmp_0 = Malloc(tmp + (size_t)8);
+  temp_drift_file = (char *)tmp_0;
+  if (! temp_drift_file) goto return_label;
+  strcpy(temp_drift_file,(char const *)drift_file_0);
+  strcat(temp_drift_file,".tmp");
+  out = fopen((char const *)temp_drift_file,"w");
+  if (! out) {
+    free((void *)temp_drift_file);
+    {
+      char *__va_arg0 = drift_file_0;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_WARN,
+                  "Could not open temporary driftfile %s.tmp for writing",
+                  (void * const *)(__va_args));
+    }
+    goto return_label;
+  }
+  r1 = fprintf_va_2(out,"%20.6f %20.6f\n",freq_ppm,1.0e6 * skew);
+  r2 = fclose(out);
+  if (r1 < 0) goto _LOR;
+  else 
+    if (r2) {
+      _LOR:
+      {
+        free((void *)temp_drift_file);
+        {
+          char *__va_arg0_17 = drift_file_0;
+          void *__va_args_19[1] = {& __va_arg0_17};
+          LOG_Message(LOGS_WARN,
+                      "Could not write to temporary driftfile %s.tmp",
+                      (void * const *)(__va_args_19));
+        }
+        goto return_label;
+      }
+    }
+  tmp_3 = stat((char const *)drift_file_0,& buf);
+  if (! tmp_3) {
+    int tmp_1;
+    tmp_1 = chown((char const *)temp_drift_file,buf.st_uid,buf.st_gid);
+    if (tmp_1) goto _LOR_0;
+    else {
+      int tmp_2;
+      tmp_2 = chmod((char const *)temp_drift_file,
+                    buf.st_mode & (unsigned int)0777);
+      if (tmp_2) {
+        _LOR_0:
+        {
+          char *__va_arg0_21 = drift_file_0;
+          void *__va_args_23[1] = {& __va_arg0_21};
+          LOG_Message(LOGS_WARN,
+                      "Could not change ownership or permissions of temporary driftfile %s.tmp",
+                      (void * const *)(__va_args_23));
+        }
+      }
+    }
+  }
+  tmp_4 = rename((char const *)temp_drift_file,(char const *)drift_file_0);
+  if (tmp_4) {
+    unlink((char const *)temp_drift_file);
+    free((void *)temp_drift_file);
+    {
+      char *__va_arg0_25 = drift_file_0;
+      char *__va_arg1 = drift_file_0;
+      void *__va_args_28[2] = {& __va_arg0_25, & __va_arg1};
+      LOG_Message(LOGS_WARN,
+                  "Could not replace old driftfile %s with new one %s.tmp",
+                  (void * const *)(__va_args_28));
+    }
+    goto return_label;
+  }
+  free((void *)temp_drift_file);
+  return_label: return;
+}
+
+static void update_fb_drifts(double freq_ppm, double update_interval)
+{
+  int i;
+  int secs;
+  __FC_assert(are_we_synchronised != 0,"reference.c",398,
+              "are_we_synchronised");
+  if (next_fb_drift > 0) next_fb_drift = 0;
+  SCH_RemoveTimeout(fb_drift_timeout_id);
+  fb_drift_timeout_id = (unsigned int)0;
+  if (update_interval < 1.0) goto return_label;
+  else 
+    if (update_interval > last_ref_update_interval * 4.0) goto return_label;
+  i = 0;
+  while (i < (fb_drift_max_0 - fb_drift_min_0) + 1) {
+    secs = 1 << (i + fb_drift_min_0);
+    if ((fb_drifts + i)->secs < (double)secs) {
+      (fb_drifts + i)->freq = ((fb_drifts + i)->freq * (fb_drifts + i)->secs + 
+                               (update_interval * 0.5) * freq_ppm) / (
+                              update_interval * 0.5 + (fb_drifts + i)->secs);
+      (fb_drifts + i)->secs += update_interval * 0.5;
+    }
+    else {
+      double tmp;
+      tmp = exp(update_interval / (double)secs);
+      (fb_drifts + i)->freq += ((double)1 - 1.0 / tmp) * (freq_ppm - (
+                                                          fb_drifts + i)->freq);
+    }
+    i ++;
+  }
+  return_label: return;
+}
+
+static void fb_drift_timeout(void *arg)
+{
+  int tmp;
+  if (next_fb_drift >= fb_drift_min_0) 
+    if (next_fb_drift <= fb_drift_max_0) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  __FC_assert(tmp != 0,"reference.c",441,
+              "next_fb_drift >= fb_drift_min && next_fb_drift <= fb_drift_max");
+  fb_drift_timeout_id = (unsigned int)0;
+  LCL_SetAbsoluteFrequency((fb_drifts + (next_fb_drift - fb_drift_min_0))->freq);
+  REF_SetUnsynchronised();
+  return;
+}
+
+static void schedule_fb_drift(struct timespec *now)
+{
+  int i;
+  int c;
+  int secs;
+  double unsynchronised;
+  struct timespec when;
+  if (fb_drift_timeout_id) goto return_label;
+  unsynchronised = UTI_DiffTimespecsToDouble(now,& last_ref_update);
+  secs = 0;
+  c = secs;
+  i = fb_drift_min_0;
+  while (i <= fb_drift_max_0) {
+    secs = 1 << i;
+    if ((fb_drifts + (i - fb_drift_min_0))->secs < (double)secs) goto __Cont;
+    if (unsynchronised < (double)secs) 
+      if (i > next_fb_drift) break;
+    c = i;
+    __Cont: i ++;
+  }
+  if (c > next_fb_drift) {
+    LCL_SetAbsoluteFrequency((fb_drifts + (c - fb_drift_min_0))->freq);
+    next_fb_drift = c;
+  }
+  if (i <= fb_drift_max_0) {
+    next_fb_drift = i;
+    UTI_AddDoubleToTimespec(now,(double)secs - unsynchronised,& when);
+    fb_drift_timeout_id = SCH_AddTimeout(& when,& fb_drift_timeout,(void *)0);
+  }
+  return_label: return;
+}
+
+static void end_ref_mode(int result)
+{
+  mode = REF_ModeIgnore;
+  if (mode_end_handler) (*mode_end_handler)(result);
+  return;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_2(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0);
+
+/*@ requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..)));
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int fprintf_va_3(FILE * __restrict stream, char const * __restrict format,
+                 char *param0);
+
+/*@ requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: *(param0 + (0 ..)));
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int fprintf_va_4(FILE * __restrict stream, char const * __restrict format,
+                 char *param0);
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param1),
+            (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param1, param0;
+ */
+int fprintf_va_5(FILE * __restrict stream, char const * __restrict format,
+                 double param0, double param1);
+
+static void maybe_log_offset(double offset, time_t now)
+{
+  double abs_offset;
+  FILE *p;
+  char buffer[255];
+  char host[255];
+  struct tm *tm;
+  abs_offset = fabs(offset);
+  if (abs_offset > log_change_threshold_0) {
+    {
+      double __va_arg0 = - offset;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_WARN,
+                  "System clock wrong by %.6f seconds, adjustment started",
+                  (void * const *)(__va_args));
+    }
+  }
+  if (do_mail_change) 
+    if (abs_offset > mail_change_threshold_0) {
+      snprintf_va_2(buffer,sizeof(buffer),"%s -t",
+                    (char *)"/usr/lib/sendmail");
+      p = popen((char const *)(buffer),"w");
+      if (p) {
+        int tmp;
+        tmp = gethostname(host,sizeof(host));
+        if (tmp < 0) strcpy(host,"<UNKNOWN>");
+        host[sizeof(host) - (unsigned long)1] = (char)'\000';
+        fprintf_va_3(p,"To: %s\n",mail_change_user);
+        fprintf_va_4(p,
+                     "Subject: chronyd reports change to system clock on node [%s]\n",
+                     host);
+        fputs("\n",p);
+        tm = localtime((time_t const *)(& now));
+        if (tm) {
+          strftime(buffer,sizeof(buffer),
+                   "On %A, %d %B %Y\n  with the system clock reading %H:%M:%S (%Z)",
+                   (struct tm const *)tm);
+          fputs((char const *)(buffer),p);
+        }
+        fprintf_va_5(p,
+                     "\n\nchronyd started to apply an adjustment of %.3f seconds to it,\n  which exceeded the reporting threshold of %.3f seconds\n\n",
+                     - offset,mail_change_threshold_0);
+        pclose(p);
+      }
+      else {
+        {
+          char *__va_arg0_12 = mail_change_user;
+          void *__va_args_14[1] = {& __va_arg0_12};
+          LOG_Message(LOGS_ERR,
+                      "Could not send mail notification to user %s\n",
+                      (void * const *)(__va_args_14));
+        }
+      }
+    }
+  return;
+}
+
+static int is_step_limit_reached(double offset, double offset_correction)
+{
+  int __retres;
+  double tmp;
+  if (make_step_limit_0 == 0) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (make_step_limit_0 > 0) make_step_limit_0 --;
+  tmp = fabs(offset - offset_correction);
+  ;
+  __retres = tmp > make_step_threshold_0;
+  return_label: return __retres;
+}
+
+static int is_offset_ok(double offset)
+{
+  int __retres;
+  if (max_offset_delay_0 < 0) {
+    __retres = 1;
+    goto return_label;
+  }
+  if (max_offset_delay_0 > 0) {
+    max_offset_delay_0 --;
+    __retres = 1;
+    goto return_label;
+  }
+  offset = fabs(offset);
+  if (offset > max_offset_0) {
+    char const *tmp;
+    if (! max_offset_ignore_0) tmp = "exiting"; else tmp = "ignored";
+    ;
+    ;
+    {
+      double __va_arg0 = - offset;
+      double __va_arg1 = max_offset_0;
+      char const *__va_arg2 = tmp;
+      void *__va_args[3] = {& __va_arg0, & __va_arg1, & __va_arg2};
+      LOG_Message(LOGS_WARN,
+                  "Adjustment of %.3f seconds exceeds the allowed maximum of %.3f seconds (%s) ",
+                  (void * const *)(__va_args));
+    }
+    if (! max_offset_ignore_0) end_ref_mode(0);
+    else 
+      if (max_offset_ignore_0 > 0) max_offset_ignore_0 --;
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static int is_leap_second_day(time_t when)
+{
+  int __retres;
+  struct tm *stm;
+  int tmp;
+  stm = gmtime((time_t const *)(& when));
+  if (! stm) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (stm->tm_mon == 5) {
+    if (stm->tm_mday == 30) tmp = 1; else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (stm->tm_mon == 11) 
+      if (stm->tm_mday == 31) tmp = 1; else tmp = 0;
+    else tmp = 0;
+  }
+  __retres = tmp;
+  return_label: return __retres;
+}
+
+static time_t get_tz_leap_last_tz_leap_check;
+static NTP_Leap get_tz_leap_tz_leap;
+static int get_tz_leap_tz_tai_offset;
+static NTP_Leap get_tz_leap(time_t when, int *tai_offset)
+{
+  NTP_Leap __retres;
+  struct tm stm;
+  struct tm *tm;
+  time_t t;
+  char *tz_env;
+  char tz_orig[128];
+  *tai_offset = get_tz_leap_tz_tai_offset;
+  when = (when / (time_t)(12 * 3600)) * (time_t)(12 * 3600);
+  if (get_tz_leap_last_tz_leap_check == when) {
+    __retres = get_tz_leap_tz_leap;
+    goto return_label;
+  }
+  get_tz_leap_last_tz_leap_check = when;
+  get_tz_leap_tz_leap = LEAP_Normal;
+  get_tz_leap_tz_tai_offset = 0;
+  tm = gmtime((time_t const *)(& when));
+  if (! tm) {
+    __retres = get_tz_leap_tz_leap;
+    goto return_label;
+  }
+  stm = *tm;
+  tz_env = getenv("TZ");
+  if (tz_env) {
+    size_t tmp;
+    tmp = strlen((char const *)tz_env);
+    if (tmp >= sizeof(tz_orig)) {
+      __retres = get_tz_leap_tz_leap;
+      goto return_label;
+    }
+    strcpy(tz_orig,(char const *)tz_env);
+  }
+  setenv("TZ",(char const *)leap_tzname,1);
+  tzset();
+  t = mktime(& stm);
+  if (t != (time_t)(-1)) get_tz_leap_tz_tai_offset = (int)((t - when) + (time_t)10);
+  stm.tm_sec = 60;
+  stm.tm_min = 59;
+  stm.tm_hour = 23;
+  t = mktime(& stm);
+  if (tz_env) setenv("TZ",(char const *)(tz_orig),1); else unsetenv("TZ");
+  tzset();
+  if (t == (time_t)(-1)) {
+    __retres = get_tz_leap_tz_leap;
+    goto return_label;
+  }
+  if (stm.tm_sec == 60) get_tz_leap_tz_leap = LEAP_InsertSecond;
+  else 
+    if (stm.tm_sec == 1) get_tz_leap_tz_leap = LEAP_DeleteSecond;
+  *tai_offset = get_tz_leap_tz_tai_offset;
+  __retres = get_tz_leap_tz_leap;
+  return_label: return __retres;
+}
+
+static void leap_end_timeout(void *arg)
+{
+  leap_timeout_id = (unsigned int)0;
+  leap_in_progress = 0;
+  if (our_tai_offset) our_tai_offset += our_leap_sec;
+  our_leap_sec = 0;
+  if (leap_mode == (unsigned int)REF_LeapModeSystem) LCL_SetSystemLeap
+                                                     (our_leap_sec,
+                                                      our_tai_offset);
+  if (our_leap_status == (unsigned int)LEAP_InsertSecond) our_leap_status = LEAP_Normal;
+  else 
+    if (our_leap_status == (unsigned int)LEAP_DeleteSecond) our_leap_status = LEAP_Normal;
+  return;
+}
+
+static void leap_start_timeout(void *arg)
+{
+  leap_in_progress = 1;
+  switch (leap_mode) {
+    case (REF_LeapMode)REF_LeapModeSystem: ;
+    break;
+    case (REF_LeapMode)REF_LeapModeSlew: LCL_NotifyLeap(our_leap_sec);
+    LCL_AccumulateOffset((double)our_leap_sec,0.0);
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"Adjusting system clock for leap second",
+                  (void * const *)(__va_args));
+    }
+    break;
+    case (REF_LeapMode)REF_LeapModeStep: LCL_NotifyLeap(our_leap_sec);
+    LCL_ApplyStepOffset((double)our_leap_sec);
+    {
+      void *__va_args_4[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"System clock was stepped for leap second",
+                  (void * const *)(__va_args_4));
+    }
+    break;
+    case (REF_LeapMode)REF_LeapModeIgnore:
+    {
+      void *__va_args_6[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"Ignoring leap second",
+                  (void * const *)(__va_args_6));
+    }
+    break;
+    default: break;
+  }
+  leap_timeout_id = SCH_AddTimeoutByDelay(2.0,& leap_end_timeout,(void *)0);
+  return;
+}
+
+static void set_leap_timeout(time_t now)
+{
+  struct timespec when;
+  SCH_RemoveTimeout(leap_timeout_id);
+  leap_timeout_id = (unsigned int)0;
+  leap_in_progress = 0;
+  if (! our_leap_sec) goto return_label;
+  when.tv_sec = (now / (time_t)(24 * 3600) + (time_t)1) * (time_t)(24 * 3600);
+  when.tv_nsec = (long)0;
+  if (our_leap_sec < 0) (when.tv_sec) --;
+  if (leap_mode == (unsigned int)REF_LeapModeSystem) {
+    (when.tv_sec) --;
+    when.tv_nsec = (long)500000000;
+  }
+  leap_timeout_id = SCH_AddTimeout(& when,& leap_start_timeout,(void *)0);
+  return_label: return;
+}
+
+static void update_leap_status(NTP_Leap leap, time_t now, int reset)
+{
+  NTP_Leap tz_leap;
+  int leap_sec;
+  int tai_offset;
+  leap_sec = 0;
+  tai_offset = 0;
+  if (leap_tzname) 
+    if (now) {
+      tz_leap = get_tz_leap(now,& tai_offset);
+      if (leap == (unsigned int)LEAP_Normal) leap = tz_leap;
+    }
+  if (leap == (unsigned int)LEAP_InsertSecond) goto _LOR;
+  else 
+    if (leap == (unsigned int)LEAP_DeleteSecond) {
+      _LOR:
+      {
+        int tmp;
+        tmp = is_leap_second_day(now);
+        if (tmp) 
+          if (leap == (unsigned int)LEAP_InsertSecond) leap_sec = 1;
+          else leap_sec = -1;
+        else leap = LEAP_Normal;
+      }
+    }
+  if (leap_sec != our_leap_sec) goto _LOR_0;
+  else 
+    if (tai_offset != our_tai_offset) {
+      int tmp_0;
+      _LOR_0: tmp_0 = REF_IsLeapSecondClose();
+      if (tmp_0) goto _LAND;
+      else {
+        our_leap_sec = leap_sec;
+        our_tai_offset = tai_offset;
+        switch (leap_mode) {
+          case (REF_LeapMode)REF_LeapModeSystem:
+          LCL_SetSystemLeap(our_leap_sec,our_tai_offset);
+          case (REF_LeapMode)REF_LeapModeSlew:
+          case (REF_LeapMode)REF_LeapModeStep:
+          case (REF_LeapMode)REF_LeapModeIgnore:
+          set_leap_timeout(now);
+          break;
+          default: __FC_assert(0 != 0,"reference.c",815,"0");
+          break;
+        }
+      }
+    }
+    else {
+      _LAND: ;
+      if (reset) set_leap_timeout(now);
+    }
+  our_leap_status = leap;
+  return;
+}
+
+static double get_root_dispersion(struct timespec *ts)
+{
+  double __retres;
+  int tmp;
+  double tmp_1;
+  double tmp_0;
+  double tmp_2;
+  double tmp_3;
+  tmp = UTI_IsZeroTimespec(& our_ref_time);
+  if (tmp) {
+    __retres = 1.0;
+    goto return_label;
+  }
+  tmp_0 = UTI_DiffTimespecsToDouble(ts,& our_ref_time);
+  tmp_1 = fabs(tmp_0);
+  tmp_2 = fabs(our_residual_freq);
+  tmp_3 = LCL_GetMaxClockError();
+  ;
+  __retres = our_root_dispersion + tmp_1 * ((our_skew + tmp_2) + tmp_3);
+  return_label: return __retres;
+}
+
+static void write_log(struct timespec *now, int combined_sources,
+                      double freq, double offset, double offset_sd,
+                      double uncorrected_offset, double orig_root_distance);
+
+static double write_log_last_sys_offset = 0.0;
+static void write_log(struct timespec *now, int combined_sources,
+                      double freq, double offset, double offset_sd,
+                      double uncorrected_offset, double orig_root_distance)
+{
+  double root_dispersion;
+  double max_error;
+  double tmp;
+  char *tmp_2;
+  char *tmp_3;
+  char const leap_codes[4] = {(char)'N', (char)'+', (char)'-', (char)'?'};
+  if (logfileid == -1) goto return_label;
+  tmp = fabs(write_log_last_sys_offset);
+  max_error = orig_root_distance + tmp;
+  root_dispersion = get_root_dispersion(now);
+  write_log_last_sys_offset = offset - uncorrected_offset;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  ;
+  if ((int)our_ref_ip.family != 0) tmp_2 = UTI_IPToString(& our_ref_ip);
+  else tmp_2 = UTI_RefidToString(our_ref_id);
+  tmp_3 = UTI_TimeToLogForm(now->tv_sec);
+  ;
+  {
+    char *__va_arg0 = tmp_3;
+    char *__va_arg1 = tmp_2;
+    int __va_arg2 = our_stratum;
+    double __va_arg3 = freq;
+    double __va_arg4 = 1.0e6 * our_skew;
+    double __va_arg5 = offset;
+    int __va_arg6 = (int)leap_codes[our_leap_status];
+    int __va_arg7 = combined_sources;
+    double __va_arg8 = offset_sd;
+    double __va_arg9 = uncorrected_offset;
+    double __va_arg10 = our_root_delay;
+    double __va_arg11 = root_dispersion;
+    double __va_arg12 = max_error;
+    void *__va_args[13] =
+      {& __va_arg0,
+       & __va_arg1,
+       & __va_arg2,
+       & __va_arg3,
+       & __va_arg4,
+       & __va_arg5,
+       & __va_arg6,
+       & __va_arg7,
+       & __va_arg8,
+       & __va_arg9,
+       & __va_arg10,
+       & __va_arg11,
+       & __va_arg12};
+    LOG_FileWrite(logfileid,
+                  "%s %-15s %2d %10.3f %10.3f %10.3e %1c %2d %10.3e %10.3e %10.3e %10.3e %10.3e",
+                  (void * const *)(__va_args));
+  }
+  return_label: return;
+}
+
+static void special_mode_sync(int valid, double offset)
+{
+  int step;
+  switch (mode) {
+    double tmp;
+    double tmp_0;
+    char const *tmp_1;
+    char const *tmp_2;
+    double tmp_3;
+    char const *tmp_4;
+    case (REF_Mode)REF_ModeInitStepSlew:
+    if (! valid) {
+      {
+        void *__va_args[1] = {(void *)0};
+        LOG_Message(LOGS_WARN,"No suitable source for initstepslew",
+                    (void * const *)(__va_args));
+      }
+      end_ref_mode(0);
+      break;
+    }
+    tmp = fabs(offset);
+    tmp_0 = CNF_GetInitStepThreshold();
+    step = tmp >= tmp_0;
+    if (step) tmp_1 = "step"; else tmp_1 = "slew";
+    if (offset >= (double)0) tmp_2 = "fast"; else tmp_2 = "slow";
+    tmp_3 = fabs(offset);
+    {
+      double __va_arg0 = tmp_3;
+      char const *__va_arg1 = tmp_2;
+      char const *__va_arg2 = tmp_1;
+      void *__va_args_15[3] = {& __va_arg0, & __va_arg1, & __va_arg2};
+      LOG_Message(LOGS_INFO,
+                  "System\'s initial offset : %.6f seconds %s of true (%s)",
+                  (void * const *)(__va_args_15));
+    }
+    if (step) LCL_ApplyStepOffset(offset);
+    else LCL_AccumulateOffset(offset,0.0);
+    end_ref_mode(1);
+    break;
+    case (REF_Mode)REF_ModeUpdateOnce: case (REF_Mode)REF_ModePrintOnce:
+    if (! valid) {
+      {
+        void *__va_args_17[1] = {(void *)0};
+        LOG_Message(LOGS_WARN,"No suitable source for synchronisation",
+                    (void * const *)(__va_args_17));
+      }
+      end_ref_mode(0);
+      break;
+    }
+    step = mode == (unsigned int)REF_ModeUpdateOnce;
+    if (step) tmp_4 = "step"; else tmp_4 = "ignored";
+    ;
+    {
+      double __va_arg0_19 = - offset;
+      char const *__va_arg1_21 = tmp_4;
+      void *__va_args_23[2] = {& __va_arg0_19, & __va_arg1_21};
+      LOG_Message(LOGS_INFO,"System clock wrong by %.6f seconds (%s)",
+                  (void * const *)(__va_args_23));
+    }
+    if (step) LCL_ApplyStepOffset(offset);
+    end_ref_mode(1);
+    break;
+    case (REF_Mode)REF_ModeIgnore: break;
+    default: __FC_assert(0 != 0,"reference.c",917,"0");
+  }
+  return;
+}
+
+static void get_clock_estimates(int manual, double measured_freq,
+                                double measured_skew, double *estimated_freq,
+                                double *estimated_skew, double *residual_freq)
+{
+  double gain;
+  double expected_freq;
+  double expected_skew;
+  double extra_skew;
+  double tmp_0;
+  expected_freq = 0.0;
+  expected_skew = our_skew;
+  if (manual) gain = 1.0;
+  else {
+    double tmp;
+    tmp = fabs(measured_skew);
+    ;
+    if (tmp > max_update_skew_0) gain = 0.0;
+    else gain = (3.0 * (expected_skew * expected_skew)) / (3.0 * (expected_skew * expected_skew) + 
+                                                           measured_skew * measured_skew);
+  }
+  if (gain < 1.0) tmp_0 = gain; else tmp_0 = 1.0;
+  if (0.0 > tmp_0) gain = 0.0;
+  else {
+    double tmp_1;
+    if (gain < 1.0) tmp_1 = gain; else tmp_1 = 1.0;
+    gain = tmp_1;
+  }
+  *estimated_freq = expected_freq + gain * (measured_freq - expected_freq);
+  *residual_freq = measured_freq - *estimated_freq;
+  extra_skew = sqrt(((expected_freq - *estimated_freq) * (expected_freq - *estimated_freq)) * (
+                    1.0 - gain) + ((measured_freq - *estimated_freq) * (
+                                   measured_freq - *estimated_freq)) * gain);
+  *estimated_skew = (expected_skew + gain * (measured_skew - expected_skew)) + extra_skew;
+  return;
+}
+
+void REF_SetReference(int stratum, NTP_Leap leap, int combined_sources,
+                      uint32_t ref_id, IPAddr *ref_ip,
+                      struct timespec *ref_time, double offset,
+                      double offset_sd, double frequency,
+                      double frequency_sd, double skew, double root_delay,
+                      double root_dispersion)
+{
+  double uncorrected_offset;
+  double accumulate_offset;
+  double step_offset;
+  double residual_frequency;
+  double local_abs_frequency;
+  double elapsed;
+  double update_interval;
+  double correction_rate;
+  double orig_root_distance;
+  struct timespec now;
+  struct timespec raw_now;
+  NTP_int64 ref_fuzz;
+  int manual;
+  int tmp;
+  double tmp_0;
+  int tmp_1;
+  double tmp_3;
+  int tmp_4;
+  __FC_assert(initialised_0 != 0,"reference.c",976,"initialised");
+  if (mode != (unsigned int)REF_ModeNormal) {
+    special_mode_sync(1,offset);
+    goto return_label;
+  }
+  manual = leap == (unsigned int)LEAP_Unsynchronised;
+  LCL_ReadRawTime(& raw_now);
+  LCL_GetOffsetCorrection(& raw_now,& uncorrected_offset,(double *)0);
+  UTI_AddDoubleToTimespec(& raw_now,uncorrected_offset,& now);
+  elapsed = UTI_DiffTimespecsToDouble(& now,ref_time);
+  offset += elapsed * frequency;
+  offset_sd += elapsed * frequency_sd;
+  if (last_ref_update.tv_sec) {
+    update_interval = UTI_DiffTimespecsToDouble(& now,& last_ref_update);
+    if (update_interval > 0.0) update_interval = update_interval;
+    else update_interval = 0.0;
+  }
+  else update_interval = 0.0;
+  get_clock_estimates(manual,frequency,skew,& frequency,& skew,
+                      & residual_frequency);
+  tmp = is_offset_ok(offset);
+  if (! tmp) goto return_label;
+  tmp_0 = get_root_dispersion(& now);
+  orig_root_distance = our_root_delay / 2.0 + tmp_0;
+  are_we_synchronised = leap != (unsigned int)LEAP_Unsynchronised;
+  our_stratum = stratum + 1;
+  our_ref_id = ref_id;
+  if (ref_ip) our_ref_ip = *ref_ip;
+  else our_ref_ip.family = (unsigned short)0;
+  our_ref_time = *ref_time;
+  our_skew = skew;
+  our_residual_freq = residual_frequency;
+  our_root_delay = root_delay;
+  our_root_dispersion = root_dispersion;
+  last_ref_update = now;
+  last_ref_update_interval = update_interval;
+  last_offset = offset;
+  correction_rate = ((correction_time_ratio_0 * 0.5) * offset_sd) * update_interval;
+  tmp_1 = is_step_limit_reached(offset,uncorrected_offset);
+  if (tmp_1) {
+    accumulate_offset = uncorrected_offset;
+    step_offset = offset - uncorrected_offset;
+  }
+  else {
+    accumulate_offset = offset;
+    step_offset = 0.0;
+  }
+  LCL_AccumulateFrequencyAndOffset(frequency,accumulate_offset,
+                                   correction_rate);
+  update_leap_status(leap,raw_now.tv_sec,0);
+  maybe_log_offset(offset,raw_now.tv_sec);
+  if (step_offset != 0.0) {
+    int tmp_2;
+    tmp_2 = LCL_ApplyStepOffset(step_offset);
+    if (tmp_2) {
+      {
+        double __va_arg0 = - step_offset;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_WARN,"System clock was stepped by %.6f seconds",
+                    (void * const *)(__va_args));
+      }
+    }
+  }
+  tmp_3 = get_root_dispersion(& now);
+  ;
+  ;
+  ;
+  LCL_SetSyncStatus(are_we_synchronised,offset_sd,root_delay / 2.0 + tmp_3);
+  UTI_GetNtp64Fuzz(& ref_fuzz,0);
+  UTI_TimespecToNtp64(& our_ref_time,& ref_fuzz,& ref_fuzz);
+  UTI_Ntp64ToTimespec(& ref_fuzz,& our_ref_time);
+  tmp_4 = UTI_CompareTimespecs(& our_ref_time,ref_time);
+  if (tmp_4 >= 0) (our_ref_time.tv_sec) --;
+  local_abs_frequency = LCL_ReadAbsoluteFrequency();
+  write_log(& now,combined_sources,local_abs_frequency,offset,offset_sd,
+            uncorrected_offset,orig_root_distance);
+  if (drift_file_0) {
+    drift_file_age += update_interval;
+    if (drift_file_age < 0.0) goto _LOR;
+    else 
+      if (drift_file_age > 3600.0) {
+        _LOR:
+        {
+          update_drift_file(local_abs_frequency,our_skew);
+          drift_file_age = 0.0;
+        }
+      }
+  }
+  if (fb_drifts) 
+    if (are_we_synchronised) {
+      update_fb_drifts(local_abs_frequency,update_interval);
+      schedule_fb_drift(& now);
+    }
+  if (avg2_moving) avg2_offset += 0.1 * (offset * offset - avg2_offset);
+  else {
+    if (avg2_offset > 0.0) 
+      if (avg2_offset < offset * offset) avg2_moving = 1;
+    avg2_offset = offset * offset;
+  }
+  return_label: return;
+}
+
+void REF_SetManualReference(struct timespec *ref_time, double offset,
+                            double frequency, double skew)
+{
+  REF_SetReference(0,LEAP_Unsynchronised,1,(unsigned int)0x4D414E55UL,
+                   (IPAddr *)0,ref_time,offset,0.0,frequency,skew,skew,0.0,
+                   0.0);
+  return;
+}
+
+void REF_SetUnsynchronised(void)
+{
+  struct timespec now;
+  struct timespec now_raw;
+  double uncorrected_offset;
+  double tmp;
+  double tmp_0;
+  __FC_assert(initialised_0 != 0,"reference.c",1131,"initialised");
+  if (mode != (unsigned int)REF_ModeNormal) {
+    special_mode_sync(0,0.0);
+    goto return_label;
+  }
+  LCL_ReadRawTime(& now_raw);
+  LCL_GetOffsetCorrection(& now_raw,& uncorrected_offset,(double *)0);
+  UTI_AddDoubleToTimespec(& now_raw,uncorrected_offset,& now);
+  if (fb_drifts) schedule_fb_drift(& now);
+  update_leap_status(LEAP_Unsynchronised,(long)0,0);
+  our_ref_ip.family = (unsigned short)1;
+  our_ref_ip.addr.in4 = (unsigned int)0;
+  our_stratum = 0;
+  are_we_synchronised = 0;
+  LCL_SetSyncStatus(0,0.0,0.0);
+  tmp = get_root_dispersion(& now);
+  ;
+  ;
+  tmp_0 = LCL_ReadAbsoluteFrequency();
+  write_log(& now,0,tmp_0,0.0,0.0,uncorrected_offset,
+            our_root_delay / 2.0 + tmp);
+  return_label: return;
+}
+
+void REF_GetReferenceParams(struct timespec *local_time,
+                            int *is_synchronised, NTP_Leap *leap_status,
+                            int *stratum, uint32_t *ref_id,
+                            struct timespec *ref_time, double *root_delay,
+                            double *root_dispersion)
+{
+  double dispersion;
+  __FC_assert(initialised_0 != 0,"reference.c",1176,"initialised");
+  if (are_we_synchronised) dispersion = get_root_dispersion(local_time);
+  else dispersion = 0.0;
+  if (are_we_synchronised) 
+    if (enable_local_stratum) {
+      if (our_root_delay / (double)2 + dispersion > local_distance_0) 
+        goto _LAND;
+      else goto _LAND_0;
+    }
+    else {
+      _LAND_0:
+      {
+        *is_synchronised = 1;
+        *stratum = our_stratum;
+        if (! leap_in_progress) *leap_status = our_leap_status;
+        else *leap_status = LEAP_Unsynchronised;
+        *ref_id = our_ref_id;
+        *ref_time = our_ref_time;
+        *root_delay = our_root_delay;
+        *root_dispersion = dispersion;
+      }
+    }
+  else {
+    _LAND: ;
+    if (enable_local_stratum) {
+      *is_synchronised = 0;
+      *stratum = local_stratum_0;
+      *ref_id = (unsigned int)0x7F7F0101UL;
+      *ref_time = *local_time;
+      (ref_time->tv_sec) --;
+      *leap_status = LEAP_Normal;
+      *root_delay = 0.0;
+      *root_dispersion = 0.0;
+    }
+    else {
+      *is_synchronised = 0;
+      *leap_status = LEAP_Unsynchronised;
+      *stratum = 16;
+      *ref_id = (unsigned int)0x0UL;
+      UTI_ZeroTimespec(ref_time);
+      *root_dispersion = 1.0;
+      *root_delay = 1.0;
+    }
+  }
+  return;
+}
+
+int REF_GetOurStratum(void)
+{
+  struct timespec now_cooked;
+  struct timespec ref_time;
+  int synchronised;
+  int stratum;
+  NTP_Leap leap_status;
+  uint32_t ref_id;
+  double root_delay;
+  double root_dispersion;
+  SCH_GetLastEventTime(& now_cooked,(double *)0,(struct timespec *)0);
+  REF_GetReferenceParams(& now_cooked,& synchronised,& leap_status,& stratum,
+                         & ref_id,& ref_time,& root_delay,& root_dispersion);
+  return stratum;
+}
+
+int REF_GetOrphanStratum(void)
+{
+  int __retres;
+  if (! enable_local_stratum) {
+    __retres = 16;
+    goto return_label;
+  }
+  else 
+    if (! local_orphan_0) {
+      __retres = 16;
+      goto return_label;
+    }
+    else 
+      if (mode != (unsigned int)REF_ModeNormal) {
+        __retres = 16;
+        goto return_label;
+      }
+  __retres = local_stratum_0;
+  return_label: return __retres;
+}
+
+double REF_GetSkew(void)
+{
+  return our_skew;
+}
+
+void REF_ModifyMaxupdateskew(double new_max_update_skew)
+{
+  max_update_skew_0 = new_max_update_skew * 1.0e-6;
+  return;
+}
+
+void REF_ModifyMakestep(int limit, double threshold)
+{
+  make_step_limit_0 = limit;
+  make_step_threshold_0 = threshold;
+  return;
+}
+
+void REF_EnableLocal(int stratum, double distance, int orphan)
+{
+  int tmp;
+  enable_local_stratum = 1;
+  if (stratum < 16 - 1) tmp = stratum; else tmp = 16 - 1;
+  if (1 > tmp) local_stratum_0 = 1;
+  else {
+    int tmp_0;
+    if (stratum < 16 - 1) tmp_0 = stratum; else tmp_0 = 16 - 1;
+    local_stratum_0 = tmp_0;
+  }
+  local_distance_0 = distance;
+  local_orphan_0 = ! (! orphan);
+  return;
+}
+
+void REF_DisableLocal(void)
+{
+  enable_local_stratum = 0;
+  return;
+}
+
+int REF_IsLeapSecondClose(void)
+{
+  int __retres;
+  struct timespec now;
+  struct timespec now_raw;
+  time_t t;
+  if (! our_leap_sec) {
+    __retres = 0;
+    goto return_label;
+  }
+  SCH_GetLastEventTime(& now,(double *)0,& now_raw);
+  if (now.tv_sec > (long)0) t = now.tv_sec; else t = - now.tv_sec;
+  if ((t + (time_t)5) % (long)(24 * 3600) < (long)(2 * 5)) {
+    __retres = 1;
+    goto return_label;
+  }
+  if (now_raw.tv_sec > (long)0) t = now_raw.tv_sec;
+  else t = - now_raw.tv_sec;
+  if ((t + (time_t)5) % (long)(24 * 3600) < (long)(2 * 5)) {
+    __retres = 1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+int REF_GetTaiOffset(struct timespec *ts)
+{
+  int tai_offset;
+  get_tz_leap(ts->tv_sec,& tai_offset);
+  return tai_offset;
+}
+
+void REF_GetTrackingReport(RPT_TrackingReport *rep)
+{
+  struct timespec now_raw;
+  struct timespec now_cooked;
+  double correction;
+  int synchronised;
+  LCL_ReadRawTime(& now_raw);
+  LCL_GetOffsetCorrection(& now_raw,& correction,(double *)0);
+  UTI_AddDoubleToTimespec(& now_raw,correction,& now_cooked);
+  REF_GetReferenceParams(& now_cooked,& synchronised,& rep->leap_status,
+                         & rep->stratum,& rep->ref_id,& rep->ref_time,
+                         & rep->root_delay,& rep->root_dispersion);
+  if (rep->stratum == 16) 
+    if (! synchronised) rep->stratum = 0;
+  rep->ip_addr.family = (unsigned short)0;
+  rep->current_correction = correction;
+  rep->freq_ppm = LCL_ReadAbsoluteFrequency();
+  rep->resid_freq_ppm = 0.0;
+  rep->skew_ppm = 0.0;
+  rep->last_update_interval = last_ref_update_interval;
+  rep->last_offset = last_offset;
+  rep->rms_offset = sqrt(avg2_offset);
+  if (synchronised) {
+    rep->ip_addr = our_ref_ip;
+    rep->resid_freq_ppm = 1.0e6 * our_residual_freq;
+    rep->skew_ppm = 1.0e6 * our_skew;
+  }
+  return;
+}
+
+static int initialised_1 = 0;
+static unsigned int one_highest_fd;
+static ARR_Instance file_handlers;
+static struct timespec last_select_ts;
+static struct timespec last_select_ts_raw;
+static double last_select_ts_err;
+static TimerQueueEntry timer_queue;
+static unsigned long n_timer_queue_entries;
+static SCH_TimeoutID next_tqe_id;
+static TimerQueueEntry *tqe_free_list = (TimerQueueEntry *)0;
+static struct timespec last_class_dispatch[SCH_NumberOfClasses];
+static int need_to_exit;
+static void handle_slew_0(struct timespec *raw, struct timespec *cooked,
+                          double dfreq, double doffset,
+                          LCL_ChangeType change_type, void *anything);
+
+void SCH_Initialise(void)
+{
+  file_handlers = ARR_CreateInstance((unsigned int)sizeof(FileHandlerEntry));
+  n_timer_queue_entries = (unsigned long)0;
+  next_tqe_id = (unsigned int)0;
+  timer_queue.next = & timer_queue;
+  timer_queue.prev = & timer_queue;
+  need_to_exit = 0;
+  LCL_AddParameterChangeHandler(& handle_slew_0,(void *)0);
+  LCL_ReadRawTime(& last_select_ts_raw);
+  last_select_ts = last_select_ts_raw;
+  initialised_1 = 1;
+  return;
+}
+
+void SCH_Finalise(void)
+{
+  ARR_DestroyInstance(file_handlers);
+  initialised_1 = 0;
+  return;
+}
+
+void SCH_AddFileHandler(int fd, int events,
+                        void (*handler)(int fd, int event,
+                                        SCH_ArbitraryArgument ),
+                        SCH_ArbitraryArgument arg)
+{
+  FileHandlerEntry *ptr;
+  __FC_assert(initialised_1 != 0,"sched.c",161,"initialised");
+  __FC_assert(events != 0,"sched.c",162,"events");
+  __FC_assert((fd >= 0) != 0,"sched.c",163,"fd >= 0");
+  if (fd >= 1024) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"Too many file descriptors",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  while (1) {
+    unsigned int tmp;
+    tmp = ARR_GetSize(file_handlers);
+    ;
+    if (! (tmp <= (unsigned int)fd)) break;
+    ptr = (FileHandlerEntry *)ARR_GetNewElement(file_handlers);
+    ptr->handler = (void (*)(int fd, int event, SCH_ArbitraryArgument ))0;
+    ptr->arg = (void *)0;
+    ptr->events = 0;
+  }
+  ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd);
+  __FC_assert(! ptr->handler != 0,"sched.c",181,"!ptr->handler");
+  ptr->handler = handler;
+  ptr->arg = arg;
+  ptr->events = events;
+  if (one_highest_fd < (unsigned int)(fd + 1)) one_highest_fd = (unsigned int)(
+                                               fd + 1);
+  return;
+}
+
+void SCH_RemoveFileHandler(int fd)
+{
+  FileHandlerEntry *ptr;
+  __FC_assert(initialised_1 != 0,"sched.c",199,"initialised");
+  ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd);
+  __FC_assert(ptr->handler != (void (*)(int fd, int event,
+                                        SCH_ArbitraryArgument ))0,"sched.c",
+              204,"ptr->handler");
+  ptr->handler = (void (*)(int fd, int event, SCH_ArbitraryArgument ))0;
+  ptr->arg = (void *)0;
+  ptr->events = 0;
+  while (one_highest_fd > (unsigned int)0) {
+    ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,
+                                             one_highest_fd - (unsigned int)1);
+    if (ptr->handler) break;
+    one_highest_fd --;
+  }
+  return;
+}
+
+void SCH_SetFileHandlerEvent(int fd, int event, int enable)
+{
+  FileHandlerEntry *ptr;
+  ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,(unsigned int)fd);
+  if (enable) ptr->events |= event; else ptr->events &= ~ event;
+  return;
+}
+
+void SCH_GetLastEventTime(struct timespec *cooked, double *err,
+                          struct timespec *raw)
+{
+  if (cooked) {
+    *cooked = last_select_ts;
+    if (err) *err = last_select_ts_err;
+  }
+  if (raw) *raw = last_select_ts_raw;
+  return;
+}
+
+static TimerQueueEntry *allocate_tqe(void)
+{
+  TimerQueueEntry *new_block;
+  TimerQueueEntry *result;
+  int i;
+  if (tqe_free_list == (TimerQueueEntry *)0) {
+    new_block = (TimerQueueEntry *)Malloc2((unsigned long)32,
+                                           sizeof(TimerQueueEntry));
+    i = 1;
+    while (i < 32) {
+      (new_block + i)->next = new_block + (i - 1);
+      i ++;
+    }
+    (new_block + 0)->next = (struct _TimerQueueEntry *)0;
+    tqe_free_list = new_block + (32 - 1);
+  }
+  result = tqe_free_list;
+  tqe_free_list = tqe_free_list->next;
+  return result;
+}
+
+static void release_tqe(TimerQueueEntry *node)
+{
+  node->next = tqe_free_list;
+  tqe_free_list = node;
+  return;
+}
+
+static SCH_TimeoutID get_new_tqe_id(void)
+{
+  TimerQueueEntry *ptr;
+  try_again: next_tqe_id ++;
+  if (! next_tqe_id) goto try_again;
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    if (ptr->id == next_tqe_id) goto try_again;
+    ptr = ptr->next;
+  }
+  return next_tqe_id;
+}
+
+/*@ assigns \result;
+    assigns \result \from \nothing; */
+SCH_TimeoutID SCH_AddTimeout(struct timespec *ts,
+                             void (*handler)(SCH_ArbitraryArgument ),
+                             SCH_ArbitraryArgument arg)
+{
+  SCH_TimeoutID __retres;
+  TimerQueueEntry *new_tqe;
+  TimerQueueEntry *ptr;
+  __FC_assert(initialised_1 != 0,"sched.c",313,"initialised");
+  new_tqe = allocate_tqe();
+  new_tqe->id = get_new_tqe_id();
+  new_tqe->handler = handler;
+  new_tqe->arg = arg;
+  new_tqe->ts = *ts;
+  new_tqe->class = SCH_ReservedTimeoutValue;
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    {
+      int tmp;
+      tmp = UTI_CompareTimespecs(& new_tqe->ts,& ptr->ts);
+      if (tmp == -1) break;
+    }
+    ptr = ptr->next;
+  }
+  new_tqe->next = ptr;
+  new_tqe->prev = ptr->prev;
+  (ptr->prev)->next = new_tqe;
+  ptr->prev = new_tqe;
+  n_timer_queue_entries ++;
+  __retres = new_tqe->id;
+  return __retres;
+}
+
+SCH_TimeoutID SCH_AddTimeoutByDelay(double delay,
+                                    void (*handler)(SCH_ArbitraryArgument ),
+                                    SCH_ArbitraryArgument arg)
+{
+  struct timespec now;
+  struct timespec then;
+  int tmp;
+  SCH_TimeoutID tmp_0;
+  __FC_assert(initialised_1 != 0,"sched.c",354,"initialised");
+  __FC_assert((delay >= 0.0) != 0,"sched.c",355,"delay >= 0.0");
+  LCL_ReadRawTime(& now);
+  UTI_AddDoubleToTimespec(& now,delay,& then);
+  tmp = UTI_CompareTimespecs(& now,& then);
+  if (tmp > 0) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"Timeout overflow",(void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  tmp_0 = SCH_AddTimeout(& then,handler,arg);
+  return tmp_0;
+}
+
+SCH_TimeoutID SCH_AddTimeoutInClass(double min_delay, double separation,
+                                    double randomness,
+                                    SCH_TimeoutClass class,
+                                    void (*handler)(SCH_ArbitraryArgument ),
+                                    SCH_ArbitraryArgument arg)
+{
+  SCH_TimeoutID __retres;
+  TimerQueueEntry *new_tqe;
+  TimerQueueEntry *ptr;
+  struct timespec now;
+  double diff;
+  double r;
+  double new_min_delay;
+  __FC_assert(initialised_1 != 0,"sched.c",380,"initialised");
+  __FC_assert((min_delay >= 0.0) != 0,"sched.c",381,"min_delay >= 0.0");
+  __FC_assert((class < (unsigned int)SCH_NumberOfClasses) != 0,"sched.c",382,
+              "class < SCH_NumberOfClasses");
+  if (randomness > 0.0) {
+    uint32_t rnd;
+    UTI_GetRandomBytes((void *)(& rnd),(unsigned int)sizeof(rnd));
+    r = (double)rnd * (randomness / (double)((unsigned int)(-1))) + 1.0;
+    min_delay *= r;
+    separation *= r;
+  }
+  LCL_ReadRawTime(& now);
+  new_min_delay = min_delay;
+  diff = UTI_DiffTimespecsToDouble(& now,& last_class_dispatch[class]);
+  if (diff < separation) 
+    if (diff >= 0.0) 
+      if (diff + new_min_delay < separation) new_min_delay = separation - diff;
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    if (ptr->class == class) {
+      diff = UTI_DiffTimespecsToDouble(& ptr->ts,& now);
+      if (new_min_delay > diff) {
+        if (new_min_delay - diff < separation) new_min_delay = diff + separation;
+      }
+      else 
+        if (diff - new_min_delay < separation) new_min_delay = diff + separation;
+    }
+    ptr = ptr->next;
+  }
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    diff = UTI_DiffTimespecsToDouble(& ptr->ts,& now);
+    if (diff > new_min_delay) break;
+    ptr = ptr->next;
+  }
+  new_tqe = allocate_tqe();
+  new_tqe->id = get_new_tqe_id();
+  new_tqe->handler = handler;
+  new_tqe->arg = arg;
+  UTI_AddDoubleToTimespec(& now,new_min_delay,& new_tqe->ts);
+  new_tqe->class = class;
+  new_tqe->next = ptr;
+  new_tqe->prev = ptr->prev;
+  (ptr->prev)->next = new_tqe;
+  ptr->prev = new_tqe;
+  n_timer_queue_entries ++;
+  __retres = new_tqe->id;
+  return __retres;
+}
+
+void SCH_RemoveTimeout(SCH_TimeoutID id)
+{
+  TimerQueueEntry *ptr;
+  __FC_assert(initialised_1 != 0,"sched.c",451,"initialised");
+  if (! id) goto return_label;
+  ptr = timer_queue.next;
+  while (ptr != & timer_queue) {
+    if (ptr->id == id) {
+      (ptr->next)->prev = ptr->prev;
+      (ptr->prev)->next = ptr->next;
+      n_timer_queue_entries --;
+      release_tqe(ptr);
+      goto return_label;
+    }
+    ptr = ptr->next;
+  }
+  __FC_assert(0 != 0,"sched.c",476,"0");
+  return_label: return;
+}
+
+static void dispatch_timeouts(struct timespec *now)
+{
+  TimerQueueEntry *ptr;
+  void (*handler)(SCH_ArbitraryArgument );
+  SCH_ArbitraryArgument arg;
+  int n_done = 0;
+  int n_entries_on_start = (int)n_timer_queue_entries;
+  while (1) {
+    LCL_ReadRawTime(now);
+    if (n_timer_queue_entries > (unsigned long)0) {
+      int tmp;
+      tmp = UTI_CompareTimespecs(now,& (timer_queue.next)->ts);
+      if (! (tmp >= 0)) goto _LAND;
+    }
+    else _LAND: break;
+    ptr = timer_queue.next;
+    last_class_dispatch[ptr->class] = *now;
+    handler = ptr->handler;
+    arg = ptr->arg;
+    SCH_RemoveTimeout(ptr->id);
+    (*handler)(arg);
+    n_done ++;
+    if ((unsigned long)n_done > n_timer_queue_entries * (unsigned long)4) 
+      if (n_done > n_entries_on_start * 4) {
+        {
+          void *__va_args[1] = {(void *)0};
+          LOG_Message(LOGS_FATAL,"Possible infinite loop in scheduling",
+                      (void * const *)(__va_args));
+        }
+        exit(1);
+      }
+  }
+  return;
+}
+
+static void dispatch_filehandlers(int nfd, fd_set *read_fds,
+                                  fd_set *write_fds, fd_set *except_fds)
+{
+  FileHandlerEntry *ptr;
+  int fd;
+  fd = 0;
+  while (1) {
+    if (nfd) {
+      if (! ((unsigned int)fd < one_highest_fd)) break;
+    }
+    else break;
+    if (except_fds) {
+      int tmp_1;
+      tmp_1 = FD_ISSET(fd,(fd_set const *)except_fds);
+      if (tmp_1) {
+        ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,
+                                                 (unsigned int)fd);
+        if (ptr->handler) (*(ptr->handler))(fd,4,ptr->arg);
+        nfd --;
+        if (read_fds) {
+          int tmp_0;
+          tmp_0 = FD_ISSET(fd,(fd_set const *)read_fds);
+          if (tmp_0) {
+            FD_CLR(fd,read_fds);
+            nfd --;
+          }
+        }
+      }
+    }
+    if (read_fds) {
+      int tmp_3;
+      tmp_3 = FD_ISSET(fd,(fd_set const *)read_fds);
+      if (tmp_3) {
+        ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,
+                                                 (unsigned int)fd);
+        if (ptr->handler) (*(ptr->handler))(fd,1,ptr->arg);
+        nfd --;
+      }
+    }
+    if (write_fds) {
+      int tmp_5;
+      tmp_5 = FD_ISSET(fd,(fd_set const *)write_fds);
+      if (tmp_5) {
+        ptr = (FileHandlerEntry *)ARR_GetElement(file_handlers,
+                                                 (unsigned int)fd);
+        if (ptr->handler) (*(ptr->handler))(fd,2,ptr->arg);
+        nfd --;
+      }
+    }
+    fd ++;
+  }
+  return;
+}
+
+static void handle_slew_0(struct timespec *raw, struct timespec *cooked,
+                          double dfreq, double doffset,
+                          LCL_ChangeType change_type, void *anything)
+{
+  TimerQueueEntry *ptr;
+  double delta;
+  int i;
+  if (change_type != (unsigned int)LCL_ChangeAdjust) {
+    int tmp;
+    tmp = LCL_IsFirstParameterChangeHandler(& handle_slew_0);
+    __FC_assert(tmp != 0,"sched.c",587,
+                "LCL_IsFirstParameterChangeHandler(handle_slew)");
+    ptr = timer_queue.next;
+    while (ptr != & timer_queue) {
+      UTI_AddDoubleToTimespec(& ptr->ts,- doffset,& ptr->ts);
+      ptr = ptr->next;
+    }
+    i = 0;
+    while (i < SCH_NumberOfClasses) {
+      UTI_AddDoubleToTimespec(& last_class_dispatch[i],- doffset,
+                              & last_class_dispatch[i]);
+      i ++;
+    }
+    UTI_AddDoubleToTimespec(& last_select_ts_raw,- doffset,
+                            & last_select_ts_raw);
+  }
+  UTI_AdjustTimespec(& last_select_ts,cooked,& last_select_ts,& delta,dfreq,
+                     doffset);
+  return;
+}
+
+static void fill_fd_sets(fd_set **read_fds, fd_set **write_fds,
+                         fd_set **except_fds)
+{
+  FileHandlerEntry *handlers;
+  fd_set *rd;
+  fd_set *wr;
+  fd_set *ex;
+  int i;
+  int n;
+  int events;
+  unsigned int tmp;
+  tmp = ARR_GetSize(file_handlers);
+  n = (int)tmp;
+  handlers = (FileHandlerEntry *)ARR_GetElements(file_handlers);
+  ex = (fd_set *)0;
+  wr = ex;
+  rd = wr;
+  i = 0;
+  while (i < n) {
+    events = (handlers + i)->events;
+    if (! events) goto __Cont;
+    if (events & 1) {
+      if (! rd) {
+        rd = *read_fds;
+        FD_ZERO(rd);
+      }
+      FD_SET(i,rd);
+    }
+    if (events & 2) {
+      if (! wr) {
+        wr = *write_fds;
+        FD_ZERO(wr);
+      }
+      FD_SET(i,wr);
+    }
+    if (events & 4) {
+      if (! ex) {
+        ex = *except_fds;
+        FD_ZERO(ex);
+      }
+      FD_SET(i,ex);
+    }
+    __Cont: i ++;
+  }
+  if (! rd) *read_fds = (fd_set *)0;
+  if (! wr) *write_fds = (fd_set *)0;
+  if (! ex) *except_fds = (fd_set *)0;
+  return;
+}
+
+static int check_current_time(struct timespec *prev_raw,
+                              struct timespec *raw, int timeout,
+                              struct timeval *orig_select_tv,
+                              struct timeval *rem_select_tv)
+{
+  int __retres;
+  struct timespec elapsed_min;
+  struct timespec elapsed_max;
+  struct timespec orig_select_ts;
+  struct timespec rem_select_ts;
+  double step;
+  double elapsed;
+  double tmp;
+  UTI_TimevalToTimespec(orig_select_tv,& orig_select_ts);
+  if (timeout) {
+    elapsed_min = orig_select_ts;
+    elapsed_max = elapsed_min;
+  }
+  else 
+    if (rem_select_tv) {
+      if (rem_select_tv->tv_sec >= (time_t)0) {
+        if (rem_select_tv->tv_sec <= orig_select_tv->tv_sec) {
+          if (rem_select_tv->tv_sec != orig_select_tv->tv_sec) goto _LOR;
+          else 
+            if (rem_select_tv->tv_usec != orig_select_tv->tv_usec) {
+              _LOR:
+              {
+                UTI_TimevalToTimespec(rem_select_tv,& rem_select_ts);
+                UTI_DiffTimespecs(& elapsed_min,& orig_select_ts,
+                                  & rem_select_ts);
+                elapsed_max = elapsed_min;
+              }
+            }
+            else goto _LAND_1;
+        }
+        else goto _LAND_1;
+      }
+      else goto _LAND_1;
+    }
+    else {
+      _LAND_1:
+      {
+        if (rem_select_tv) elapsed_max = orig_select_ts;
+        else UTI_DiffTimespecs(& elapsed_max,raw,prev_raw);
+        UTI_ZeroTimespec(& elapsed_min);
+      }
+    }
+  if (last_select_ts_raw.tv_sec + elapsed_min.tv_sec > raw->tv_sec + (long)10) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"Backward time jump detected!",
+                  (void * const *)(__va_args));
+    }
+  }
+  else 
+    if ((prev_raw->tv_sec + elapsed_max.tv_sec) + (long)10 < raw->tv_sec) {
+      {
+        void *__va_args_15[1] = {(void *)0};
+        LOG_Message(LOGS_WARN,"Forward time jump detected!",
+                    (void * const *)(__va_args_15));
+      }
+    }
+    else {
+      __retres = 1;
+      goto return_label;
+    }
+  step = UTI_DiffTimespecsToDouble(& last_select_ts_raw,raw);
+  elapsed = UTI_TimespecToDouble(& elapsed_min);
+  step += elapsed;
+  tmp = fabs(step);
+  ;
+  ;
+  ;
+  LCL_NotifyExternalTimeStep(raw,raw,step,tmp);
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void SCH_MainLoop(void)
+{
+  fd_set read_fds;
+  fd_set write_fds;
+  fd_set except_fds;
+  fd_set *p_read_fds;
+  fd_set *p_write_fds;
+  fd_set *p_except_fds;
+  int status;
+  int errsv;
+  struct timeval tv;
+  struct timeval saved_tv;
+  struct timeval *ptv;
+  struct timespec ts;
+  struct timespec now;
+  struct timespec saved_now;
+  struct timespec cooked;
+  double err;
+  __FC_assert(initialised_1 != 0,"sched.c",723,"initialised");
+  while (! need_to_exit) {
+    int tmp_0;
+    dispatch_timeouts(& now);
+    saved_now = now;
+    if (need_to_exit) break;
+    if (n_timer_queue_entries > (unsigned long)0) {
+      int tmp;
+      UTI_DiffTimespecs(& ts,& (timer_queue.next)->ts,& now);
+      if (ts.tv_sec > (long)0) tmp = 1;
+      else 
+        if (ts.tv_nsec > (long)0) tmp = 1; else tmp = 0;
+      __FC_assert(tmp != 0,"sched.c",737,"ts.tv_sec > 0 || ts.tv_nsec > 0");
+      UTI_TimespecToTimeval(& ts,& tv);
+      ptv = & tv;
+      saved_tv = tv;
+    }
+    else {
+      ptv = (struct timeval *)0;
+      saved_tv.tv_usec = 0;
+      saved_tv.tv_sec = (long)saved_tv.tv_usec;
+    }
+    p_read_fds = & read_fds;
+    p_write_fds = & write_fds;
+    p_except_fds = & except_fds;
+    fill_fd_sets(& p_read_fds,& p_write_fds,& p_except_fds);
+    if (! ptv) 
+      if (! p_read_fds) 
+        if (! p_write_fds) {
+          {
+            void *__va_args[1] = {(void *)0};
+            LOG_Message(LOGS_FATAL,"Nothing to do",
+                        (void * const *)(__va_args));
+          }
+          exit(1);
+        }
+    status = select((int)one_highest_fd,p_read_fds,p_write_fds,p_except_fds,
+                    ptv);
+    errsv = __fc_errno;
+    LCL_ReadRawTime(& now);
+    LCL_CookTime(& now,& cooked,& err);
+    tmp_0 = check_current_time(& saved_now,& now,status == 0,& saved_tv,ptv);
+    if (! tmp_0) LCL_CookTime(& now,& cooked,& err);
+    last_select_ts_raw = now;
+    last_select_ts = cooked;
+    last_select_ts_err = err;
+    if (status < 0) {
+      if (! need_to_exit) 
+        if (errsv != 4) {
+          char *tmp_1;
+          tmp_1 = strerror(errsv);
+          {
+            char *__va_arg0 = tmp_1;
+            void *__va_args_23[1] = {& __va_arg0};
+            LOG_Message(LOGS_FATAL,"select() failed : %s",
+                        (void * const *)(__va_args_23));
+          }
+          exit(1);
+        }
+    }
+    else 
+      if (status > 0) dispatch_filehandlers(status,p_read_fds,p_write_fds,
+                                            p_except_fds);
+      else __FC_assert(ptv != (struct timeval *)0,"sched.c",783,"ptv");
+  }
+  return;
+}
+
+void SCH_QuitProgram(void)
+{
+  need_to_exit = 1;
+  return;
+}
+
+static struct stage stages[3];
+static int enabled;
+static int leap_only_mode;
+static int locked;
+static double max_wander;
+static double max_freq;
+static double smooth_freq;
+static double smooth_offset;
+static struct timespec last_update;
+static void get_smoothing(struct timespec *now, double *poffset,
+                          double *pfreq, double *pwander)
+{
+  double elapsed;
+  double length;
+  double offset;
+  double freq;
+  double wander;
+  int i;
+  elapsed = UTI_DiffTimespecsToDouble(now,& last_update);
+  offset = smooth_offset;
+  freq = smooth_freq;
+  wander = 0.0;
+  i = 0;
+  while (i < 3) {
+    if (elapsed <= 0.0) break;
+    length = stages[i].length;
+    if (length >= elapsed) length = elapsed;
+    wander = stages[i].wander;
+    offset -= (length * (2.0 * freq + wander * length)) / 2.0;
+    freq += wander * length;
+    elapsed -= length;
+    i ++;
+  }
+  if (elapsed > 0.0) {
+    wander = 0.0;
+    offset -= elapsed * freq;
+  }
+  *poffset = offset;
+  *pfreq = freq;
+  if (pwander) *pwander = wander;
+  return;
+}
+
+static void update_stages(void)
+{
+  double s1;
+  double s2;
+  double s;
+  double l1;
+  double l2;
+  double l3;
+  double lc;
+  double f;
+  double f2;
+  double l1t[2];
+  double l3t[2];
+  double err[2];
+  int i;
+  int dir;
+  s1 = smooth_offset / max_wander;
+  s2 = (smooth_freq * smooth_freq) / (2.0 * (max_wander * max_wander));
+  i = 0;
+  dir = -1;
+  while (i <= 1) {
+    err[i] = 0.0;
+    s = (double)dir * s1 + s2;
+    if (s < 0.0) {
+      err[i] += - s;
+      s = 0.0;
+    }
+    l3t[i] = sqrt(s);
+    l1t[i] = l3t[i] - ((double)dir * smooth_freq) / max_wander;
+    if (l1t[i] < 0.0) {
+      err[i] += l1t[i] * l1t[i];
+      l1t[i] = 0.0;
+    }
+    i ++;
+    dir += 2;
+  }
+  if (err[0] < err[1]) {
+    l1 = l1t[0];
+    l3 = l3t[0];
+    dir = -1;
+  }
+  else {
+    l1 = l1t[1];
+    l3 = l3t[1];
+    dir = 1;
+  }
+  l2 = 0.0;
+  f = ((double)dir * smooth_freq + l1 * max_wander) - max_freq;
+  if (f > 0.0) {
+    lc = f / max_wander;
+    if (lc > l1) {
+      lc = l1;
+      f2 = (double)dir * smooth_freq;
+    }
+    else f2 = max_freq;
+    l2 = lc * (2.0 + f / f2);
+    l1 -= lc;
+    l3 -= lc;
+  }
+  stages[0].wander = (double)dir * max_wander;
+  stages[0].length = l1;
+  stages[1].wander = 0.0;
+  stages[1].length = l2;
+  stages[2].wander = (double)(- dir) * max_wander;
+  stages[2].length = l3;
+  i = 0;
+  while (i < 3) i ++;
+  return;
+}
+
+static void update_smoothing(struct timespec *now, double offset, double freq)
+{
+  if (locked) {
+    double tmp;
+    tmp = REF_GetSkew();
+    ;
+    if (tmp / max_wander < (double)10000) SMT_Activate(now);
+    else 
+      if (leap_only_mode) SMT_Activate(now);
+    goto return_label;
+  }
+  get_smoothing(now,& smooth_offset,& smooth_freq,(double *)0);
+  smooth_offset += offset;
+  smooth_freq = (smooth_freq - freq) / (1.0 - freq);
+  last_update = *now;
+  update_stages();
+  return_label: return;
+}
+
+static void handle_slew_1(struct timespec *raw, struct timespec *cooked,
+                          double dfreq, double doffset,
+                          LCL_ChangeType change_type, void *anything)
+{
+  double delta;
+  int tmp;
+  if (change_type == (unsigned int)LCL_ChangeAdjust) 
+    if (leap_only_mode) update_smoothing(cooked,0.0,0.0);
+    else update_smoothing(cooked,doffset,dfreq);
+  tmp = UTI_IsZeroTimespec(& last_update);
+  if (! tmp) UTI_AdjustTimespec(& last_update,cooked,& last_update,& delta,
+                                dfreq,doffset);
+  return;
+}
+
+void SMT_Initialise(void)
+{
+  CNF_GetSmooth(& max_freq,& max_wander,& leap_only_mode);
+  if (max_freq <= 0.0) goto _LOR;
+  else 
+    if (max_wander <= 0.0) {
+      _LOR: {
+              enabled = 0;
+              goto return_label;
+            }
+    }
+  enabled = 1;
+  locked = 1;
+  max_freq *= 1e-6;
+  max_wander *= 1e-6;
+  UTI_ZeroTimespec(& last_update);
+  LCL_AddParameterChangeHandler(& handle_slew_1,(void *)0);
+  return_label: return;
+}
+
+void SMT_Finalise(void)
+{
+  return;
+}
+
+int SMT_IsEnabled(void)
+{
+  return enabled;
+}
+
+double SMT_GetOffset(struct timespec *now)
+{
+  double __retres;
+  double offset;
+  double freq;
+  if (! enabled) {
+    __retres = 0.0;
+    goto return_label;
+  }
+  get_smoothing(now,& offset,& freq,(double *)0);
+  __retres = offset;
+  return_label: return __retres;
+}
+
+void SMT_Activate(struct timespec *now)
+{
+  char const *tmp;
+  if (! enabled) goto return_label;
+  else 
+    if (! locked) goto return_label;
+  if (leap_only_mode) tmp = " (leap seconds only)"; else tmp = "";
+  {
+    char const *__va_arg0 = tmp;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_INFO,"Time smoothing activated%s",
+                (void * const *)(__va_args));
+  }
+  locked = 0;
+  last_update = *now;
+  return_label: return;
+}
+
+void SMT_Reset(struct timespec *now)
+{
+  int i;
+  if (! enabled) goto return_label;
+  smooth_offset = 0.0;
+  smooth_freq = 0.0;
+  last_update = *now;
+  i = 0;
+  while (i < 3) {
+    double tmp;
+    tmp = 0.0;
+    stages[i].length = tmp;
+    stages[i].wander = tmp;
+    i ++;
+  }
+  return_label: return;
+}
+
+void SMT_Leap(struct timespec *now, int leap)
+{
+  if (! enabled) goto return_label;
+  else 
+    if (! leap_only_mode) goto return_label;
+  update_smoothing(now,(double)leap,0.0);
+  return_label: return;
+}
+
+int SMT_GetSmoothingReport(RPT_SmoothingReport *report, struct timespec *now)
+{
+  int __retres;
+  double length;
+  double elapsed;
+  int i;
+  if (! enabled) {
+    __retres = 0;
+    goto return_label;
+  }
+  report->active = ! locked;
+  report->leap_only = leap_only_mode;
+  get_smoothing(now,& report->offset,& report->freq_ppm,& report->wander_ppm);
+  report->freq_ppm *= - 1.0e6;
+  report->wander_ppm *= - 1.0e6;
+  elapsed = UTI_DiffTimespecsToDouble(now,& last_update);
+  if (! locked) {
+    if (elapsed >= 0.0) {
+      i = 0;
+      length = 0.0;
+      while (i < 3) {
+        length += stages[i].length;
+        i ++;
+      }
+      report->last_update_ago = elapsed;
+      if (elapsed < length) report->remaining_time = length - elapsed;
+      else report->remaining_time = 0.0;
+    }
+    else goto _LAND;
+  }
+  else {
+    _LAND: {
+             report->last_update_ago = 0.0;
+             report->remaining_time = 0.0;
+           }
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void RGR_WeightedRegression(double *x, double *y, double *w, int n,
+                            double *b0, double *b1, double *s2, double *sb0,
+                            double *sb1);
+
+double RGR_GetTCoef(int dof);
+
+double RGR_GetChi2Coef(int dof);
+
+int RGR_FindBestRegression(double *x, double *y, double *w, int n, int m,
+                           int min_samples_0, double *b0, double *b1,
+                           double *s2, double *sb0, double *sb1,
+                           int *new_start, int *n_runs, int *dof);
+
+int RGR_FindBestRobustRegression(double *x, double *y, int n, double tol,
+                                 double *b0, double *b1, int *n_runs,
+                                 int *best_start);
+
+int RGR_MultipleRegress(double *x1, double *x2, double *y, int n, double *b2);
+
+double RGR_FindMedian(double *x, int n);
+
+static int initialised_2 = 0;
+static struct SRC_Instance_Record **sources;
+static struct Sort_Element *sort_list;
+static int *sel_sources;
+static int n_sources;
+static int max_n_sources;
+static int selected_source_index;
+static double max_distance_0;
+static double max_jitter_0;
+static double reselect_distance_0;
+static double stratum_weight_0;
+static double combine_limit_0;
+static void slew_sources(struct timespec *raw, struct timespec *cooked,
+                         double dfreq, double doffset,
+                         LCL_ChangeType change_type, void *anything);
+
+static void add_dispersion(double dispersion, void *anything);
+
+static char *source_to_string(SRC_Instance inst);
+
+void SRC_Initialise(void)
+{
+  sources = (struct SRC_Instance_Record **)0;
+  sort_list = (struct Sort_Element *)0;
+  sel_sources = (int *)0;
+  n_sources = 0;
+  max_n_sources = 0;
+  selected_source_index = -1;
+  max_distance_0 = CNF_GetMaxDistance();
+  max_jitter_0 = CNF_GetMaxJitter();
+  reselect_distance_0 = CNF_GetReselectDistance();
+  stratum_weight_0 = CNF_GetStratumWeight();
+  combine_limit_0 = CNF_GetCombineLimit();
+  initialised_2 = 1;
+  LCL_AddParameterChangeHandler(& slew_sources,(void *)0);
+  LCL_AddDispersionNotifyHandler(& add_dispersion,(void *)0);
+  return;
+}
+
+void SRC_Finalise(void)
+{
+  LCL_RemoveParameterChangeHandler(& slew_sources,(void *)0);
+  LCL_RemoveDispersionNotifyHandler(& add_dispersion,(void *)0);
+  free((void *)sources);
+  free((void *)sort_list);
+  free((void *)sel_sources);
+  initialised_2 = 0;
+  return;
+}
+
+SRC_Instance SRC_CreateNewInstance(uint32_t ref_id, SRC_Type type,
+                                   int sel_options, IPAddr *addr,
+                                   int min_samples_0, int max_samples_0,
+                                   double min_delay, double asymmetry)
+{
+  SRC_Instance result;
+  __FC_assert(initialised_2 != 0,"sources.c",222,"initialised");
+  if (min_samples_0 == -1) min_samples_0 = CNF_GetMinSamples();
+  if (max_samples_0 == -1) max_samples_0 = CNF_GetMaxSamples();
+  result = (SRC_Instance)Malloc(sizeof(struct SRC_Instance_Record));
+  result->stats = SST_CreateInstance(ref_id,addr,min_samples_0,max_samples_0,
+                                     min_delay,asymmetry);
+  if (n_sources == max_n_sources) {
+    if (max_n_sources > 0) max_n_sources = 2 * max_n_sources;
+    else max_n_sources = 4;
+    if (sources) {
+      sources = (struct SRC_Instance_Record **)Realloc2((void *)sources,
+                                                        (unsigned long)max_n_sources,
+                                                        sizeof(struct SRC_Instance_Record *));
+      sort_list = (struct Sort_Element *)Realloc2((void *)sort_list,
+                                                  (unsigned long)(3 * max_n_sources),
+                                                  sizeof(struct Sort_Element));
+      sel_sources = (int *)Realloc2((void *)sel_sources,
+                                    (unsigned long)max_n_sources,sizeof(int));
+    }
+    else {
+      sources = (struct SRC_Instance_Record **)Malloc2((unsigned long)max_n_sources,
+                                                       sizeof(struct SRC_Instance_Record *));
+      sort_list = (struct Sort_Element *)Malloc2((unsigned long)(3 * max_n_sources),
+                                                 sizeof(struct Sort_Element));
+      sel_sources = (int *)Malloc2((unsigned long)max_n_sources,sizeof(int));
+    }
+  }
+  *(sources + n_sources) = result;
+  result->index = n_sources;
+  result->type = type;
+  result->sel_options = sel_options;
+  SRC_SetRefid(result,ref_id,addr);
+  SRC_ResetInstance(result);
+  n_sources ++;
+  return result;
+}
+
+void SRC_DestroyInstance(SRC_Instance instance)
+{
+  int dead_index;
+  int i;
+  __FC_assert(initialised_2 != 0,"sources.c",271,"initialised");
+  SST_DeleteInstance(instance->stats);
+  dead_index = instance->index;
+  i = dead_index;
+  while (i < n_sources - 1) {
+    *(sources + i) = *(sources + (i + 1));
+    (*(sources + i))->index = i;
+    i ++;
+  }
+  n_sources --;
+  free((void *)instance);
+  if (selected_source_index == dead_index) SRC_ReselectSource();
+  else 
+    if (selected_source_index > dead_index) selected_source_index --;
+  return;
+}
+
+void SRC_ResetInstance(SRC_Instance instance)
+{
+  instance->active = 0;
+  instance->updates = 0;
+  instance->reachability = 0;
+  instance->reachability_size = 0;
+  instance->distant = 0;
+  instance->status = SRC_BAD_STATS;
+  instance->sel_score = 1.0;
+  SST_ResetInstance(instance->stats);
+  return;
+}
+
+void SRC_SetRefid(SRC_Instance instance, uint32_t ref_id, IPAddr *addr)
+{
+  instance->ref_id = ref_id;
+  instance->ip_addr = addr;
+  SST_SetRefid(instance->stats,ref_id,addr);
+  return;
+}
+
+SST_Stats SRC_GetSourcestats(SRC_Instance instance)
+{
+  SST_Stats __retres;
+  __FC_assert(initialised_2 != 0,"sources.c",320,"initialised");
+  __retres = instance->stats;
+  return __retres;
+}
+
+void SRC_AccumulateSample(SRC_Instance inst, NTP_Sample *sample)
+{
+  int tmp_1;
+  __FC_assert(initialised_2 != 0,"sources.c",338,"initialised");
+  tmp_1 = REF_IsLeapSecondClose();
+  if (tmp_1) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_INFO,"Dropping sample around leap second",
+                  (void * const *)(__va_args));
+    }
+    goto return_label;
+  }
+  SST_AccumulateSample(inst->stats,sample);
+  SST_DoNewRegression(inst->stats);
+  return_label: return;
+}
+
+void SRC_SetActive(SRC_Instance inst)
+{
+  inst->active = 1;
+  return;
+}
+
+void SRC_UnsetActive(SRC_Instance inst)
+{
+  inst->active = 0;
+  return;
+}
+
+static int special_mode_end(void)
+{
+  int __retres;
+  int i;
+  i = 0;
+  while (i < n_sources) {
+    {
+      int tmp;
+      if (! (*(sources + i))->active) goto __Cont;
+      if ((*(sources + i))->reachability_size >= 8 - 1) goto __Cont;
+      tmp = SST_Samples((*(sources + i))->stats);
+      ;
+      if (((8 - 1) - (*(sources + i))->reachability_size) + tmp >= 3) {
+        __retres = 0;
+        goto return_label;
+      }
+    }
+    __Cont: i ++;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void SRC_UpdateReachability(SRC_Instance inst, int reachable)
+{
+  REF_Mode tmp;
+  inst->reachability <<= 1;
+  inst->reachability |= ! (! reachable);
+  inst->reachability = (int)((unsigned int)inst->reachability % (1U << 8));
+  if (inst->reachability_size < 8) (inst->reachability_size) ++;
+  if (! reachable) 
+    if (inst->index == selected_source_index) SRC_SelectSource((struct SRC_Instance_Record *)0);
+  tmp = REF_GetMode();
+  if (tmp != (unsigned int)REF_ModeNormal) {
+    int tmp_0;
+    tmp_0 = special_mode_end();
+    if (tmp_0) REF_SetUnsynchronised();
+  }
+  if (inst->type == (unsigned int)SRC_NTP) 
+    if (! inst->reachability) {
+      if (inst->reachability_size == 8) goto _LOR; else goto _LAND;
+    }
+    else {
+      _LAND: ;
+      if (inst->status == (unsigned int)SRC_BAD_DISTANCE) goto _LOR;
+      else 
+        if (inst->status == (unsigned int)SRC_JITTERY) goto _LOR;
+        else 
+          if (inst->status == (unsigned int)SRC_FALSETICKER) _LOR:
+                                                             NSR_HandleBadSource
+                                                             (inst->ip_addr);
+    }
+  return;
+}
+
+void SRC_ResetReachability(SRC_Instance inst)
+{
+  inst->reachability = 0;
+  inst->reachability_size = 0;
+  SRC_UpdateReachability(inst,0);
+  return;
+}
+
+static void log_selection_message(char *format, char *arg)
+{
+  REF_Mode tmp;
+  tmp = REF_GetMode();
+  if (tmp != (unsigned int)REF_ModeNormal) goto return_label;
+  {
+    char *__va_arg0 = arg;
+    void *__va_args[1] = {& __va_arg0};
+    LOG_Message(LOGS_INFO,(char const *)format,(void * const *)(__va_args));
+  }
+  return_label: return;
+}
+
+static int compare_sort_elements(void const *a, void const *b)
+{
+  int __retres;
+  struct Sort_Element const *u = (struct Sort_Element const *)a;
+  struct Sort_Element const *v = (struct Sort_Element const *)b;
+  if (u->offset < v->offset) {
+    __retres = -1;
+    goto return_label;
+  }
+  else 
+    if (u->offset > v->offset) {
+      __retres = 1;
+      goto return_label;
+    }
+    else 
+      if (u->tag < v->tag) {
+        __retres = -1;
+        goto return_label;
+      }
+      else 
+        if (u->tag > v->tag) {
+          __retres = 1;
+          goto return_label;
+        }
+        else {
+          __retres = 0;
+          goto return_label;
+        }
+  return_label: return __retres;
+}
+
+static char *source_to_string(SRC_Instance inst)
+{
+  char *__retres;
+  switch (inst->type) {
+    char *tmp;
+    char *tmp_0;
+    case (SRC_Type)SRC_NTP: tmp = UTI_IPToString(inst->ip_addr);
+    __retres = tmp;
+    goto return_label;
+    case (SRC_Type)SRC_REFCLOCK: tmp_0 = UTI_RefidToString(inst->ref_id);
+    __retres = tmp_0;
+    goto return_label;
+    default: __FC_assert(0 != 0,"sources.c",476,"0");
+  }
+  __retres = (char *)0;
+  return_label: return __retres;
+}
+
+static void mark_ok_sources(SRC_Status status)
+{
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont;
+    (*(sources + i))->status = status;
+    __Cont: i ++;
+  }
+  return;
+}
+
+static int combine_sources(int n_sel_sources, struct timespec *ref_time,
+                           double *offset, double *offset_sd,
+                           double *frequency, double *frequency_sd,
+                           double *skew)
+{
+  int __retres;
+  struct timespec src_ref_time;
+  double src_offset;
+  double src_offset_sd;
+  double src_frequency;
+  double src_frequency_sd;
+  double src_skew;
+  double src_root_delay;
+  double src_root_dispersion;
+  double sel_src_distance;
+  double elapsed;
+  double offset_weight;
+  double sum_offset_weight;
+  double sum_offset;
+  double sum2_offset_sd;
+  double frequency_weight;
+  double sum_frequency_weight;
+  double sum_frequency;
+  double inv_sum2_frequency_sd;
+  double inv_sum2_skew;
+  int i;
+  int index_0;
+  int combined;
+  double tmp_1;
+  double tmp_2;
+  if (n_sel_sources == 1) {
+    __retres = 1;
+    goto return_label;
+  }
+  sum2_offset_sd = 0.0;
+  sum_offset = sum2_offset_sd;
+  sum_offset_weight = sum_offset;
+  inv_sum2_skew = 0.0;
+  inv_sum2_frequency_sd = inv_sum2_skew;
+  sum_frequency = inv_sum2_frequency_sd;
+  sum_frequency_weight = sum_frequency;
+  sel_src_distance = (*(sources + selected_source_index))->sel_info.root_distance;
+  if ((*(sources + selected_source_index))->type == (unsigned int)SRC_NTP) 
+    sel_src_distance += reselect_distance_0;
+  combined = 0;
+  i = combined;
+  /*@ loop unroll 2; */
+  while (i < n_sel_sources) {
+    index_0 = *(sel_sources + i);
+    SST_GetTrackingData((*(sources + index_0))->stats,& src_ref_time,
+                        & src_offset,& src_offset_sd,& src_frequency,
+                        & src_frequency_sd,& src_skew,& src_root_delay,
+                        & src_root_dispersion);
+    if (index_0 != selected_source_index) {
+      if ((*(sources + index_0))->sel_info.root_distance > combine_limit_0 * sel_src_distance) 
+        goto _LOR;
+      else {
+        double tmp;
+        double tmp_0;
+        tmp = fabs(*frequency - src_frequency);
+        tmp_0 = LCL_GetMaxClockError();
+        ;
+        if (tmp > combine_limit_0 * ((*skew + src_skew) + tmp_0)) 
+          _LOR:
+          if ((*(sources + index_0))->reachability_size >= 8) (*(sources + index_0))->distant = 32;
+          else (*(sources + index_0))->distant = 1;
+        else goto _LAND;
+      }
+    }
+    else {
+      _LAND: ;
+      if ((*(sources + index_0))->distant) ((*(sources + index_0))->distant) --;
+    }
+    if ((*(sources + index_0))->distant) {
+      (*(sources + index_0))->status = SRC_DISTANT;
+      goto __Cont;
+    }
+    if ((*(sources + index_0))->status == (unsigned int)SRC_OK) (*(sources + index_0))->status = SRC_UNSELECTED;
+    elapsed = UTI_DiffTimespecsToDouble(ref_time,& src_ref_time);
+    src_offset += elapsed * src_frequency;
+    src_offset_sd += elapsed * src_frequency_sd;
+    offset_weight = 1.0 / (*(sources + index_0))->sel_info.root_distance;
+    frequency_weight = 1.0 / (src_frequency_sd * src_frequency_sd);
+    sum_offset_weight += offset_weight;
+    sum_offset += offset_weight * src_offset;
+    sum2_offset_sd += offset_weight * (src_offset_sd * src_offset_sd + 
+                                       (src_offset - *offset) * (src_offset - *offset));
+    sum_frequency_weight += frequency_weight;
+    sum_frequency += frequency_weight * src_frequency;
+    inv_sum2_frequency_sd += 1.0 / (src_frequency_sd * src_frequency_sd);
+    inv_sum2_skew += 1.0 / (src_skew * src_skew);
+    combined ++;
+    __Cont: i ++;
+  }
+  __FC_assert(combined != 0,"sources.c",574,"combined");
+  *offset = sum_offset / sum_offset_weight;
+  *offset_sd = sqrt(sum2_offset_sd / sum_offset_weight);
+  *frequency = sum_frequency / sum_frequency_weight;
+  tmp_1 = sqrt(inv_sum2_frequency_sd);
+  *frequency_sd = 1.0 / tmp_1;
+  tmp_2 = sqrt(inv_sum2_skew);
+  *skew = 1.0 / tmp_2;
+  __retres = combined;
+  return_label: return __retres;
+}
+
+void SRC_SelectSource(SRC_Instance updated_inst)
+{
+  struct SelectInfo *si;
+  struct timespec now;
+  struct timespec ref_time;
+  int i;
+  int j;
+  int j1;
+  int j2;
+  int index_0;
+  int sel_prefer;
+  int n_endpoints;
+  int n_sel_sources;
+  int sel_req_source;
+  int n_badstats_sources;
+  int max_sel_reach;
+  int max_sel_reach_size;
+  int max_badstat_reach;
+  int depth;
+  int best_depth;
+  int trust_depth;
+  int best_trust_depth;
+  int combined;
+  int stratum;
+  int min_stratum;
+  int max_score_index;
+  int orphan_stratum;
+  int orphan_source;
+  int leap_votes;
+  int leap_ins;
+  int leap_del;
+  double src_offset;
+  double src_offset_sd;
+  double src_frequency;
+  double src_frequency_sd;
+  double src_skew;
+  double src_root_delay;
+  double src_root_dispersion;
+  double best_lo;
+  double best_hi;
+  double distance;
+  double sel_src_distance;
+  double max_score;
+  double first_sample_ago;
+  double max_reach_sample_ago;
+  NTP_Leap leap_status;
+  if (updated_inst) (updated_inst->updates) ++;
+  if (n_sources == 0) {
+    if (selected_source_index != -1) {
+      log_selection_message((char *)"Can\'t synchronise: no sources",
+                            (char *)0);
+      selected_source_index = -1;
+    }
+    goto return_label;
+  }
+  SCH_GetLastEventTime(& now,(double *)0,(struct timespec *)0);
+  n_endpoints = 0;
+  n_sel_sources = 0;
+  n_badstats_sources = 0;
+  sel_req_source = 0;
+  max_badstat_reach = 0;
+  max_sel_reach = max_badstat_reach;
+  max_sel_reach_size = 0;
+  max_reach_sample_ago = 0.0;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    __FC_assert(((*(sources + i))->status != (unsigned int)SRC_OK) != 0,
+                "sources.c",634,"sources[i]->status != SRC_OK");
+    if ((*(sources + i))->sel_options & 0x8) sel_req_source = 1;
+    if ((*(sources + i))->sel_options & 0x1) {
+      (*(sources + i))->status = SRC_UNSELECTABLE;
+      goto __Cont;
+    }
+    si = & (*(sources + i))->sel_info;
+    SST_GetSelectionData((*(sources + i))->stats,& now,& si->stratum,
+                         & si->leap,& si->lo_limit,& si->hi_limit,
+                         & si->root_distance,& si->std_dev,
+                         & first_sample_ago,& si->last_sample_ago,
+                         & si->select_ok);
+    if (! si->select_ok) {
+      n_badstats_sources ++;
+      (*(sources + i))->status = SRC_BAD_STATS;
+      if (max_badstat_reach < (*(sources + i))->reachability) max_badstat_reach = (*(
+                                                              sources + i))->reachability;
+      goto __Cont;
+    }
+    if (first_sample_ago < 2.0 * si->last_sample_ago) {
+      double tmp;
+      tmp = LCL_GetMaxClockError();
+      double extra_disp =
+        tmp * (2.0 * si->last_sample_ago - first_sample_ago);
+      si->root_distance += extra_disp;
+      si->lo_limit -= extra_disp;
+      si->hi_limit += extra_disp;
+    }
+    if (si->root_distance > max_distance_0) {
+      (*(sources + i))->status = SRC_BAD_DISTANCE;
+      goto __Cont;
+    }
+    if (si->std_dev > max_jitter_0) {
+      (*(sources + i))->status = SRC_JITTERY;
+      goto __Cont;
+    }
+    (*(sources + i))->status = SRC_OK;
+    if ((*(sources + i))->reachability) 
+      if (max_reach_sample_ago < first_sample_ago) max_reach_sample_ago = first_sample_ago;
+    if (max_sel_reach < (*(sources + i))->reachability) max_sel_reach = (*(
+                                                        sources + i))->reachability;
+    if (max_sel_reach_size < (*(sources + i))->reachability_size) max_sel_reach_size = (*(
+                                                                  sources + i))->reachability_size;
+    __Cont: i ++;
+  }
+  orphan_stratum = REF_GetOrphanStratum();
+  orphan_source = -1;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_0;
+    si = & (*(sources + i))->sel_info;
+    if (! (*(sources + i))->reachability) 
+      if (max_reach_sample_ago < si->last_sample_ago) {
+        (*(sources + i))->status = SRC_STALE;
+        goto __Cont_0;
+      }
+    if (si->stratum >= orphan_stratum) 
+      if ((*(sources + i))->type == (unsigned int)SRC_NTP) {
+        (*(sources + i))->status = SRC_ORPHAN;
+        if (si->stratum == orphan_stratum) 
+          if ((*(sources + i))->reachability) 
+            if (orphan_source == -1) orphan_source = i;
+            else 
+              if ((*(sources + i))->ref_id < (*(sources + orphan_source))->ref_id) 
+                orphan_source = i;
+        goto __Cont_0;
+      }
+    n_sel_sources ++;
+    __Cont_0: i ++;
+  }
+  if (! n_sel_sources) 
+    if (orphan_source != -1) {
+      uint32_t local_ref_id =
+        NSR_GetLocalRefid((*(sources + orphan_source))->ip_addr);
+      if (! local_ref_id) {
+        {
+          void *__va_args[1] = {(void *)0};
+          LOG_Message(LOGS_ERR,"Unknown local refid in orphan mode",
+                      (void * const *)(__va_args));
+        }
+      }
+      else 
+        if ((*(sources + orphan_source))->ref_id < local_ref_id) {
+          (*(sources + orphan_source))->status = SRC_OK;
+          n_sel_sources = 1;
+        }
+    }
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_1;
+    si = & (*(sources + i))->sel_info;
+    j1 = n_endpoints;
+    j2 = j1 + 1;
+    (sort_list + j1)->index = i;
+    (sort_list + j1)->offset = si->lo_limit;
+    (sort_list + j1)->tag = LOW;
+    (sort_list + j2)->index = i;
+    (sort_list + j2)->offset = si->hi_limit;
+    (sort_list + j2)->tag = HIGH;
+    n_endpoints += 2;
+    __Cont_1: i ++;
+  }
+  if (n_badstats_sources) 
+    if (n_sel_sources) 
+      if (selected_source_index == -1) 
+        if (max_sel_reach_size < 8) 
+          if (max_sel_reach >> 1 == max_badstat_reach) {
+            mark_ok_sources(SRC_WAITS_STATS);
+            goto return_label;
+          }
+  if (n_endpoints == 0) {
+    if (selected_source_index != -1) {
+      log_selection_message((char *)"Can\'t synchronise: no selectable sources",
+                            (char *)0);
+      selected_source_index = -1;
+    }
+    goto return_label;
+  }
+  qsort((void *)sort_list,(unsigned long)n_endpoints,
+        sizeof(struct Sort_Element),& compare_sort_elements);
+  best_trust_depth = 0;
+  trust_depth = best_trust_depth;
+  best_depth = 0;
+  depth = best_depth;
+  best_hi = 0.0;
+  best_lo = best_hi;
+  i = 0;
+  /*@ loop unroll 4; */
+  while (i < n_endpoints) {
+    switch ((sort_list + i)->tag) {
+      case LOW: depth ++;
+      if ((*(sources + (sort_list + i)->index))->sel_options & 0x4) trust_depth ++;
+      if (trust_depth > best_trust_depth) goto _LOR;
+      else 
+        if (trust_depth == best_trust_depth) 
+          if (depth > best_depth) {
+            _LOR:
+            {
+              best_trust_depth = trust_depth;
+              best_depth = depth;
+              best_lo = (sort_list + i)->offset;
+            }
+          }
+      break;
+      case HIGH: ;
+      if (trust_depth == best_trust_depth) 
+        if (depth == best_depth) best_hi = (sort_list + i)->offset;
+      if ((*(sources + (sort_list + i)->index))->sel_options & 0x4) trust_depth --;
+      depth --;
+      break;
+      default: __FC_assert(0 != 0,"sources.c",858,"0");
+    }
+    i ++;
+  }
+  if (best_depth <= n_sel_sources / 2) 
+    if (! best_trust_depth) {
+      if (selected_source_index != -1) {
+        log_selection_message((char *)"Can\'t synchronise: no majority",
+                              (char *)0);
+        REF_SetUnsynchronised();
+        selected_source_index = -1;
+      }
+      mark_ok_sources(SRC_FALSETICKER);
+      goto return_label;
+    }
+  n_sel_sources = 0;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto __Cont_2;
+    if (! best_trust_depth) goto _LOR_1;
+    else 
+      if ((*(sources + i))->sel_options & 0x4) {
+        _LOR_1: ;
+        if ((*(sources + i))->sel_info.lo_limit <= best_lo) {
+          if ((*(sources + i))->sel_info.hi_limit >= best_hi) goto _LOR_0;
+          else goto _LAND_2;
+        }
+        else goto _LAND_2;
+      }
+      else {
+        _LAND_2: ;
+        if ((*(sources + i))->sel_info.lo_limit >= best_lo) {
+          if ((*(sources + i))->sel_info.hi_limit <= best_hi) {
+            _LOR_0:
+            {
+              int tmp_1;
+              tmp_1 = n_sel_sources;
+              n_sel_sources ++;
+              *(sel_sources + tmp_1) = i;
+              if ((*(sources + i))->sel_options & 0x8) sel_req_source = 0;
+            }
+          }
+          else goto _LAND_0;
+        }
+        else {
+          _LAND_0: ;
+          if ((*(sources + i))->sel_info.lo_limit <= best_lo) {
+            if ((*(sources + i))->sel_info.hi_limit >= best_hi) (*(sources + i))->status = SRC_UNTRUSTED;
+            else goto _LAND;
+          }
+          else _LAND: (*(sources + i))->status = SRC_FALSETICKER;
+        }
+      }
+    __Cont_2: i ++;
+  }
+  if (! n_sel_sources) goto _LOR_2;
+  else 
+    if (sel_req_source) goto _LOR_2;
+    else {
+      int tmp_4;
+      tmp_4 = CNF_GetMinSources();
+      ;
+      if (n_sel_sources < tmp_4) {
+        _LOR_2:
+        {
+          if (selected_source_index != -1) {
+            char const *tmp_3;
+            if (! n_sel_sources) tmp_3 = "no";
+            else {
+              char const *tmp_2;
+              if (sel_req_source) tmp_2 = "no required source in";
+              else tmp_2 = "not enough";
+              tmp_3 = tmp_2;
+            }
+            log_selection_message((char *)"Can\'t synchronise: %s selectable sources",
+                                  (char *)tmp_3);
+            selected_source_index = -1;
+          }
+          mark_ok_sources(SRC_WAITS_SOURCES);
+          goto return_label;
+        }
+      }
+    }
+  leap_votes = 0;
+  leap_del = leap_votes;
+  leap_ins = leap_del;
+  i = leap_ins;
+  /*@ loop unroll 2; */
+  while (i < n_sel_sources) {
+    index_0 = *(sel_sources + i);
+    if (best_trust_depth) 
+      if (! ((*(sources + index_0))->sel_options & 0x4)) goto __Cont_3;
+    leap_votes ++;
+    if ((*(sources + index_0))->sel_info.leap == (unsigned int)LEAP_InsertSecond) 
+      leap_ins ++;
+    else 
+      if ((*(sources + index_0))->sel_info.leap == (unsigned int)LEAP_DeleteSecond) 
+        leap_del ++;
+    __Cont_3: i ++;
+  }
+  if (leap_ins > leap_votes / 2) leap_status = LEAP_InsertSecond;
+  else 
+    if (leap_del > leap_votes / 2) leap_status = LEAP_DeleteSecond;
+    else leap_status = LEAP_Normal;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sel_sources) {
+    if ((*(sources + *(sel_sources + i)))->sel_options & 0x2) break;
+    i ++;
+  }
+  if (i < n_sel_sources) {
+    j = 0;
+    i = j;
+    /*@ loop unroll 2; */
+    while (i < n_sel_sources) {
+      if (! ((*(sources + *(sel_sources + i)))->sel_options & 0x2)) (*(
+                                                                    sources + *(
+                                                                    sel_sources + i)))->status = SRC_NONPREFERRED;
+      else {
+        int tmp_5;
+        tmp_5 = j;
+        j ++;
+        *(sel_sources + tmp_5) = *(sel_sources + i);
+      }
+      i ++;
+    }
+    __FC_assert((j > 0) != 0,"sources.c",960,"j > 0");
+    n_sel_sources = j;
+    sel_prefer = 1;
+  }
+  else sel_prefer = 0;
+  index_0 = *(sel_sources + 0);
+  min_stratum = (*(sources + index_0))->sel_info.stratum;
+  i = 1;
+  /*@ loop unroll 2; */
+  while (i < n_sel_sources) {
+    index_0 = *(sel_sources + i);
+    stratum = (*(sources + index_0))->sel_info.stratum;
+    if (stratum < min_stratum) min_stratum = stratum;
+    i ++;
+  }
+  max_score_index = -1;
+  max_score = 0.0;
+  sel_src_distance = 0.0;
+  if (selected_source_index != -1) sel_src_distance = (*(sources + selected_source_index))->sel_info.root_distance + 
+                                                      (double)((*(sources + selected_source_index))->sel_info.stratum - min_stratum) * stratum_weight_0;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->status != (unsigned int)SRC_OK) goto _LOR_3;
+    else 
+      if (sel_prefer) 
+        if (! ((*(sources + i))->sel_options & 0x2)) {
+          _LOR_3:
+          {
+            (*(sources + i))->sel_score = 1.0;
+            (*(sources + i))->distant = 32;
+            goto __Cont_4;
+          }
+        }
+    distance = (*(sources + i))->sel_info.root_distance + (double)((*(
+                                                                   sources + i))->sel_info.stratum - min_stratum) * stratum_weight_0;
+    if ((*(sources + i))->type == (unsigned int)SRC_NTP) distance += reselect_distance_0;
+    if (selected_source_index != -1) {
+      if (*(sources + i) == updated_inst) goto _LOR_4;
+      else 
+        if (*(sources + selected_source_index) == updated_inst) {
+          _LOR_4:
+          {
+            (*(sources + i))->sel_score *= sel_src_distance / distance;
+            if ((*(sources + i))->sel_score < 1.0) (*(sources + i))->sel_score = 1.0;
+          }
+        }
+    }
+    else (*(sources + i))->sel_score = 1.0 / distance;
+    if (max_score < (*(sources + i))->sel_score) {
+      max_score = (*(sources + i))->sel_score;
+      max_score_index = i;
+    }
+    __Cont_4: i ++;
+  }
+  __FC_assert((max_score_index != -1) != 0,"sources.c",1033,
+              "max_score_index != INVALID_SOURCE");
+  if (selected_source_index == -1) goto _LOR_5;
+  else 
+    if ((*(sources + selected_source_index))->status != (unsigned int)SRC_OK) 
+      goto _LOR_5;
+    else 
+      if (max_score_index != selected_source_index) 
+        if (max_score > 10.0) {
+          _LOR_5:
+          {
+            char *tmp_7;
+            if ((*(sources + max_score_index))->updates == 0) {
+              selected_source_index = -1;
+              mark_ok_sources(SRC_WAITS_UPDATE);
+              goto return_label;
+            }
+            selected_source_index = max_score_index;
+            tmp_7 = source_to_string(*(sources + selected_source_index));
+            log_selection_message((char *)"Selected source %s",tmp_7);
+            i = 0;
+            /*@ loop unroll 2; */
+            while (i < n_sources) {
+              (*(sources + i))->sel_score = 1.0;
+              (*(sources + i))->distant = 0;
+              i ++;
+            }
+          }
+        }
+  (*(sources + selected_source_index))->status = SRC_SELECTED;
+  if ((*(sources + selected_source_index))->updates == 0) {
+    i = 0;
+    /*@ loop unroll 2; */
+    while (i < n_sel_sources) {
+      index_0 = *(sel_sources + i);
+      if ((*(sources + index_0))->status == (unsigned int)SRC_OK) 
+        if ((*(sources + index_0))->distant) (*(sources + index_0))->status = SRC_DISTANT;
+        else (*(sources + index_0))->status = SRC_UNSELECTED;
+      i ++;
+    }
+    goto return_label;
+  }
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    (*(sources + i))->updates = 0;
+    i ++;
+  }
+  SST_GetTrackingData((*(sources + selected_source_index))->stats,& ref_time,
+                      & src_offset,& src_offset_sd,& src_frequency,
+                      & src_frequency_sd,& src_skew,& src_root_delay,
+                      & src_root_dispersion);
+  combined = combine_sources(n_sel_sources,& ref_time,& src_offset,
+                             & src_offset_sd,& src_frequency,
+                             & src_frequency_sd,& src_skew);
+  REF_SetReference((*(sources + selected_source_index))->sel_info.stratum,
+                   leap_status,combined,
+                   (*(sources + selected_source_index))->ref_id,
+                   (*(sources + selected_source_index))->ip_addr,& ref_time,
+                   src_offset,src_offset_sd,src_frequency,src_frequency_sd,
+                   src_skew,src_root_delay,src_root_dispersion);
+  return_label: return;
+}
+
+void SRC_ReselectSource(void)
+{
+  selected_source_index = -1;
+  SRC_SelectSource((struct SRC_Instance_Record *)0);
+  return;
+}
+
+void SRC_SetReselectDistance(double distance)
+{
+  if (reselect_distance_0 != distance) {
+    reselect_distance_0 = distance;
+    {
+      double __va_arg0 = distance;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_INFO,"New reselect distance %f",
+                  (void * const *)(__va_args));
+    }
+  }
+  return;
+}
+
+static void slew_sources(struct timespec *raw, struct timespec *cooked,
+                         double dfreq, double doffset,
+                         LCL_ChangeType change_type, void *anything)
+{
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if (change_type == (unsigned int)LCL_ChangeUnknownStep) SST_ResetInstance
+                                                            ((*(sources + i))->stats);
+    else SST_SlewSamples((*(sources + i))->stats,cooked,dfreq,doffset);
+    i ++;
+  }
+  if (change_type == (unsigned int)LCL_ChangeUnknownStep) SRC_SelectSource
+                                                          ((struct SRC_Instance_Record *)0);
+  return;
+}
+
+static void add_dispersion(double dispersion, void *anything)
+{
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    SST_AddDispersion((*(sources + i))->stats,dispersion);
+    i ++;
+  }
+  return;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param1);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param1 + (0 ..))), (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            *(param1 + (0 ..)), *(param0 + (0 ..));
+ */
+int snprintf_va_3(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0, char *param1);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: param1), (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param1,
+            *(param0 + (0 ..));
+ */
+int snprintf_va_4(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0,
+                  unsigned int param1);
+
+static FILE *open_dumpfile(SRC_Instance inst, char const *mode_0)
+{
+  FILE *__retres;
+  FILE *f;
+  char filename[1024];
+  char *dumpdir_0;
+  dumpdir_0 = CNF_GetDumpDir();
+  if ((int)*(dumpdir_0 + 0) == '\000') {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_WARN,"dumpdir not specified",
+                  (void * const *)(__va_args));
+    }
+    __retres = (FILE *)0;
+    goto return_label;
+  }
+  if (inst->type == (unsigned int)SRC_NTP) {
+    int tmp_0;
+    char *tmp;
+    tmp = source_to_string(inst);
+    ;
+    tmp_0 = snprintf_va_3(filename,sizeof(filename),"%s/%s.dat",dumpdir_0,
+                          tmp);
+    if ((unsigned long)tmp_0 >= sizeof(filename)) goto _LOR; else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (inst->type != (unsigned int)SRC_NTP) {
+      int tmp_1;
+      tmp_1 = snprintf_va_4(filename,sizeof(filename),"%s/refid:%08x.dat",
+                            dumpdir_0,inst->ref_id);
+      if ((unsigned long)tmp_1 >= sizeof(filename)) {
+        _LOR:
+        {
+          {
+            void *__va_args_12[1] = {(void *)0};
+            LOG_Message(LOGS_WARN,"dumpdir too long",
+                        (void * const *)(__va_args_12));
+          }
+          __retres = (FILE *)0;
+          goto return_label;
+        }
+      }
+    }
+  }
+  f = fopen((char const *)(filename),mode_0);
+  if (! f) 
+    if ((int)*(mode_0 + 0) != 'r') {
+      char *tmp_2;
+      tmp_2 = source_to_string(inst);
+      {
+        char *__va_arg0 = tmp_2;
+        void *__va_args_15[1] = {& __va_arg0};
+        LOG_Message(LOGS_WARN,"Could not open dump file for %s",
+                    (void * const *)(__va_args_15));
+      }
+    }
+  __retres = f;
+  return_label: return __retres;
+}
+
+void SRC_DumpSources(void)
+{
+  FILE *out;
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    out = open_dumpfile(*(sources + i),"w");
+    if (! out) goto __Cont;
+    SST_SaveToFile((*(sources + i))->stats,out);
+    fclose(out);
+    __Cont: i ++;
+  }
+  return;
+}
+
+void SRC_ReloadSources(void)
+{
+  FILE *in;
+  int i;
+  i = 0;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    {
+      int tmp_1;
+      in = open_dumpfile(*(sources + i),"r");
+      if (! in) goto __Cont;
+      tmp_1 = SST_LoadFromFile((*(sources + i))->stats,in);
+      if (tmp_1) {
+        char *tmp_0;
+        tmp_0 = source_to_string(*(sources + i));
+        {
+          char *__va_arg0 = tmp_0;
+          void *__va_args[1] = {& __va_arg0};
+          LOG_Message(LOGS_INFO,"Loaded dump file for %s",
+                      (void * const *)(__va_args));
+        }
+      }
+      else {
+        char *tmp;
+        tmp = source_to_string(*(sources + i));
+        {
+          char *__va_arg0_9 = tmp;
+          void *__va_args_11[1] = {& __va_arg0_9};
+          LOG_Message(LOGS_WARN,"Could not load dump file for %s",
+                      (void * const *)(__va_args_11));
+        }
+      }
+      fclose(in);
+    }
+    __Cont: i ++;
+  }
+  return;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_5(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_6(char * __restrict s, size_t n,
+                  char const * __restrict format, char *param0);
+
+void SRC_RemoveDumpFiles(void)
+{
+  char pattern[1024];
+  char name[64];
+  char *dumpdir_0;
+  char *s;
+  IPAddr ip_addr;
+  glob_t gl;
+  size_t i;
+  int tmp_0;
+  dumpdir_0 = CNF_GetDumpDir();
+  if ((int)*(dumpdir_0 + 0) == '\000') goto return_label;
+  else {
+    int tmp;
+    tmp = snprintf_va_5(pattern,sizeof(pattern),"%s/*.dat",dumpdir_0);
+    if ((unsigned long)tmp >= sizeof(pattern)) goto return_label;
+  }
+  tmp_0 = glob((char const *)(pattern),0,
+               (int (*)(char const *epath, int eerrno))0,& gl);
+  if (tmp_0) goto return_label;
+  i = (unsigned long)0;
+  while (i < gl.gl_pathc) {
+    {
+      size_t tmp_2;
+      size_t tmp_3;
+      int tmp_4;
+      s = strrchr((char const *)*(gl.gl_pathv + i),'/');
+      if (! s) goto __Cont;
+      else {
+        int tmp_1;
+        tmp_1 = snprintf_va_6(name,sizeof(name),"%s",s + 1);
+        if ((unsigned long)tmp_1 >= sizeof(name)) goto __Cont;
+      }
+      tmp_2 = strlen((char const *)(name));
+      if (tmp_2 < (size_t)4) goto __Cont;
+      tmp_3 = strlen((char const *)(name));
+      name[tmp_3 - (size_t)4] = (char)'\000';
+      tmp_4 = strncmp((char const *)(name),"refid:",(unsigned long)6);
+      if (tmp_4) {
+        int tmp_5;
+        tmp_5 = UTI_StringToIP((char const *)(name),& ip_addr);
+        if (! tmp_5) goto __Cont;
+      }
+      unlink((char const *)*(gl.gl_pathv + i));
+    }
+    __Cont: i += (size_t)1;
+  }
+  globfree(& gl);
+  return_label: return;
+}
+
+int SRC_IsSyncPeer(SRC_Instance inst)
+{
+  int __retres;
+  if (inst->index == selected_source_index) {
+    __retres = 1;
+    goto return_label;
+  }
+  else {
+    __retres = 0;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+int SRC_IsReachable(SRC_Instance inst)
+{
+  int __retres;
+  __retres = inst->reachability != 0;
+  return __retres;
+}
+
+int SRC_ReadNumberOfSources(void)
+{
+  return n_sources;
+}
+
+int SRC_ActiveSources(void)
+{
+  int i;
+  int r;
+  r = 0;
+  i = r;
+  /*@ loop unroll 2; */
+  while (i < n_sources) {
+    if ((*(sources + i))->active) r ++;
+    i ++;
+  }
+  return r;
+}
+
+int SRC_ReportSource(int index_0, RPT_SourceReport *report,
+                     struct timespec *now)
+{
+  int __retres;
+  SRC_Instance src;
+  if (index_0 >= n_sources) goto _LOR;
+  else 
+    if (index_0 < 0) {
+      _LOR: {
+              __retres = 0;
+              goto return_label;
+            }
+    }
+    else {
+      src = *(sources + index_0);
+      if (src->ip_addr) report->ip_addr = *(src->ip_addr);
+      else {
+        report->ip_addr.addr.in4 = src->ref_id;
+        report->ip_addr.family = (unsigned short)1;
+      }
+      switch (src->status) {
+        case (SRC_Status)SRC_FALSETICKER: report->state = RPT_FALSETICKER;
+        break;
+        case (SRC_Status)SRC_JITTERY: report->state = RPT_JITTERY;
+        break;
+        case (SRC_Status)SRC_UNTRUSTED: case (SRC_Status)SRC_WAITS_SOURCES:
+        case (SRC_Status)SRC_NONPREFERRED: case (SRC_Status)SRC_WAITS_UPDATE:
+        case (SRC_Status)SRC_DISTANT: case (SRC_Status)SRC_OUTLIER:
+        report->state = RPT_OUTLIER;
+        break;
+        case (SRC_Status)SRC_UNSELECTED: report->state = RPT_CANDIDATE;
+        break;
+        case (SRC_Status)SRC_SELECTED: report->state = RPT_SYNC;
+        break;
+        default: report->state = RPT_UNREACH;
+        break;
+      }
+      report->sel_options = src->sel_options;
+      report->reachability = src->reachability;
+      SST_DoSourceReport(src->stats,report,now);
+      __retres = 1;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+int SRC_ReportSourcestats(int index_0, RPT_SourcestatsReport *report,
+                          struct timespec *now)
+{
+  int __retres;
+  SRC_Instance src;
+  if (index_0 >= n_sources) goto _LOR;
+  else 
+    if (index_0 < 0) {
+      _LOR: {
+              __retres = 0;
+              goto return_label;
+            }
+    }
+    else {
+      src = *(sources + index_0);
+      report->ref_id = src->ref_id;
+      if (src->ip_addr) report->ip_addr = *(src->ip_addr);
+      else report->ip_addr.family = (unsigned short)0;
+      SST_DoSourcestatsReport(src->stats,report,now);
+      __retres = 1;
+      goto return_label;
+    }
+  return_label: return __retres;
+}
+
+SRC_Type SRC_GetType(int index_0)
+{
+  SRC_Type __retres;
+  if (index_0 >= n_sources) {
+    __retres = (enum __anonenum_SRC_Type_23)(-1);
+    goto return_label;
+  }
+  else 
+    if (index_0 < 0) {
+      __retres = (enum __anonenum_SRC_Type_23)(-1);
+      goto return_label;
+    }
+  __retres = (*(sources + index_0))->type;
+  return_label: return __retres;
+}
+
+static LOG_FileID logfileid_0;
+static void find_min_delay_sample(SST_Stats inst);
+
+static int get_buf_index(SST_Stats inst, int i);
+
+void SST_Initialise(void)
+{
+  int tmp;
+  tmp = CNF_GetLogStatistics();
+  if (tmp) logfileid_0 = LOG_FileOpen("statistics",
+                                      "   Date (UTC) Time     IP Address    Std dev\'n Est offset  Offset sd  Diff freq   Est skew  Stress  Ns  Bs  Nr  Asym");
+  else logfileid_0 = -1;
+  return;
+}
+
+void SST_Finalise(void)
+{
+  return;
+}
+
+SST_Stats SST_CreateInstance(uint32_t refid, IPAddr *addr, int min_samples_0,
+                             int max_samples_0, double min_delay,
+                             double asymmetry)
+{
+  SST_Stats inst;
+  inst = (SST_Stats)Malloc(sizeof(struct SST_Stats_Record));
+  inst->min_samples = min_samples_0;
+  inst->max_samples = max_samples_0;
+  inst->fixed_min_delay = min_delay;
+  inst->fixed_asymmetry = asymmetry;
+  SST_SetRefid(inst,refid,addr);
+  SST_ResetInstance(inst);
+  return inst;
+}
+
+void SST_DeleteInstance(SST_Stats inst)
+{
+  free((void *)inst);
+  return;
+}
+
+void SST_ResetInstance(SST_Stats inst)
+{
+  inst->n_samples = 0;
+  inst->runs_samples = 0;
+  inst->last_sample = 0;
+  inst->regression_ok = 0;
+  inst->best_single_sample = 0;
+  inst->min_delay_sample = 0;
+  inst->estimated_frequency = (double)0;
+  inst->estimated_frequency_sd = 2000.0 / 1.0e6;
+  inst->skew = 2000.0 / 1.0e6;
+  inst->estimated_offset = 0.0;
+  inst->estimated_offset_sd = 86400.0;
+  UTI_ZeroTimespec(& inst->offset_time);
+  inst->std_dev = 4.0;
+  inst->nruns = 0;
+  inst->asymmetry_run = 0;
+  inst->asymmetry = 0.0;
+  inst->leap = LEAP_Unsynchronised;
+  return;
+}
+
+void SST_SetRefid(SST_Stats inst, uint32_t refid, IPAddr *addr)
+{
+  inst->refid = refid;
+  inst->ip_addr = addr;
+  return;
+}
+
+static void prune_register(SST_Stats inst, int new_oldest)
+{
+  if (! new_oldest) goto return_label;
+  __FC_assert((inst->n_samples >= new_oldest) != 0,"sourcestats.c",280,
+              "inst->n_samples >= new_oldest");
+  inst->n_samples -= new_oldest;
+  inst->runs_samples += new_oldest;
+  if (inst->runs_samples > inst->n_samples * (2 - 1)) inst->runs_samples = 
+                                                      inst->n_samples * (
+                                                      2 - 1);
+  __FC_assert((inst->n_samples + inst->runs_samples <= 64 * 2) != 0,
+              "sourcestats.c",286,
+              "inst->n_samples + inst->runs_samples <= MAX_SAMPLES * REGRESS_RUNS_RATIO");
+  find_min_delay_sample(inst);
+  return_label: return;
+}
+
+void SST_AccumulateSample(SST_Stats inst, NTP_Sample *sample)
+{
+  int n;
+  int m;
+  int tmp_3;
+  if (inst->n_samples > 0) 
+    if (inst->n_samples == 64) goto _LOR;
+    else 
+      if (inst->n_samples == inst->max_samples) _LOR: prune_register(inst,1);
+  if (inst->n_samples) {
+    int tmp_2;
+    tmp_2 = UTI_CompareTimespecs(& inst->sample_times[inst->last_sample],
+                                 & sample->time);
+    if (tmp_2 >= 0) {
+      char *tmp_1;
+      if (inst->ip_addr) tmp_1 = UTI_IPToString(inst->ip_addr);
+      else tmp_1 = UTI_RefidToString(inst->refid);
+      {
+        char *__va_arg0 = tmp_1;
+        void *__va_args[1] = {& __va_arg0};
+        LOG_Message(LOGS_WARN,
+                    "Out of order sample detected, discarding history for %s",
+                    (void * const *)(__va_args));
+      }
+      SST_ResetInstance(inst);
+    }
+  }
+  tmp_3 = (inst->last_sample + 1) % (64 * 2);
+  inst->last_sample = tmp_3;
+  n = tmp_3;
+  m = n % 64;
+  inst->sample_times[n] = sample->time;
+  inst->offsets[n] = - sample->offset;
+  inst->orig_offsets[m] = - sample->offset;
+  inst->peer_delays[n] = sample->peer_delay;
+  inst->peer_dispersions[m] = sample->peer_dispersion;
+  inst->root_delays[m] = sample->root_delay;
+  inst->root_dispersions[m] = sample->root_dispersion;
+  inst->stratum = sample->stratum;
+  inst->leap = sample->leap;
+  if (inst->peer_delays[n] < inst->fixed_min_delay) inst->peer_delays[n] = 
+                                                    2.0 * inst->fixed_min_delay - inst->peer_delays[n];
+  if (! inst->n_samples) inst->min_delay_sample = n;
+  else 
+    if (inst->peer_delays[n] < inst->peer_delays[inst->min_delay_sample]) 
+      inst->min_delay_sample = n;
+  (inst->n_samples) ++;
+  return;
+}
+
+static int get_runsbuf_index(SST_Stats inst, int i)
+{
+  int __retres;
+  __retres = (int)((unsigned int)((((inst->last_sample + (2 * 64) * 2) - inst->n_samples) + i) + 1) % (unsigned int)(
+                   64 * 2));
+  return __retres;
+}
+
+static int get_buf_index(SST_Stats inst, int i)
+{
+  int __retres;
+  __retres = (int)((unsigned int)((((inst->last_sample + 64 * 2) - inst->n_samples) + i) + 1) % (unsigned int)64);
+  return __retres;
+}
+
+static void convert_to_intervals(SST_Stats inst, double *times_back)
+{
+  struct timespec *ts;
+  int i;
+  ts = & inst->sample_times[inst->last_sample];
+  i = - inst->runs_samples;
+  while (i < inst->n_samples) {
+    {
+      int tmp;
+      ;
+      tmp = get_runsbuf_index(inst,i);
+      ;
+      *(times_back + i) = UTI_DiffTimespecsToDouble(& inst->sample_times[tmp],
+                                                    ts);
+    }
+    i ++;
+  }
+  return;
+}
+
+static void find_best_sample_index(SST_Stats inst, double *times_back)
+{
+  double root_distance;
+  double best_root_distance;
+  double elapsed;
+  int i;
+  int j;
+  int best_index;
+  if (! inst->n_samples) goto return_label;
+  best_index = -1;
+  best_root_distance = 0x1.fffffffffffffp+1023;
+  i = 0;
+  while (i < inst->n_samples) {
+    j = get_buf_index(inst,i);
+    elapsed = - *(times_back + i);
+    __FC_assert((elapsed >= 0.0) != 0,"sourcestats.c",398,"elapsed >= 0.0");
+    root_distance = (inst->root_dispersions[j] + elapsed * inst->skew) + 
+                    0.5 * inst->root_delays[j];
+    if (root_distance < best_root_distance) {
+      best_root_distance = root_distance;
+      best_index = i;
+    }
+    i ++;
+  }
+  __FC_assert((best_index >= 0) != 0,"sourcestats.c",407,"best_index >= 0");
+  inst->best_single_sample = best_index;
+  return_label: return;
+}
+
+static void find_min_delay_sample(SST_Stats inst)
+{
+  int i;
+  int index_0;
+  inst->min_delay_sample = get_runsbuf_index(inst,- inst->runs_samples);
+  i = - inst->runs_samples + 1;
+  while (i < inst->n_samples) {
+    index_0 = get_runsbuf_index(inst,i);
+    if (inst->peer_delays[index_0] < inst->peer_delays[inst->min_delay_sample]) 
+      inst->min_delay_sample = index_0;
+    i ++;
+  }
+  return;
+}
+
+static int estimate_asymmetry(double *times_back, double *offsets,
+                              double *delays, int n, double *asymmetry,
+                              int *asymmetry_run)
+{
+  int __retres;
+  double a;
+  int tmp;
+  int tmp_0;
+  double tmp_1;
+  tmp = RGR_MultipleRegress(times_back,delays,offsets,n,& a);
+  if (tmp) {
+    if (a * (double)*asymmetry_run < 0.0) {
+      _LOR:
+      {
+        *asymmetry = (double)0;
+        *asymmetry_run = (int)0.0;
+        __retres = 0;
+        goto return_label;
+      }
+    }
+  }
+  else goto _LOR;
+  if (a <= - 0.45) {
+    if (*asymmetry_run > -1000) (*asymmetry_run) --; else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (a >= 0.45) 
+      if (*asymmetry_run < 1000) (*asymmetry_run) ++;
+  }
+  tmp_0 = abs(*asymmetry_run);
+  if (tmp_0 < 10) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (a < 0.5) tmp_1 = a; else tmp_1 = 0.5;
+  if (- 0.5 > tmp_1) *asymmetry = - 0.5;
+  else {
+    double tmp_2;
+    if (a < 0.5) tmp_2 = a; else tmp_2 = 0.5;
+    *asymmetry = tmp_2;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static void correct_asymmetry(SST_Stats inst, double *times_back,
+                              double *offsets)
+{
+  double min_delay;
+  double delays[64 * 2];
+  int i;
+  int n;
+  double tmp_1;
+  if (inst->fixed_asymmetry == 0.0) goto return_label;
+  min_delay = SST_MinRoundTripDelay(inst);
+  n = inst->runs_samples + inst->n_samples;
+  i = 0;
+  while (i < n) {
+    int tmp;
+    tmp = get_runsbuf_index(inst,i - inst->runs_samples);
+    delays[i] = inst->peer_delays[tmp] - min_delay;
+    i ++;
+  }
+  tmp_1 = fabs(inst->fixed_asymmetry);
+  if (tmp_1 <= 0.5) inst->asymmetry = inst->fixed_asymmetry;
+  else {
+    int tmp_0;
+    tmp_0 = estimate_asymmetry(times_back,offsets,delays,n,& inst->asymmetry,
+                               & inst->asymmetry_run);
+    if (! tmp_0) goto return_label;
+  }
+  i = 0;
+  while (i < n) {
+    *(offsets + i) -= inst->asymmetry * delays[i];
+    i ++;
+  }
+  return_label: return;
+}
+
+void SST_DoNewRegression(SST_Stats inst)
+{
+  double times_back[64 * 2];
+  double offsets[64 * 2];
+  double peer_distances[64];
+  double weights[64];
+  int degrees_of_freedom;
+  int best_start;
+  int times_back_start;
+  double est_intercept;
+  double est_slope;
+  double est_var;
+  double est_intercept_sd;
+  double est_slope_sd;
+  int i;
+  int j;
+  int nruns;
+  double min_distance;
+  double median_distance;
+  double sd_weight;
+  double sd;
+  double old_skew;
+  double old_freq;
+  double stress;
+  double precision;
+  convert_to_intervals(inst,& times_back[inst->runs_samples]);
+  if (inst->n_samples > 0) {
+    double tmp_1;
+    i = - inst->runs_samples;
+    while (i < inst->n_samples) {
+      {
+        int tmp;
+        tmp = get_runsbuf_index(inst,i);
+        offsets[i + inst->runs_samples] = inst->offsets[tmp];
+      }
+      i ++;
+    }
+    i = 0;
+    min_distance = 0x1.fffffffffffffp+1023;
+    while (i < inst->n_samples) {
+      {
+        int tmp_0;
+        j = get_buf_index(inst,i);
+        tmp_0 = get_runsbuf_index(inst,i);
+        peer_distances[i] = 0.5 * inst->peer_delays[tmp_0] + inst->peer_dispersions[j];
+        if (peer_distances[i] < min_distance) min_distance = peer_distances[i];
+      }
+      i ++;
+    }
+    precision = LCL_GetSysPrecisionAsQuantum();
+    median_distance = RGR_FindMedian(peer_distances,inst->n_samples);
+    sd = (median_distance - min_distance) / 0.7;
+    if (sd < min_distance) tmp_1 = sd; else tmp_1 = min_distance;
+    ;
+    if (precision > tmp_1) sd = precision;
+    else {
+      double tmp_2;
+      if (sd < min_distance) tmp_2 = sd; else tmp_2 = min_distance;
+      sd = tmp_2;
+    }
+    min_distance += precision;
+    i = 0;
+    while (i < inst->n_samples) {
+      sd_weight = 1.0;
+      if (peer_distances[i] > min_distance) sd_weight += (peer_distances[i] - min_distance) / sd;
+      weights[i] = sd_weight * sd_weight;
+      i ++;
+    }
+  }
+  correct_asymmetry(inst,times_back,offsets);
+  inst->regression_ok = RGR_FindBestRegression(& times_back[inst->runs_samples],
+                                               & offsets[inst->runs_samples],
+                                               weights,inst->n_samples,
+                                               inst->runs_samples,
+                                               inst->min_samples,
+                                               & est_intercept,& est_slope,
+                                               & est_var,& est_intercept_sd,
+                                               & est_slope_sd,& best_start,
+                                               & nruns,& degrees_of_freedom);
+  if (inst->regression_ok) {
+    double tmp_3;
+    double tmp_5;
+    double tmp_6;
+    double tmp_8;
+    double tmp_10;
+    old_skew = inst->skew;
+    old_freq = inst->estimated_frequency;
+    inst->estimated_frequency = est_slope;
+    if (est_slope_sd < 1.0e+02) tmp_3 = est_slope_sd; else tmp_3 = 1.0e+02;
+    if (1.0e-12 > tmp_3) inst->estimated_frequency_sd = 1.0e-12;
+    else {
+      double tmp_4;
+      if (est_slope_sd < 1.0e+02) tmp_4 = est_slope_sd; else tmp_4 = 1.0e+02;
+      inst->estimated_frequency_sd = tmp_4;
+    }
+    tmp_5 = RGR_GetTCoef(degrees_of_freedom);
+    inst->skew = est_slope_sd * tmp_5;
+    inst->estimated_offset = est_intercept;
+    inst->offset_time = inst->sample_times[inst->last_sample];
+    inst->estimated_offset_sd = est_intercept_sd;
+    tmp_6 = sqrt(est_var);
+    if (1.0e-9 > tmp_6) inst->std_dev = 1.0e-9;
+    else inst->std_dev = sqrt(est_var);
+    inst->nruns = nruns;
+    if (inst->skew < 1.0e+02) tmp_8 = inst->skew; else tmp_8 = 1.0e+02;
+    if (1.0e-12 > tmp_8) inst->skew = 1.0e-12;
+    else {
+      double tmp_9;
+      if (inst->skew < 1.0e+02) tmp_9 = inst->skew; else tmp_9 = 1.0e+02;
+      inst->skew = tmp_9;
+    }
+    tmp_10 = fabs(old_freq - inst->estimated_frequency);
+    stress = tmp_10 / old_skew;
+    if (logfileid_0 != -1) {
+      char *tmp_13;
+      char *tmp_14;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      ;
+      if (inst->ip_addr) tmp_13 = UTI_IPToString(inst->ip_addr);
+      else tmp_13 = UTI_RefidToString(inst->refid);
+      tmp_14 = UTI_TimeToLogForm(inst->offset_time.tv_sec);
+      ;
+      {
+        char *__va_arg0 = tmp_14;
+        char *__va_arg1 = tmp_13;
+        double __va_arg2 = inst->std_dev;
+        double __va_arg3 = inst->estimated_offset;
+        double __va_arg4 = inst->estimated_offset_sd;
+        double __va_arg5 = inst->estimated_frequency;
+        double __va_arg6 = inst->skew;
+        double __va_arg7 = stress;
+        int __va_arg8 = inst->n_samples;
+        int __va_arg9 = best_start;
+        int __va_arg10 = inst->nruns;
+        double __va_arg11 = inst->asymmetry;
+        void *__va_args[12] =
+          {& __va_arg0,
+           & __va_arg1,
+           & __va_arg2,
+           & __va_arg3,
+           & __va_arg4,
+           & __va_arg5,
+           & __va_arg6,
+           & __va_arg7,
+           & __va_arg8,
+           & __va_arg9,
+           & __va_arg10,
+           & __va_arg11};
+        LOG_FileWrite(logfileid_0,
+                      "%s %-15s %10.3e %10.3e %10.3e %10.3e %10.3e %7.1e %3d %3d %3d %5.2f",
+                      (void * const *)(__va_args));
+      }
+    }
+    times_back_start = inst->runs_samples + best_start;
+    prune_register(inst,best_start);
+  }
+  else {
+    inst->estimated_frequency = 0.0;
+    inst->estimated_frequency_sd = 2000.0 / 1.0e6;
+    inst->skew = 2000.0 / 1.0e6;
+    times_back_start = 0;
+  }
+  find_best_sample_index(inst,& times_back[times_back_start]);
+  return;
+}
+
+void SST_GetFrequencyRange(SST_Stats inst, double *lo, double *hi)
+{
+  double freq;
+  double skew;
+  freq = inst->estimated_frequency;
+  skew = inst->skew;
+  *lo = freq - skew;
+  *hi = freq + skew;
+  if (skew > 2000.0 / 1.0e6) {
+    *lo = - (2000.0 / 1.0e6);
+    *hi = 2000.0 / 1.0e6;
+  }
+  return;
+}
+
+void SST_GetSelectionData(SST_Stats inst, struct timespec *now, int *stratum,
+                          NTP_Leap *leap, double *offset_lo_limit,
+                          double *offset_hi_limit, double *root_distance,
+                          double *std_dev, double *first_sample_ago,
+                          double *last_sample_ago, int *select_ok)
+{
+  double offset;
+  double sample_elapsed;
+  int i;
+  int j;
+  double tmp;
+  if (! inst->n_samples) {
+    *select_ok = 0;
+    goto return_label;
+  }
+  i = get_runsbuf_index(inst,inst->best_single_sample);
+  j = get_buf_index(inst,inst->best_single_sample);
+  *stratum = inst->stratum;
+  *leap = inst->leap;
+  *std_dev = inst->std_dev;
+  tmp = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]);
+  sample_elapsed = fabs(tmp);
+  offset = inst->offsets[i] + sample_elapsed * inst->estimated_frequency;
+  *root_distance = (0.5 * inst->root_delays[j] + inst->root_dispersions[j]) + 
+                   sample_elapsed * inst->skew;
+  *offset_lo_limit = offset - *root_distance;
+  *offset_hi_limit = offset + *root_distance;
+  i = get_runsbuf_index(inst,0);
+  *first_sample_ago = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]);
+  i = get_runsbuf_index(inst,inst->n_samples - 1);
+  *last_sample_ago = UTI_DiffTimespecsToDouble(now,& inst->sample_times[i]);
+  *select_ok = inst->regression_ok;
+  return_label: return;
+}
+
+void SST_GetTrackingData(SST_Stats inst, struct timespec *ref_time,
+                         double *average_offset, double *offset_sd,
+                         double *frequency, double *frequency_sd,
+                         double *skew, double *root_delay,
+                         double *root_dispersion)
+{
+  int i;
+  int j;
+  double elapsed_sample;
+  __FC_assert((inst->n_samples > 0) != 0,"sourcestats.c",713,
+              "inst->n_samples > 0");
+  i = get_runsbuf_index(inst,inst->best_single_sample);
+  j = get_buf_index(inst,inst->best_single_sample);
+  *ref_time = inst->offset_time;
+  *average_offset = inst->estimated_offset;
+  *offset_sd = inst->estimated_offset_sd;
+  *frequency = inst->estimated_frequency;
+  *frequency_sd = inst->estimated_frequency_sd;
+  *skew = inst->skew;
+  *root_delay = inst->root_delays[j];
+  elapsed_sample = UTI_DiffTimespecsToDouble(& inst->offset_time,
+                                             & inst->sample_times[i]);
+  *root_dispersion = (inst->root_dispersions[j] + inst->skew * elapsed_sample) + *offset_sd;
+  return;
+}
+
+void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq,
+                     double doffset)
+{
+  int m;
+  int i;
+  double delta_time;
+  struct timespec *sample;
+  struct timespec prev;
+  double prev_offset;
+  double prev_freq;
+  if (! inst->n_samples) goto return_label;
+  m = - inst->runs_samples;
+  while (m < inst->n_samples) {
+    i = get_runsbuf_index(inst,m);
+    sample = & inst->sample_times[i];
+    prev = *sample;
+    UTI_AdjustTimespec(sample,when,sample,& delta_time,dfreq,doffset);
+    inst->offsets[i] += delta_time;
+    m ++;
+  }
+  prev = inst->offset_time;
+  prev_offset = inst->estimated_offset;
+  prev_freq = inst->estimated_frequency;
+  UTI_AdjustTimespec(& inst->offset_time,when,& inst->offset_time,
+                     & delta_time,dfreq,doffset);
+  inst->estimated_offset += delta_time;
+  inst->estimated_frequency = (inst->estimated_frequency - dfreq) / (
+                              1.0 - dfreq);
+  return_label: return;
+}
+
+void SST_AddDispersion(SST_Stats inst, double dispersion)
+{
+  int m;
+  int i;
+  m = 0;
+  while (m < inst->n_samples) {
+    i = get_buf_index(inst,m);
+    inst->root_dispersions[i] += dispersion;
+    inst->peer_dispersions[i] += dispersion;
+    m ++;
+  }
+  return;
+}
+
+double SST_PredictOffset(SST_Stats inst, struct timespec *when)
+{
+  double __retres;
+  double elapsed;
+  if (inst->n_samples < 3) 
+    if (inst->n_samples > 0) {
+      __retres = inst->offsets[inst->last_sample];
+      goto return_label;
+    }
+    else {
+      __retres = 0.0;
+      goto return_label;
+    }
+  else {
+    elapsed = UTI_DiffTimespecsToDouble(when,& inst->offset_time);
+    __retres = inst->estimated_offset + elapsed * inst->estimated_frequency;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+double SST_MinRoundTripDelay(SST_Stats inst)
+{
+  double __retres;
+  if (inst->fixed_min_delay > 0.0) {
+    __retres = inst->fixed_min_delay;
+    goto return_label;
+  }
+  if (! inst->n_samples) {
+    __retres = 0x1.fffffffffffffp+1023;
+    goto return_label;
+  }
+  __retres = inst->peer_delays[inst->min_delay_sample];
+  return_label: return __retres;
+}
+
+int SST_GetDelayTestData(SST_Stats inst, struct timespec *sample_time,
+                         double *last_sample_ago, double *predicted_offset,
+                         double *min_delay, double *skew, double *std_dev)
+{
+  int __retres;
+  if (inst->n_samples < 6) {
+    __retres = 0;
+    goto return_label;
+  }
+  *last_sample_ago = UTI_DiffTimespecsToDouble(sample_time,
+                                               & inst->offset_time);
+  *predicted_offset = inst->estimated_offset + *last_sample_ago * inst->estimated_frequency;
+  *min_delay = SST_MinRoundTripDelay(inst);
+  *skew = inst->skew;
+  *std_dev = inst->std_dev;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param0;
+ */
+int fprintf_va_6(FILE * __restrict stream, char const * __restrict format,
+                 int param0);
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param9),
+            (indirect: param8), (indirect: param7), (indirect: param6),
+            (indirect: param5), (indirect: param4), (indirect: param3),
+            (indirect: param2), (indirect: param1), (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param9, param8, param7, param6,
+            param5, param4, param3, param2, param1, param0;
+ */
+int fprintf_va_7(FILE * __restrict stream, char const * __restrict format,
+                 unsigned long param0, unsigned long param1, double param2,
+                 double param3, double param4, double param5, double param6,
+                 double param7, double param8, int param9);
+
+/*@ requires valid_read_string(format);
+    assigns \result, stream->__fc_FILE_data;
+    assigns \result
+      \from (indirect: stream->__fc_FILE_id),
+            (indirect: stream->__fc_FILE_data),
+            (indirect: *(format + (0 ..))), (indirect: param0);
+    assigns stream->__fc_FILE_data
+      \from (indirect: stream->__fc_FILE_id), stream->__fc_FILE_data,
+            (indirect: *(format + (0 ..))), param0;
+ */
+int fprintf_va_8(FILE * __restrict stream, char const * __restrict format,
+                 int param0);
+
+void SST_SaveToFile(SST_Stats inst, FILE *out)
+{
+  int m;
+  int i;
+  int j;
+  fprintf_va_6(out,"%d\n",inst->n_samples);
+  m = 0;
+  while (m < inst->n_samples) {
+    i = get_runsbuf_index(inst,m);
+    j = get_buf_index(inst,m);
+    fprintf_va_7(out,"%08lx %08lx %.6e %.6e %.6e %.6e %.6e %.6e %.6e %d\n",
+                 (unsigned long)inst->sample_times[i].tv_sec,
+                 (unsigned long)inst->sample_times[i].tv_nsec / (unsigned long)1000,
+                 inst->offsets[i],inst->orig_offsets[j],inst->peer_delays[i],
+                 inst->peer_dispersions[j],inst->root_delays[j],
+                 inst->root_dispersions[j],1.0,inst->stratum);
+    m ++;
+  }
+  fprintf_va_8(out,"%d\n",inst->asymmetry_run);
+  return;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_60(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param9);
+    requires \valid(param8);
+    requires \valid(param7);
+    requires \valid(param6);
+    requires \valid(param5);
+    requires \valid(param4);
+    requires \valid(param3);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param9);
+    ensures \initialized(param8);
+    ensures \initialized(param7);
+    ensures \initialized(param6);
+    ensures \initialized(param5);
+    ensures \initialized(param4);
+    ensures \initialized(param3);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param9, *param8, *param7, *param6, *param5, *param4,
+            *param3, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param9
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param8
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param7
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param6
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param5
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param4
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param3
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_61(char const * __restrict s, char const * __restrict format,
+                 unsigned long *param0, unsigned long *param1,
+                 double *param2, double *param3, double *param4,
+                 double *param5, double *param6, double *param7,
+                 double *param8, int *param9);
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param0);
+    ensures \initialized(param0);
+    assigns \result, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_62(char const * __restrict s, char const * __restrict format,
+                 int *param0);
+
+int SST_LoadFromFile(SST_Stats inst, FILE *in)
+{
+  int __retres;
+  uint64_t sec;
+  unsigned long usec;
+  int i;
+  char line[1024];
+  double weight;
+  char *tmp_3;
+  SST_ResetInstance(inst);
+  tmp_3 = fgets(line,(int)sizeof(line),in);
+  if (tmp_3) {
+    int tmp_4;
+    tmp_4 = sscanf_va_60((char const *)(line),"%d",& inst->n_samples);
+    if (tmp_4 == 1) {
+      if (inst->n_samples >= 0) {
+        if (inst->n_samples <= 64) {
+          char *tmp_1;
+          i = 0;
+          while (i < inst->n_samples) {
+            {
+              char *tmp;
+              tmp = fgets(line,(int)sizeof(line),in);
+              if (tmp) {
+                int tmp_0;
+                tmp_0 = sscanf_va_61((char const *)(line),
+                                     "%lx%lx%lf%lf%lf%lf%lf%lf%lf%d\n",
+                                     (unsigned long *)(& sec),& usec,
+                                     & inst->offsets[i],
+                                     & inst->orig_offsets[i],
+                                     & inst->peer_delays[i],
+                                     & inst->peer_dispersions[i],
+                                     & inst->root_delays[i],
+                                     & inst->root_dispersions[i],& weight,
+                                     & inst->stratum);
+                if (tmp_0 != 10) {
+                  _LOR:
+                  {
+                    inst->n_samples = 0;
+                    __retres = 0;
+                    goto return_label;
+                  }
+                }
+                else {
+                  inst->sample_times[i].tv_sec = (long)sec;
+                  inst->sample_times[i].tv_nsec = (long)((unsigned long)1000 * usec);
+                  UTI_NormaliseTimespec(& inst->sample_times[i]);
+                }
+              }
+              else goto _LOR;
+            }
+            i ++;
+          }
+          tmp_1 = fgets(line,(int)sizeof(line),in);
+          if (tmp_1) {
+            int tmp_2;
+            tmp_2 = sscanf_va_62((char const *)(line),"%d\n",
+                                 & inst->asymmetry_run);
+            if (tmp_2 != 1) inst->asymmetry_run = 0;
+          }
+          else inst->asymmetry_run = 0;
+        }
+        else goto _LAND_1;
+      }
+      else goto _LAND_1;
+    }
+    else goto _LAND_1;
+  }
+  else {
+    _LAND_1: {
+               inst->n_samples = 0;
+               __retres = 0;
+               goto return_label;
+             }
+  }
+  if (! inst->n_samples) {
+    __retres = 1;
+    goto return_label;
+  }
+  inst->last_sample = inst->n_samples - 1;
+  find_min_delay_sample(inst);
+  SST_DoNewRegression(inst);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void SST_DoSourceReport(SST_Stats inst, RPT_SourceReport *report,
+                        struct timespec *now)
+{
+  int i;
+  int j;
+  struct timespec last_sample_time;
+  if (inst->n_samples > 0) {
+    double tmp;
+    i = get_runsbuf_index(inst,inst->n_samples - 1);
+    j = get_buf_index(inst,inst->n_samples - 1);
+    report->orig_latest_meas = inst->orig_offsets[j];
+    report->latest_meas = inst->offsets[i];
+    report->latest_meas_err = 0.5 * inst->root_delays[j] + inst->root_dispersions[j];
+    report->stratum = inst->stratum;
+    last_sample_time = inst->sample_times[i];
+    last_sample_time.tv_nsec = (long)0;
+    tmp = UTI_DiffTimespecsToDouble(now,& last_sample_time);
+    report->latest_meas_ago = (unsigned long)tmp;
+  }
+  else {
+    report->latest_meas_ago = (unsigned long)((unsigned int)(-1));
+    report->orig_latest_meas = (double)0;
+    report->latest_meas = (double)0;
+    report->latest_meas_err = (double)0;
+    report->stratum = 0;
+  }
+  return;
+}
+
+int SST_Samples(SST_Stats inst)
+{
+  int __retres;
+  __retres = inst->n_samples;
+  return __retres;
+}
+
+void SST_DoSourcestatsReport(SST_Stats inst, RPT_SourcestatsReport *report,
+                             struct timespec *now)
+{
+  double dspan;
+  double elapsed;
+  double sample_elapsed;
+  int li;
+  int lj;
+  int bi;
+  int bj;
+  report->n_samples = (unsigned long)inst->n_samples;
+  report->n_runs = (unsigned long)inst->nruns;
+  if (inst->n_samples > 1) {
+    int tmp;
+    li = get_runsbuf_index(inst,inst->n_samples - 1);
+    lj = get_buf_index(inst,inst->n_samples - 1);
+    tmp = get_runsbuf_index(inst,0);
+    ;
+    ;
+    dspan = UTI_DiffTimespecsToDouble(& inst->sample_times[li],
+                                      & inst->sample_times[tmp]);
+    report->span_seconds = (unsigned long)(dspan + 0.5);
+    if (inst->n_samples > 3) {
+      elapsed = UTI_DiffTimespecsToDouble(now,& inst->offset_time);
+      bi = get_runsbuf_index(inst,inst->best_single_sample);
+      bj = get_buf_index(inst,inst->best_single_sample);
+      sample_elapsed = UTI_DiffTimespecsToDouble(now,
+                                                 & inst->sample_times[bi]);
+      report->est_offset = inst->estimated_offset + elapsed * inst->estimated_frequency;
+      report->est_offset_err = (inst->estimated_offset_sd + sample_elapsed * inst->skew) + (
+                               0.5 * inst->root_delays[bj] + inst->root_dispersions[bj]);
+    }
+    else {
+      report->est_offset = inst->offsets[li];
+      report->est_offset_err = 0.5 * inst->root_delays[lj] + inst->root_dispersions[lj];
+    }
+  }
+  else {
+    report->span_seconds = (unsigned long)0;
+    report->est_offset = (double)0;
+    report->est_offset_err = (double)0;
+  }
+  report->resid_freq_ppm = 1.0e6 * inst->estimated_frequency;
+  report->skew_ppm = 1.0e6 * inst->skew;
+  report->sd = inst->std_dev;
+  return;
+}
+
+double SST_GetJitterAsymmetry(SST_Stats inst)
+{
+  double __retres;
+  __retres = inst->asymmetry;
+  return __retres;
+}
+
+void UTI_ZeroTimespec(struct timespec *ts)
+{
+  ts->tv_sec = (long)0;
+  ts->tv_nsec = (long)0;
+  return;
+}
+
+int UTI_IsZeroTimespec(struct timespec *ts)
+{
+  int tmp;
+  if (! ts->tv_sec) 
+    if (! ts->tv_nsec) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  return tmp;
+}
+
+void UTI_TimevalToTimespec(struct timeval *tv, struct timespec *ts)
+{
+  ts->tv_sec = tv->tv_sec;
+  ts->tv_nsec = (long)(1000 * tv->tv_usec);
+  return;
+}
+
+void UTI_TimespecToTimeval(struct timespec *ts, struct timeval *tv)
+{
+  tv->tv_sec = ts->tv_sec;
+  tv->tv_usec = (int)(ts->tv_nsec / (long)1000);
+  return;
+}
+
+double UTI_TimespecToDouble(struct timespec *ts)
+{
+  double __retres;
+  __retres = (double)ts->tv_sec + 1.0e-9 * (double)ts->tv_nsec;
+  return __retres;
+}
+
+void UTI_DoubleToTimespec(double d, struct timespec *ts)
+{
+  ts->tv_sec = (long)d;
+  ts->tv_nsec = (long)(1.0e9 * (d - (double)ts->tv_sec));
+  UTI_NormaliseTimespec(ts);
+  return;
+}
+
+void UTI_NormaliseTimespec(struct timespec *ts)
+{
+  if (ts->tv_nsec >= (long)1000000000) goto _LOR;
+  else 
+    if (ts->tv_nsec < (long)0) {
+      _LOR:
+      {
+        ts->tv_sec += ts->tv_nsec / (long)1000000000;
+        ts->tv_nsec %= (long)1000000000;
+        if (ts->tv_nsec < (long)0) {
+          (ts->tv_sec) --;
+          ts->tv_nsec += (long)1000000000;
+        }
+      }
+    }
+  return;
+}
+
+double UTI_TimevalToDouble(struct timeval *tv)
+{
+  double __retres;
+  __retres = (double)tv->tv_sec + 1.0e-6 * (double)tv->tv_usec;
+  return __retres;
+}
+
+void UTI_DoubleToTimeval(double a, struct timeval *b)
+{
+  double frac_part;
+  b->tv_sec = (long)a;
+  frac_part = 1.0e6 * (a - (double)b->tv_sec);
+  if (frac_part > (double)0) b->tv_usec = (int)(frac_part + 0.5);
+  else b->tv_usec = (int)(frac_part - 0.5);
+  UTI_NormaliseTimeval(b);
+  return;
+}
+
+void UTI_NormaliseTimeval(struct timeval *x)
+{
+  if (x->tv_usec >= 1000000) goto _LOR;
+  else 
+    if (x->tv_usec <= -1000000) {
+      _LOR:
+      {
+        x->tv_sec += (time_t)(x->tv_usec / 1000000);
+        x->tv_usec %= 1000000;
+      }
+    }
+  if (x->tv_usec < 0) {
+    x->tv_sec -= (time_t)1;
+    x->tv_usec += 1000000;
+  }
+  return;
+}
+
+int UTI_CompareTimespecs(struct timespec *a, struct timespec *b)
+{
+  int __retres;
+  if (a->tv_sec < b->tv_sec) {
+    __retres = -1;
+    goto return_label;
+  }
+  if (a->tv_sec > b->tv_sec) {
+    __retres = 1;
+    goto return_label;
+  }
+  if (a->tv_nsec < b->tv_nsec) {
+    __retres = -1;
+    goto return_label;
+  }
+  if (a->tv_nsec > b->tv_nsec) {
+    __retres = 1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void UTI_DiffTimespecs(struct timespec *result, struct timespec *a,
+                       struct timespec *b)
+{
+  result->tv_sec = a->tv_sec - b->tv_sec;
+  result->tv_nsec = a->tv_nsec - b->tv_nsec;
+  UTI_NormaliseTimespec(result);
+  return;
+}
+
+double UTI_DiffTimespecsToDouble(struct timespec *a, struct timespec *b)
+{
+  double __retres;
+  __retres = ((double)a->tv_sec - (double)b->tv_sec) + 1.0e-9 * (double)(
+                                                       a->tv_nsec - b->tv_nsec);
+  return __retres;
+}
+
+void UTI_AddDoubleToTimespec(struct timespec *start, double increment,
+                             struct timespec *end)
+{
+  time_t int_part;
+  int_part = (long)increment;
+  end->tv_sec = start->tv_sec + int_part;
+  end->tv_nsec = (long)((double)start->tv_nsec + 1.0e9 * (increment - (double)int_part));
+  UTI_NormaliseTimespec(end);
+  return;
+}
+
+void UTI_AverageDiffTimespecs(struct timespec *earlier,
+                              struct timespec *later,
+                              struct timespec *average, double *diff)
+{
+  *diff = UTI_DiffTimespecsToDouble(later,earlier);
+  UTI_AddDoubleToTimespec(earlier,*diff / 2.0,average);
+  return;
+}
+
+void UTI_AddDiffToTimespec(struct timespec *a, struct timespec *b,
+                           struct timespec *c, struct timespec *result)
+{
+  double diff;
+  diff = UTI_DiffTimespecsToDouble(a,b);
+  UTI_AddDoubleToTimespec(c,diff,result);
+  return;
+}
+
+static char buffer_pool[16][64];
+static int pool_ptr = 0;
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: param1), (indirect: param0);
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param1, param0;
+ */
+int snprintf_va_7(char * __restrict s, size_t n,
+                  char const * __restrict format, long param0,
+                  unsigned long param1);
+
+char *UTI_TimespecToString(struct timespec *ts)
+{
+  char *result;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  snprintf_va_7(result,(unsigned long)64,"%ld.%09lu",ts->tv_sec,
+                (unsigned long)ts->tv_nsec);
+  return result;
+}
+
+char *UTI_Ntp64ToString(NTP_int64 *ntp_ts)
+{
+  struct timespec ts;
+  char *tmp;
+  UTI_Ntp64ToTimespec(ntp_ts,& ts);
+  tmp = UTI_TimespecToString(& ts);
+  return tmp;
+}
+
+char *UTI_RefidToString(uint32_t ref_id)
+{
+  unsigned int i;
+  unsigned int j;
+  unsigned int c;
+  char *result;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  j = (unsigned int)0;
+  i = j;
+  while (1) {
+    if (i < (unsigned int)4) {
+      if (! (i < (unsigned int)(64 - 1))) break;
+    }
+    else break;
+    {
+      int tmp_0;
+      c = (ref_id >> ((unsigned int)24 - i * (unsigned int)8)) & (unsigned int)0xff;
+      tmp_0 = isprint((int)c);
+      if (tmp_0) {
+        unsigned int tmp;
+        tmp = j;
+        j ++;
+        *(result + tmp) = (char)c;
+      }
+    }
+    i ++;
+  }
+  *(result + j) = (char)'\000';
+  return result;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result \from (indirect: n), (indirect: *(format + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..)));
+ */
+int snprintf_va_8(char * __restrict s, size_t n,
+                  char const * __restrict format);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: param3), (indirect: param2), (indirect: param1),
+            (indirect: param0);
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param3, param2,
+            param1, param0;
+ */
+int snprintf_va_9(char * __restrict s, size_t n,
+                  char const * __restrict format, unsigned long param0,
+                  unsigned long param1, unsigned long param2,
+                  unsigned long param3);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))), (indirect: param0);
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param0;
+ */
+int snprintf_va_10(char * __restrict s, size_t n,
+                   char const * __restrict format, unsigned int param0);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result \from (indirect: n), (indirect: *(format + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..)));
+ */
+int snprintf_va_11(char * __restrict s, size_t n,
+                   char const * __restrict format);
+
+char *UTI_IPToString(IPAddr *addr)
+{
+  unsigned long a;
+  unsigned long b;
+  unsigned long c;
+  unsigned long d;
+  unsigned long ip;
+  uint8_t *ip6;
+  char *result;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  switch ((int)addr->family) {
+    case 0: snprintf_va_8(result,(unsigned long)64,"[UNSPEC]");
+    break;
+    case 1: ip = (unsigned long)addr->addr.in4;
+    a = (ip >> 24) & (unsigned long)0xff;
+    b = (ip >> 16) & (unsigned long)0xff;
+    c = (ip >> 8) & (unsigned long)0xff;
+    d = (ip >> 0) & (unsigned long)0xff;
+    snprintf_va_9(result,(unsigned long)64,"%lu.%lu.%lu.%lu",a,b,c,d);
+    break;
+    case 2: ip6 = addr->addr.in6;
+    __FC_assert((64 >= 40) != 0,"util.c",308,"BUFFER_LENGTH >= 40");
+    a = (unsigned long)0;
+    while (a < (unsigned long)8) {
+      snprintf_va_10(result + a * (unsigned long)5,
+                     (unsigned long)40 - a * (unsigned long)5,"%04x:",
+                     (unsigned int)(((int)*(ip6 + (unsigned long)2 * a) << 8) | (int)*(
+                                    ip6 + ((unsigned long)2 * a + (unsigned long)1))));
+      a ++;
+    }
+    break;
+    default: snprintf_va_11(result,(unsigned long)64,"[UNKNOWN]");
+  }
+  return result;
+}
+
+/*@ requires valid_read_string(s);
+    requires valid_read_string(format);
+    requires \valid(param3);
+    requires \valid(param2);
+    requires \valid(param1);
+    requires \valid(param0);
+    ensures \initialized(param3);
+    ensures \initialized(param2);
+    ensures \initialized(param1);
+    ensures \initialized(param0);
+    assigns \result, *param3, *param2, *param1, *param0;
+    assigns \result
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param3
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param2
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param1
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+    assigns *param0
+      \from (indirect: *(s + (0 ..))), (indirect: *(format + (0 ..)));
+ */
+int sscanf_va_63(char const * __restrict s, char const * __restrict format,
+                 unsigned long *param0, unsigned long *param1,
+                 unsigned long *param2, unsigned long *param3);
+
+int UTI_StringToIP(char const *addr, IPAddr *ip)
+{
+  int __retres;
+  unsigned long a;
+  unsigned long b;
+  unsigned long c;
+  unsigned long d;
+  unsigned long n;
+  int tmp;
+  tmp = sscanf_va_63(addr,"%lu.%lu.%lu.%lu",& a,& b,& c,& d);
+  n = (unsigned long)tmp;
+  if (n == (unsigned long)4) {
+    ip->family = (unsigned short)1;
+    ip->_pad = (unsigned short)0;
+    ip->addr.in4 = (unsigned int)(((((a & (unsigned long)0xff) << 24) | (
+                                    (b & (unsigned long)0xff) << 16)) | (
+                                   (c & (unsigned long)0xff) << 8)) | (
+                                  d & (unsigned long)0xff));
+    __retres = 1;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+static int UTI_IPToRefid_MD5_hash = -1;
+uint32_t UTI_IPToRefid(IPAddr *ip)
+{
+  uint32_t __retres;
+  unsigned char buf[16];
+  switch ((int)ip->family) {
+    case 1: ;
+    __retres = ip->addr.in4;
+    goto return_label;
+    case 2: ;
+    if (UTI_IPToRefid_MD5_hash < 0) UTI_IPToRefid_MD5_hash = HSH_GetHashId
+                                    ("MD5");
+    if (UTI_IPToRefid_MD5_hash < 0) goto _LOR;
+    else {
+      unsigned int tmp;
+      tmp = HSH_Hash(UTI_IPToRefid_MD5_hash,
+                     (unsigned char const *)(ip->addr.in6),
+                     (unsigned int)sizeof(ip->addr.in6),
+                     (unsigned char const *)0,(unsigned int)0,buf,
+                     (unsigned int)sizeof(buf));
+      if ((unsigned long)tmp != sizeof(buf)) {
+        _LOR:
+        {
+          {
+            void *__va_args[1] = {(void *)0};
+            LOG_Message(LOGS_FATAL,"Could not get MD5",
+                        (void * const *)(__va_args));
+          }
+          exit(1);
+        }
+      }
+    }
+    __retres = ((((unsigned int)buf[0] << 24) | (unsigned int)((int)buf[1] << 16)) | (unsigned int)(
+                (int)buf[2] << 8)) | (unsigned int)buf[3];
+    goto return_label;
+  }
+  __retres = (unsigned int)0;
+  return_label: return __retres;
+}
+
+static uint32_t UTI_IPToHash_seed = (unsigned int)0;
+uint32_t UTI_IPToHash(IPAddr *ip)
+{
+  uint32_t __retres;
+  unsigned char *addr;
+  unsigned int i;
+  unsigned int len;
+  uint32_t hash;
+  switch ((int)ip->family) {
+    case 1: addr = (unsigned char *)(& ip->addr.in4);
+    len = (unsigned int)sizeof(ip->addr.in4);
+    break;
+    case 2: addr = (unsigned char *)(ip->addr.in6);
+    len = (unsigned int)sizeof(ip->addr.in6);
+    break;
+    default: __retres = (unsigned int)0;
+    goto return_label;
+  }
+  while (! UTI_IPToHash_seed) UTI_GetRandomBytes((void *)(& UTI_IPToHash_seed),
+                                                 (unsigned int)sizeof(UTI_IPToHash_seed));
+  i = (unsigned int)0;
+  hash = UTI_IPToHash_seed;
+  while (i < len) {
+    hash = (uint32_t)71 * hash + (uint32_t)*(addr + i);
+    i ++;
+  }
+  __retres = hash + UTI_IPToHash_seed;
+  return_label: return __retres;
+}
+
+void UTI_IPHostToNetwork(IPAddr *src, IPAddr *dest)
+{
+  memset((void *)dest,0,sizeof(IPAddr));
+  dest->family = htons(src->family);
+  switch ((int)src->family) {
+    case 1: dest->addr.in4 = htonl(src->addr.in4);
+    break;
+    case 2:
+    memcpy((void *)(dest->addr.in6),(void const *)(src->addr.in6),
+           sizeof(dest->addr.in6));
+    break;
+    default: dest->family = htons((unsigned short)0);
+  }
+  return;
+}
+
+void UTI_IPNetworkToHost(IPAddr *src, IPAddr *dest)
+{
+  dest->family = ntohs(src->family);
+  dest->_pad = (unsigned short)0;
+  switch ((int)dest->family) {
+    case 1: dest->addr.in4 = ntohl(src->addr.in4);
+    break;
+    case 2:
+    memcpy((void *)(dest->addr.in6),(void const *)(src->addr.in6),
+           sizeof(dest->addr.in6));
+    break;
+    default: dest->family = (unsigned short)0;
+  }
+  return;
+}
+
+int UTI_CompareIPs(IPAddr *a, IPAddr *b, IPAddr *mask)
+{
+  int __retres;
+  int i;
+  int d;
+  if ((int)a->family != (int)b->family) {
+    __retres = (int)a->family - (int)b->family;
+    goto return_label;
+  }
+  if (mask) 
+    if ((int)mask->family != (int)b->family) mask = (IPAddr *)0;
+  switch ((int)a->family) {
+    case 0: __retres = 0;
+    goto return_label;
+    case 1: ;
+    if (mask) {
+      __retres = (int)((a->addr.in4 & mask->addr.in4) - (b->addr.in4 & mask->addr.in4));
+      goto return_label;
+    }
+    else {
+      __retres = (int)(a->addr.in4 - b->addr.in4);
+      goto return_label;
+    }
+    case 2: i = 0;
+    d = 0;
+    while (1) {
+      if (! d) {
+        if (! (i < 16)) break;
+      }
+      else break;
+      if (mask) d = ((int)a->addr.in6[i] & (int)mask->addr.in6[i]) - (
+                    (int)b->addr.in6[i] & (int)mask->addr.in6[i]);
+      else d = (int)a->addr.in6[i] - (int)b->addr.in6[i];
+      i ++;
+    }
+    __retres = d;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void UTI_SockaddrToIPAndPort(struct sockaddr *sa, IPAddr *ip,
+                             unsigned short *port)
+{
+  switch ((int)sa->sa_family) {
+    case 2: ip->family = (unsigned short)1;
+    ip->addr.in4 = ntohl(((struct sockaddr_in *)sa)->sin_addr.s_addr);
+    *port = ntohs(((struct sockaddr_in *)sa)->sin_port);
+    break;
+    default: ip->family = (unsigned short)0;
+    *port = (unsigned short)0;
+  }
+  return;
+}
+
+int UTI_IPAndPortToSockaddr(IPAddr *ip, unsigned short port,
+                            struct sockaddr *sa)
+{
+  int __retres;
+  switch ((int)ip->family) {
+    case 1: memset((void *)sa,0,sizeof(struct sockaddr_in));
+    sa->sa_family = (unsigned short)2;
+    ((struct sockaddr_in *)sa)->sin_addr.s_addr = htonl(ip->addr.in4);
+    ((struct sockaddr_in *)sa)->sin_port = htons(port);
+    __retres = (int)sizeof(struct sockaddr_in);
+    goto return_label;
+    default: memset((void *)sa,0,sizeof(struct sockaddr));
+    sa->sa_family = (unsigned short)0;
+    __retres = 0;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: param1), (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), param1,
+            *(param0 + (0 ..));
+ */
+int snprintf_va_12(char * __restrict s, size_t n,
+                   char const * __restrict format, char *param0, int param1);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_nstring(param1, param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param1 + (0 ..))), (indirect: param0);
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            *(param1 + (0 ..)), param0;
+ */
+int snprintf_va_13(char * __restrict s, size_t n,
+                   char const * __restrict format, int param0, char *param1);
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result \from (indirect: n), (indirect: *(format + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..)));
+ */
+int snprintf_va_14(char * __restrict s, size_t n,
+                   char const * __restrict format);
+
+char *UTI_SockaddrToString(struct sockaddr *sa)
+{
+  unsigned short port;
+  IPAddr ip;
+  char *result;
+  char *sun_path;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  switch ((int)sa->sa_family) {
+    char *tmp;
+    size_t tmp_0;
+    case 2: case 10: UTI_SockaddrToIPAndPort(sa,& ip,& port);
+    ;
+    tmp = UTI_IPToString(& ip);
+    ;
+    snprintf_va_12(result,(unsigned long)64,"%s:%hu",tmp,(int)port);
+    break;
+    case 1: sun_path = ((struct sockaddr_un *)sa)->sun_path;
+    snprintf_va_13(result,(unsigned long)64,"%.*s",64 - 1,sun_path);
+    tmp_0 = strlen((char const *)sun_path);
+    if (tmp_0 >= (size_t)64) *(result + (64 - 2)) = (char)'>';
+    break;
+    default: snprintf_va_14(result,(unsigned long)64,"[UNKNOWN]");
+  }
+  return result;
+}
+
+char const *UTI_SockaddrFamilyToString(int family)
+{
+  char const *__retres;
+  switch (family) {
+    case 2: __retres = "IPv4";
+    goto return_label;
+    case 10: __retres = "IPv6";
+    goto return_label;
+    case 1: __retres = "Unix";
+    goto return_label;
+    case 0: __retres = "UNSPEC";
+    goto return_label;
+    default: __retres = "?";
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    assigns \result, *(s + (0 ..));
+    assigns \result \from (indirect: n), (indirect: *(format + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..)));
+ */
+int snprintf_va_15(char * __restrict s, size_t n,
+                   char const * __restrict format);
+
+char *UTI_TimeToLogForm(time_t t)
+{
+  struct tm *stm;
+  char *result;
+  pool_ptr = (pool_ptr + 1) % 16;
+  result = buffer_pool[pool_ptr];
+  stm = gmtime((time_t const *)(& t));
+  if (stm) strftime(result,(unsigned long)64,"%Y-%m-%d %H:%M:%S",
+                    (struct tm const *)stm);
+  else snprintf_va_15(result,(unsigned long)64,"INVALID    INVALID ");
+  return result;
+}
+
+void UTI_AdjustTimespec(struct timespec *old_ts, struct timespec *when,
+                        struct timespec *new_ts, double *delta_time,
+                        double dfreq, double doffset)
+{
+  double elapsed;
+  elapsed = UTI_DiffTimespecsToDouble(when,old_ts);
+  *delta_time = elapsed * dfreq - doffset;
+  UTI_AddDoubleToTimespec(old_ts,*delta_time,new_ts);
+  return;
+}
+
+void UTI_GetNtp64Fuzz(NTP_int64 *ts, int precision)
+{
+  int start;
+  int bits;
+  int tmp;
+  uint32_t tmp_0;
+  if (precision >= -32) 
+    if (precision <= 32) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  __FC_assert(tmp != 0,"util.c",644,"precision >= -32 && precision <= 32");
+  __FC_assert((sizeof(*ts) == (unsigned long)8) != 0,"util.c",645,
+              "sizeof (*ts) == 8");
+  start = (int)(sizeof(*ts) - (unsigned long)(((precision + 32) + 7) / 8));
+  tmp_0 = (unsigned int)0;
+  ts->lo = tmp_0;
+  ts->hi = tmp_0;
+  UTI_GetRandomBytes((void *)((unsigned char *)ts + start),
+                     (unsigned int)(sizeof(*ts) - (unsigned long)start));
+  bits = (precision + 32) % 8;
+  if (bits) *((unsigned char *)ts + start) = (unsigned char)((unsigned int)*(
+                                                             (unsigned char *)ts + start) % (
+                                                             1U << bits));
+  return;
+}
+
+double UTI_Ntp32ToDouble(NTP_int32 x)
+{
+  double __retres;
+  uint32_t tmp;
+  tmp = ntohl(x);
+  __retres = (double)tmp / 65536.0;
+  return __retres;
+}
+
+NTP_int32 UTI_DoubleToNtp32(double x)
+{
+  NTP_int32 r;
+  NTP_int32 tmp;
+  if (x >= 4294967295.0 / 65536.0) r = 0xffffffff;
+  else 
+    if (x <= 0.0) r = (unsigned int)0;
+    else {
+      x *= 65536.0;
+      r = (unsigned int)x;
+      if ((double)r < x) r += (NTP_int32)1;
+    }
+  tmp = htonl(r);
+  return tmp;
+}
+
+void UTI_ZeroNtp64(NTP_int64 *ts)
+{
+  uint32_t tmp;
+  tmp = htonl((unsigned int)0);
+  ts->lo = tmp;
+  ts->hi = tmp;
+  return;
+}
+
+int UTI_IsZeroNtp64(NTP_int64 *ts)
+{
+  int tmp;
+  if (! ts->hi) 
+    if (! ts->lo) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  return tmp;
+}
+
+int UTI_CompareNtp64(NTP_int64 *a, NTP_int64 *b)
+{
+  int __retres;
+  int32_t diff;
+  uint32_t tmp;
+  uint32_t tmp_0;
+  int tmp_3;
+  uint32_t tmp_1;
+  uint32_t tmp_2;
+  if (a->hi == b->hi) 
+    if (a->lo == b->lo) {
+      __retres = 0;
+      goto return_label;
+    }
+  tmp = ntohl(a->hi);
+  tmp_0 = ntohl(b->hi);
+  diff = (int)(tmp - tmp_0);
+  if (diff < 0) {
+    __retres = -1;
+    goto return_label;
+  }
+  if (diff > 0) {
+    __retres = 1;
+    goto return_label;
+  }
+  tmp_1 = ntohl(a->lo);
+  tmp_2 = ntohl(b->lo);
+  if (tmp_1 < tmp_2) tmp_3 = -1; else tmp_3 = 1;
+  __retres = tmp_3;
+  return_label: return __retres;
+}
+
+int UTI_IsEqualAnyNtp64(NTP_int64 *a, NTP_int64 *b1, NTP_int64 *b2,
+                        NTP_int64 *b3)
+{
+  int __retres;
+  if (b1) 
+    if (a->lo == b1->lo) 
+      if (a->hi == b1->hi) {
+        __retres = 1;
+        goto return_label;
+      }
+  if (b2) 
+    if (a->lo == b2->lo) 
+      if (a->hi == b2->hi) {
+        __retres = 1;
+        goto return_label;
+      }
+  if (b3) 
+    if (a->lo == b3->lo) 
+      if (a->hi == b3->hi) {
+        __retres = 1;
+        goto return_label;
+      }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void UTI_TimespecToNtp64(struct timespec *src, NTP_int64 *dest,
+                         NTP_int64 *fuzz)
+{
+  uint32_t hi;
+  uint32_t lo;
+  uint32_t sec;
+  uint32_t nsec;
+  sec = (unsigned int)src->tv_sec;
+  nsec = (unsigned int)src->tv_nsec;
+  if (! nsec) {
+    if (! sec) {
+      lo = (unsigned int)0;
+      hi = lo;
+    }
+    else goto _LAND;
+  }
+  else {
+    _LAND:
+    {
+      hi = htonl((unsigned int)((unsigned long)sec + 0x83aa7e80UL));
+      lo = htonl((unsigned int)(4.294967296 * (double)nsec));
+      if (fuzz) {
+        hi ^= fuzz->hi;
+        lo ^= fuzz->lo;
+      }
+    }
+  }
+  dest->hi = hi;
+  dest->lo = lo;
+  return;
+}
+
+void UTI_Ntp64ToTimespec(NTP_int64 *src, struct timespec *dest)
+{
+  uint32_t ntp_sec;
+  uint32_t ntp_frac;
+  int tmp;
+  tmp = UTI_IsZeroNtp64(src);
+  if (tmp) {
+    UTI_ZeroTimespec(dest);
+    goto return_label;
+  }
+  ntp_sec = ntohl(src->hi);
+  ntp_frac = ntohl(src->lo);
+  dest->tv_sec = (long)(ntp_sec - (unsigned int)((unsigned long long)(
+                                                 1516643532LL - (long long)(
+                                                 (18250 * 24) * 3600)) + (unsigned long long)0x83aa7e80UL)) + (long)(
+                 1516643532LL - (long long)((18250 * 24) * 3600));
+  dest->tv_nsec = (long)((double)ntp_frac / 4.294967296);
+  return_label: return;
+}
+
+int UTI_IsTimeOffsetSane(struct timespec *ts, double offset)
+{
+  int __retres;
+  double t;
+  double tmp;
+  if (offset > - 4294967296.0) {
+    if (! (offset < 4294967296.0)) {
+      __retres = 0;
+      goto return_label;
+    }
+  }
+  else {
+    __retres = 0;
+    goto return_label;
+  }
+  tmp = UTI_TimespecToDouble(ts);
+  t = tmp + offset;
+  if (t < 0.0) {
+    __retres = 0;
+    goto return_label;
+  }
+  if (t < (double)(1516643532LL - (long long)((18250 * 24) * 3600))) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (t > (double)((1516643532LL - (long long)((18250 * 24) * 3600)) + (
+                     1LL << 32))) {
+      __retres = 0;
+      goto return_label;
+    }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+double UTI_Log2ToDouble(int l)
+{
+  double __retres;
+  if (l >= 0) {
+    if (l > 31) l = 31;
+    __retres = (double)((unsigned int)1 << l);
+    goto return_label;
+  }
+  else {
+    if (l < -31) l = -31;
+    __retres = 1.0 / (double)((unsigned int)1 << - l);
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+void UTI_TimespecNetworkToHost(Timespec *src, struct timespec *dest)
+{
+  uint32_t sec_low;
+  uint32_t nsec;
+  uint32_t sec_high;
+  sec_low = ntohl(src->tv_sec_low);
+  sec_high = ntohl(src->tv_sec_high);
+  if (sec_high == (uint32_t)0x7fffffff) sec_high = (unsigned int)0;
+  dest->tv_sec = (long)(((unsigned long)sec_high << 32) | (unsigned long)sec_low);
+  nsec = ntohl(src->tv_nsec);
+  if (nsec < 999999999U) dest->tv_nsec = (long)nsec;
+  else dest->tv_nsec = (long)999999999U;
+  return;
+}
+
+void UTI_TimespecHostToNetwork(struct timespec *src, Timespec *dest)
+{
+  dest->tv_nsec = htonl((unsigned int)src->tv_nsec);
+  dest->tv_sec_high = htonl((unsigned int)((unsigned long)src->tv_sec >> 32));
+  dest->tv_sec_low = htonl((unsigned int)src->tv_sec);
+  return;
+}
+
+double UTI_FloatNetworkToHost(Float f)
+{
+  double __retres;
+  int32_t exp_0;
+  int32_t coef;
+  uint32_t x;
+  double tmp;
+  x = ntohl((unsigned int)f.f);
+  exp_0 = (int)(x >> ((int)sizeof(int32_t) * 8 - 7));
+  if (exp_0 >= 1 << (7 - 1)) exp_0 -= 1 << 7;
+  exp_0 -= (int)sizeof(int32_t) * 8 - 7;
+  coef = (int)(x % (1U << ((int)sizeof(int32_t) * 8 - 7)));
+  if (coef >= 1 << (((int)sizeof(int32_t) * 8 - 7) - 1)) coef -= 1 << (
+                                                                 (int)sizeof(int32_t) * 8 - 7);
+  tmp = pow(2.0,(double)exp_0);
+  ;
+  __retres = (double)coef * tmp;
+  return __retres;
+}
+
+Float UTI_FloatHostToNetwork(double x)
+{
+  int32_t exp_0;
+  int32_t coef;
+  int32_t neg;
+  Float f;
+  uint32_t tmp_2;
+  if (x < 0.0) {
+    x = - x;
+    neg = 1;
+  }
+  else 
+    if (x >= 0.0) neg = 0;
+    else {
+      x = 0.0;
+      neg = 0;
+    }
+  if (x < 1.0e-100) {
+    coef = 0;
+    exp_0 = coef;
+  }
+  else 
+    if (x > 1.0e100) {
+      exp_0 = - (- (1 << (7 - 1))) - 1;
+      coef = (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg;
+    }
+    else {
+      double tmp;
+      double tmp_0;
+      double tmp_1;
+      tmp = log(x);
+      tmp_0 = log((double)2);
+      exp_0 = (int)(tmp / tmp_0 + (double)1);
+      tmp_1 = pow(2.0,(double)(- exp_0 + ((int)sizeof(int32_t) * 8 - 7)));
+      coef = (int)(x * tmp_1 + 0.5);
+      __FC_assert((coef > 0) != 0,"util.c",949,"coef > 0");
+      while (coef > (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg) {
+        coef >>= 1;
+        exp_0 ++;
+      }
+      if (exp_0 > - (- (1 << (7 - 1))) - 1) {
+        exp_0 = - (- (1 << (7 - 1))) - 1;
+        coef = (- (- (1 << (((int)sizeof(int32_t) * 8 - 7) - 1))) - 1) + neg;
+      }
+      else 
+        if (exp_0 < - (1 << (7 - 1))) 
+          if (exp_0 + ((int)sizeof(int32_t) * 8 - 7) >= - (1 << (7 - 1))) {
+            coef >>= - (1 << (7 - 1)) - exp_0;
+            exp_0 = - (1 << (7 - 1));
+          }
+          else {
+            coef = 0;
+            exp_0 = coef;
+          }
+    }
+  if (neg) coef = (int)(((unsigned int)(- coef) << 7) >> 7);
+  tmp_2 = htonl(((unsigned int)exp_0 << ((int)sizeof(int32_t) * 8 - 7)) | (unsigned int)coef);
+  f.f = (int)tmp_2;
+  return f;
+}
+
+int UTI_FdSetCloexec(int fd)
+{
+  int __retres;
+  int flags;
+  flags = __va_fcntl_void(fd,1);
+  if (flags != -1) {
+    int tmp_0;
+    int tmp;
+    flags |= 1;
+    tmp = __va_fcntl_int(fd,2,flags);
+    if (tmp) tmp_0 = 0; else tmp_0 = 1;
+    __retres = tmp_0;
+    goto return_label;
+  }
+  __retres = 0;
+  return_label: return __retres;
+}
+
+void UTI_SetQuitSignalsHandler(void (*handler)(int ), int ignore_sigpipe)
+{
+  struct sigaction sa;
+  int tmp;
+  int tmp_0;
+  int tmp_1;
+  int tmp_2;
+  int tmp_3;
+  int tmp_4;
+  sa.sa_handler = handler;
+  sa.sa_flags = 0x10000000;
+  tmp = sigemptyset(& sa.sa_mask);
+  if (tmp < 0) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"sigemptyset() failed",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  tmp_0 = sigaction(2,(struct sigaction const *)(& sa),(struct sigaction *)0);
+  if (tmp_0 < 0) {
+    {
+      int __va_arg0 = 2;
+      void *__va_args_13[1] = {& __va_arg0};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_13));
+    }
+    exit(1);
+  }
+  tmp_1 = sigaction(15,(struct sigaction const *)(& sa),
+                    (struct sigaction *)0);
+  if (tmp_1 < 0) {
+    {
+      int __va_arg0_15 = 15;
+      void *__va_args_17[1] = {& __va_arg0_15};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_17));
+    }
+    exit(1);
+  }
+  tmp_2 = sigaction(3,(struct sigaction const *)(& sa),(struct sigaction *)0);
+  if (tmp_2 < 0) {
+    {
+      int __va_arg0_19 = 3;
+      void *__va_args_21[1] = {& __va_arg0_19};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_21));
+    }
+    exit(1);
+  }
+  tmp_3 = sigaction(1,(struct sigaction const *)(& sa),(struct sigaction *)0);
+  if (tmp_3 < 0) {
+    {
+      int __va_arg0_23 = 1;
+      void *__va_args_25[1] = {& __va_arg0_23};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_25));
+    }
+    exit(1);
+  }
+  if (ignore_sigpipe) sa.sa_handler = SIG_IGN;
+  tmp_4 = sigaction(13,(struct sigaction const *)(& sa),
+                    (struct sigaction *)0);
+  if (tmp_4 < 0) {
+    {
+      int __va_arg0_27 = 13;
+      void *__va_args_29[1] = {& __va_arg0_27};
+      LOG_Message(LOGS_FATAL,"sigaction(%d) failed",
+                  (void * const *)(__va_args_29));
+    }
+    exit(1);
+  }
+  return;
+}
+
+/*@ requires
+      \valid(s + (0 .. n - 1)) ∨
+      \valid(s + (0 .. format_length(format) - 1));
+    requires valid_read_string(format);
+    requires valid_read_string(param0);
+    assigns \result, *(s + (0 ..));
+    assigns \result
+      \from (indirect: n), (indirect: *(format + (0 ..))),
+            (indirect: *(param0 + (0 ..)));
+    assigns *(s + (0 ..))
+      \from (indirect: n), (indirect: *(format + (0 ..))), *(param0 + (0 ..));
+ */
+int snprintf_va_16(char * __restrict s, size_t n,
+                   char const * __restrict format, char *param0);
+
+char *UTI_PathToDir(char const *path)
+{
+  char *__retres;
+  char *dir;
+  char *slash;
+  slash = strrchr(path,'/');
+  if (! slash) {
+    char *tmp;
+    tmp = Strdup(".");
+    __retres = tmp;
+    goto return_label;
+  }
+  if ((void *)slash == (void *)path) {
+    char *tmp_0;
+    tmp_0 = Strdup("/");
+    __retres = tmp_0;
+    goto return_label;
+  }
+  dir = (char *)Malloc((unsigned long)((slash - path) + (long)1));
+  snprintf_va_16(dir,(unsigned long)((slash - path) + (long)1),"%s",
+                 (char *)path);
+  __retres = dir;
+  return_label: return __retres;
+}
+
+static int create_dir(char *p, mode_t mode_0, uid_t uid, gid_t gid)
+{
+  int __retres;
+  int status;
+  struct stat buf;
+  int tmp_1;
+  int tmp_3;
+  status = stat((char const *)p,& buf);
+  if (status < 0) {
+    if (__fc_errno != 2) {
+      char *tmp;
+      tmp = strerror(__fc_errno);
+      ;
+      {
+        char *__va_arg0 = p;
+        char *__va_arg1 = tmp;
+        void *__va_args[2] = {& __va_arg0, & __va_arg1};
+        LOG_Message(LOGS_ERR,"Could not access %s : %s",
+                    (void * const *)(__va_args));
+      }
+      __retres = 0;
+      goto return_label;
+    }
+  }
+  else {
+    if ((buf.st_mode & (unsigned int)0170000) == (unsigned int)0040000) {
+      __retres = 1;
+      goto return_label;
+    }
+    {
+      char *__va_arg0_16 = p;
+      void *__va_args_18[1] = {& __va_arg0_16};
+      LOG_Message(LOGS_ERR,"%s is not directory",
+                  (void * const *)(__va_args_18));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  tmp_1 = mkdir((char const *)p,mode_0);
+  if (tmp_1 < 0) {
+    char *tmp_0;
+    tmp_0 = strerror(__fc_errno);
+    ;
+    {
+      char *__va_arg0_20 = p;
+      char *__va_arg1_22 = tmp_0;
+      void *__va_args_24[2] = {& __va_arg0_20, & __va_arg1_22};
+      LOG_Message(LOGS_ERR,"Could not create directory %s : %s",
+                  (void * const *)(__va_args_24));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  tmp_3 = chown((char const *)p,uid,gid);
+  if (tmp_3 < 0) {
+    char *tmp_2;
+    tmp_2 = strerror(__fc_errno);
+    ;
+    {
+      char *__va_arg0_26 = p;
+      char *__va_arg1_28 = tmp_2;
+      void *__va_args_30[2] = {& __va_arg0_26, & __va_arg1_28};
+      LOG_Message(LOGS_ERR,"Could not change ownership of %s : %s",
+                  (void * const *)(__va_args_30));
+    }
+    rmdir((char const *)p);
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int UTI_CreateDirAndParents(char const *path, mode_t mode_0, uid_t uid,
+                            gid_t gid)
+{
+  int __retres;
+  char *p;
+  int i;
+  int j;
+  int k;
+  int last;
+  int tmp;
+  void *tmp_1;
+  size_t tmp_0;
+  tmp = strcmp(path,".");
+  if (! tmp) {
+    __retres = 1;
+    goto return_label;
+  }
+  tmp_0 = strlen(path);
+  tmp_1 = Malloc((size_t)1 + tmp_0);
+  p = (char *)tmp_1;
+  k = 0;
+  i = k;
+  while (1) {
+    {
+      int tmp_2;
+      int tmp_3;
+      tmp_2 = i;
+      i ++;
+      tmp_3 = k;
+      k ++;
+      *(p + tmp_2) = *(path + tmp_3);
+      if ((int)*(path + k) == '/') goto _LOR;
+      else 
+        if (! *(path + k)) {
+          _LOR:
+          {
+            int tmp_7;
+            gid_t tmp_4;
+            uid_t tmp_5;
+            mode_t tmp_6;
+            last = 1;
+            j = k;
+            while (*(path + j)) {
+              if ((int)*(path + j) != '/') {
+                k = j - 1;
+                last = 0;
+                break;
+              }
+              j ++;
+            }
+            *(p + i) = (char)0;
+            if (last) tmp_4 = gid; else tmp_4 = (unsigned int)0;
+            if (last) tmp_5 = uid; else tmp_5 = (unsigned int)0;
+            if (last) tmp_6 = mode_0; else tmp_6 = (unsigned int)0755;
+            ;
+            tmp_7 = create_dir(p,tmp_6,tmp_5,tmp_4);
+            if (! tmp_7) {
+              free((void *)p);
+              __retres = 0;
+              goto return_label;
+            }
+            if (last) break;
+          }
+        }
+      if (! *(path + k)) break;
+    }
+  }
+  free((void *)p);
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int UTI_CheckDirPermissions(char const *path, mode_t perm, uid_t uid,
+                            gid_t gid)
+{
+  int __retres;
+  struct stat buf;
+  int tmp_0;
+  tmp_0 = stat(path,& buf);
+  if (tmp_0) {
+    char *tmp;
+    tmp = strerror(__fc_errno);
+    ;
+    {
+      char const *__va_arg0 = path;
+      char *__va_arg1 = tmp;
+      void *__va_args[2] = {& __va_arg0, & __va_arg1};
+      LOG_Message(LOGS_ERR,"Could not access %s : %s",
+                  (void * const *)(__va_args));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  if (! ((buf.st_mode & (unsigned int)0170000) == (unsigned int)0040000)) {
+    {
+      char const *__va_arg0_12 = path;
+      void *__va_args_14[1] = {& __va_arg0_12};
+      LOG_Message(LOGS_ERR,"%s is not directory",
+                  (void * const *)(__va_args_14));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  if ((buf.st_mode & (unsigned int)0777) & ~ perm) {
+    {
+      char const *__va_arg0_16 = path;
+      void *__va_args_18[1] = {& __va_arg0_16};
+      LOG_Message(LOGS_ERR,"Wrong permissions on %s",
+                  (void * const *)(__va_args_18));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  if (buf.st_uid != uid) {
+    {
+      char const *__va_arg0_20 = path;
+      char const *__va_arg1_22 = "UID";
+      uid_t __va_arg2 = uid;
+      void *__va_args_25[3] = {& __va_arg0_20, & __va_arg1_22, & __va_arg2};
+      LOG_Message(LOGS_ERR,"Wrong owner of %s (%s != %u)",
+                  (void * const *)(__va_args_25));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  if (buf.st_gid != gid) {
+    {
+      char const *__va_arg0_27 = path;
+      char const *__va_arg1_29 = "GID";
+      gid_t __va_arg2_31 = gid;
+      void *__va_args_33[3] =
+        {& __va_arg0_27, & __va_arg1_29, & __va_arg2_31};
+      LOG_Message(LOGS_ERR,"Wrong owner of %s (%s != %u)",
+                  (void * const *)(__va_args_33));
+    }
+    __retres = 0;
+    goto return_label;
+  }
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void UTI_DropRoot(uid_t uid, gid_t gid)
+{
+  int tmp_0;
+  int tmp_2;
+  int tmp_4;
+  tmp_0 = setgroups((unsigned long)0,(gid_t const *)0);
+  if (tmp_0) {
+    char *tmp;
+    tmp = strerror(__fc_errno);
+    {
+      char *__va_arg0 = tmp;
+      void *__va_args[1] = {& __va_arg0};
+      LOG_Message(LOGS_FATAL,"setgroups() failed : %s",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  tmp_2 = setgid(gid);
+  if (tmp_2) {
+    char *tmp_1;
+    tmp_1 = strerror(__fc_errno);
+    ;
+    {
+      gid_t __va_arg0_12 = gid;
+      char *__va_arg1 = tmp_1;
+      void *__va_args_15[2] = {& __va_arg0_12, & __va_arg1};
+      LOG_Message(LOGS_FATAL,"setgid(%u) failed : %s",
+                  (void * const *)(__va_args_15));
+    }
+    exit(1);
+  }
+  tmp_4 = setuid(uid);
+  if (tmp_4) {
+    char *tmp_3;
+    tmp_3 = strerror(__fc_errno);
+    ;
+    {
+      uid_t __va_arg0_17 = uid;
+      char *__va_arg1_19 = tmp_3;
+      void *__va_args_21[2] = {& __va_arg0_17, & __va_arg1_19};
+      LOG_Message(LOGS_FATAL,"setuid(%u) failed : %s",
+                  (void * const *)(__va_args_21));
+    }
+    exit(1);
+  }
+  return;
+}
+
+static FILE *UTI_GetRandomBytesUrandom_f = (FILE *)0;
+void UTI_GetRandomBytesUrandom(void *buf, unsigned int len)
+{
+  size_t tmp_0;
+  if (! UTI_GetRandomBytesUrandom_f) UTI_GetRandomBytesUrandom_f = fopen
+                                     ("/dev/urandom","r");
+  if (! UTI_GetRandomBytesUrandom_f) {
+    char *tmp;
+    tmp = strerror(__fc_errno);
+    {
+      char const *__va_arg0 = "/dev/urandom";
+      char *__va_arg1 = tmp;
+      void *__va_args[2] = {& __va_arg0, & __va_arg1};
+      LOG_Message(LOGS_FATAL,"Can\'t open %s : %s",
+                  (void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  tmp_0 = fread(buf,(unsigned long)1,(unsigned long)len,
+                UTI_GetRandomBytesUrandom_f);
+  ;
+  if (tmp_0 != (size_t)len) {
+    {
+      char const *__va_arg0_9 = "/dev/urandom";
+      void *__va_args_11[1] = {& __va_arg0_9};
+      LOG_Message(LOGS_FATAL,"Can\'t read from %s",
+                  (void * const *)(__va_args_11));
+    }
+    exit(1);
+  }
+  return;
+}
+
+void UTI_GetRandomBytes(void *buf, unsigned int len)
+{
+  UTI_GetRandomBytesUrandom(buf,len);
+  return;
+}
+
+void DNS_Name2IPAddressAsync(char const *name,
+                             void (*handler)(DNS_Status status, int n_addrs,
+                                             IPAddr *ip_addrs, void *anything),
+                             void *anything);
+
+void NSD_Initialise(void);
+
+void NSD_Finalise(void);
+
+int NSD_GetAuthDelay(uint32_t key_id);
+
+int NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet,
+                          NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr, int length);
+
+static void resolve_name(int fd, int event, void *anything)
+{
+  struct DNS_Async_Instance *inst;
+  IPAddr addrs[16];
+  DNS_Status status;
+  int i;
+  inst = (struct DNS_Async_Instance *)anything;
+  SCH_RemoveFileHandler(inst->pipe[0]);
+  close(inst->pipe[0]);
+  close(inst->pipe[1]);
+  status = DNS_Name2IPAddress(inst->name,addrs,16);
+  i = 0;
+  while (1) {
+    if (status == (unsigned int)DNS_Success) 
+      if (i < 16) {
+        if (! ((int)addrs[i].family != 0)) break;
+      }
+      else break;
+    else break;
+    i ++;
+  }
+  (*(inst->handler))(status,i,addrs,inst->arg);
+  free((void *)inst);
+  return;
+}
+
+void DNS_Name2IPAddressAsync(char const *name,
+                             void (*handler)(DNS_Status status, int n_addrs,
+                                             IPAddr *ip_addrs, void *anything),
+                             void *anything)
+{
+  struct DNS_Async_Instance *inst;
+  int tmp_0;
+  ssize_t tmp_1;
+  inst = (struct DNS_Async_Instance *)Malloc(sizeof(struct DNS_Async_Instance));
+  inst->name = name;
+  inst->handler = handler;
+  inst->arg = anything;
+  tmp_0 = pipe(inst->pipe);
+  if (tmp_0) {
+    {
+      void *__va_args[1] = {(void *)0};
+      LOG_Message(LOGS_FATAL,"pipe() failed",(void * const *)(__va_args));
+    }
+    exit(1);
+  }
+  UTI_FdSetCloexec(inst->pipe[0]);
+  UTI_FdSetCloexec(inst->pipe[1]);
+  SCH_AddFileHandler(inst->pipe[0],1,& resolve_name,(void *)inst);
+  tmp_1 = write(inst->pipe[1],(void const *)"",(unsigned long)1);
+  return;
+}
+
+void NSD_Initialise(void)
+{
+  return;
+}
+
+void NSD_Finalise(void)
+{
+  return;
+}
+
+int NSD_GetAuthDelay(uint32_t key_id)
+{
+  int __retres;
+  __retres = 0;
+  return __retres;
+}
+
+int NSD_SignAndSendPacket(uint32_t key_id, NTP_Packet *packet,
+                          NTP_Remote_Address *remote_addr,
+                          NTP_Local_Address *local_addr, int length)
+{
+  int __retres;
+  __retres = 0;
+  return __retres;
+}
+
+int volatile qsort_nondet;
+int eva_main(void)
+{
+  char argv0[256];
+  char argv1[256];
+  char argv2[256];
+  char argv3[256];
+  char argv4[256];
+  int tmp_0;
+  int argc = Frama_C_interval(0,5);
+  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0};
+  {
+    int i = 0;
+    /*@ loop unroll 5; */
+    while (i < 5) {
+      Frama_C_make_unknown(argv[i],(unsigned long)255);
+      *(argv[i] + 255) = (char)0;
+      i ++;
+    }
+  }
+  tmp_0 = main(argc,argv);
+  return tmp_0;
+}
+
+void RGR_WeightedRegression(double *x, double *y, double *w, int n,
+                            double *b0, double *b1, double *s2, double *sb0,
+                            double *sb1)
+{
+  double P;
+  double Q;
+  double U;
+  double V;
+  double W;
+  double diff;
+  double u;
+  double ui;
+  double aa;
+  int i;
+  __FC_assert((n >= 3) != 0,"regress.c",67,"n >= 3");
+  U = (double)0;
+  W = U;
+  i = 0;
+  while (i < n) {
+    U += *(x + i) / *(w + i);
+    W += 1.0 / *(w + i);
+    i ++;
+  }
+  u = U / W;
+  V = 0.0;
+  Q = V;
+  P = Q;
+  i = 0;
+  while (i < n) {
+    ui = *(x + i) - u;
+    P += *(y + i) / *(w + i);
+    Q += (*(y + i) * ui) / *(w + i);
+    V += (ui * ui) / *(w + i);
+    i ++;
+  }
+  *b1 = Q / V;
+  *b0 = P / W - *b1 * u;
+  *s2 = 0.0;
+  i = 0;
+  while (i < n) {
+    diff = (*(y + i) - *b0) - *b1 * *(x + i);
+    *s2 += (diff * diff) / *(w + i);
+    i ++;
+  }
+  *s2 /= (double)(n - 2);
+  *sb1 = sqrt(*s2 / V);
+  aa = u * *sb1;
+  *sb0 = sqrt(*s2 / W + aa * aa);
+  *s2 *= (double)n / W;
+  return;
+}
+
+static float const RGR_GetTCoef_coefs[40] =
+  {(float)636.6,
+   (float)31.6,
+   (float)12.92,
+   (float)8.61,
+   (float)6.869,
+   (float)5.959,
+   (float)5.408,
+   (float)5.041,
+   (float)4.781,
+   (float)4.587,
+   (float)4.437,
+   (float)4.318,
+   (float)4.221,
+   (float)4.140,
+   (float)4.073,
+   (float)4.015,
+   (float)3.965,
+   (float)3.922,
+   (float)3.883,
+   (float)3.850,
+   (float)3.819,
+   (float)3.792,
+   (float)3.768,
+   (float)3.745,
+   (float)3.725,
+   (float)3.707,
+   (float)3.690,
+   (float)3.674,
+   (float)3.659,
+   (float)3.646,
+   (float)3.633,
+   (float)3.622,
+   (float)3.611,
+   (float)3.601,
+   (float)3.591,
+   (float)3.582,
+   (float)3.574,
+   (float)3.566,
+   (float)3.558,
+   (float)3.551};
+double RGR_GetTCoef(int dof)
+{
+  double __retres;
+  if (dof <= 40) {
+    __retres = (double)RGR_GetTCoef_coefs[dof - 1];
+    goto return_label;
+  }
+  else {
+    __retres = 3.5;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static float const RGR_GetChi2Coef_coefs[64] =
+  {(float)2.706,
+   (float)4.605,
+   (float)6.251,
+   (float)7.779,
+   (float)9.236,
+   (float)10.645,
+   (float)12.017,
+   (float)13.362,
+   (float)14.684,
+   (float)15.987,
+   (float)17.275,
+   (float)18.549,
+   (float)19.812,
+   (float)21.064,
+   (float)22.307,
+   (float)23.542,
+   (float)24.769,
+   (float)25.989,
+   (float)27.204,
+   (float)28.412,
+   (float)29.615,
+   (float)30.813,
+   (float)32.007,
+   (float)33.196,
+   (float)34.382,
+   (float)35.563,
+   (float)36.741,
+   (float)37.916,
+   (float)39.087,
+   (float)40.256,
+   (float)41.422,
+   (float)42.585,
+   (float)43.745,
+   (float)44.903,
+   (float)46.059,
+   (float)47.212,
+   (float)48.363,
+   (float)49.513,
+   (float)50.660,
+   (float)51.805,
+   (float)52.949,
+   (float)54.090,
+   (float)55.230,
+   (float)56.369,
+   (float)57.505,
+   (float)58.641,
+   (float)59.774,
+   (float)60.907,
+   (float)62.038,
+   (float)63.167,
+   (float)64.295,
+   (float)65.422,
+   (float)66.548,
+   (float)67.673,
+   (float)68.796,
+   (float)69.919,
+   (float)71.040,
+   (float)72.160,
+   (float)73.279,
+   (float)74.397,
+   (float)75.514,
+   (float)76.630,
+   (float)77.745,
+   (float)78.860};
+double RGR_GetChi2Coef(int dof)
+{
+  double __retres;
+  if (dof <= 64) {
+    __retres = (double)RGR_GetChi2Coef_coefs[dof - 1];
+    goto return_label;
+  }
+  else {
+    __retres = 1.2 * (double)dof;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+static char critical_runs[130] =
+  {(char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)0,
+   (char)2,
+   (char)3,
+   (char)3,
+   (char)3,
+   (char)4,
+   (char)4,
+   (char)5,
+   (char)5,
+   (char)5,
+   (char)6,
+   (char)6,
+   (char)7,
+   (char)7,
+   (char)7,
+   (char)8,
+   (char)8,
+   (char)9,
+   (char)9,
+   (char)9,
+   (char)10,
+   (char)10,
+   (char)11,
+   (char)11,
+   (char)11,
+   (char)12,
+   (char)12,
+   (char)13,
+   (char)13,
+   (char)14,
+   (char)14,
+   (char)14,
+   (char)15,
+   (char)15,
+   (char)16,
+   (char)16,
+   (char)17,
+   (char)17,
+   (char)18,
+   (char)18,
+   (char)18,
+   (char)19,
+   (char)19,
+   (char)20,
+   (char)20,
+   (char)21,
+   (char)21,
+   (char)21,
+   (char)22,
+   (char)22,
+   (char)23,
+   (char)23,
+   (char)24,
+   (char)24,
+   (char)25,
+   (char)25,
+   (char)26,
+   (char)26,
+   (char)26,
+   (char)27,
+   (char)27,
+   (char)28,
+   (char)28,
+   (char)29,
+   (char)29,
+   (char)30,
+   (char)30,
+   (char)30,
+   (char)31,
+   (char)31,
+   (char)32,
+   (char)32,
+   (char)33,
+   (char)33,
+   (char)34,
+   (char)34,
+   (char)35,
+   (char)35,
+   (char)35,
+   (char)36,
+   (char)36,
+   (char)37,
+   (char)37,
+   (char)38,
+   (char)38,
+   (char)39,
+   (char)39,
+   (char)40,
+   (char)40,
+   (char)40,
+   (char)41,
+   (char)41,
+   (char)42,
+   (char)42,
+   (char)43,
+   (char)43,
+   (char)44,
+   (char)44,
+   (char)45,
+   (char)45,
+   (char)46,
+   (char)46,
+   (char)46,
+   (char)47,
+   (char)47,
+   (char)48,
+   (char)48,
+   (char)49,
+   (char)49,
+   (char)50,
+   (char)50,
+   (char)51,
+   (char)51,
+   (char)52,
+   (char)52,
+   (char)52,
+   (char)53,
+   (char)53,
+   (char)54,
+   (char)54,
+   (char)55,
+   (char)55,
+   (char)56};
+static int n_runs_from_residuals(double *resid, int n)
+{
+  int nruns;
+  int i;
+  nruns = 1;
+  i = 1;
+  while (i < n) {
+    if (*(resid + (i - 1)) < 0.0) {
+      if (*(resid + i) < 0.0) goto _LOR; else goto _LAND_0;
+    }
+    else {
+      _LAND_0: ;
+      if (*(resid + (i - 1)) > 0.0) {
+        if (*(resid + i) > 0.0) _LOR: ; else goto _LAND;
+      }
+      else _LAND: nruns ++;
+    }
+    i ++;
+  }
+  return nruns;
+}
+
+int RGR_FindBestRegression(double *x, double *y, double *w, int n, int m,
+                           int min_samples_0, double *b0, double *b1,
+                           double *s2, double *sb0, double *sb1,
+                           int *new_start, int *n_runs, int *dof)
+{
+  int __retres;
+  double P;
+  double Q;
+  double U;
+  double V;
+  double W;
+  double resid[64 * 2];
+  double ss;
+  double a;
+  double b;
+  double u;
+  double ui;
+  double aa;
+  int start;
+  int resid_start;
+  int nruns;
+  int npoints;
+  int i;
+  int tmp;
+  if (n <= 64) 
+    if (m >= 0) tmp = 1; else tmp = 0;
+  else tmp = 0;
+  __FC_assert(tmp != 0,"regress.c",242,"n <= MAX_POINTS && m >= 0");
+  __FC_assert(((unsigned long)(n * 2) < sizeof(critical_runs) / sizeof(critical_runs[0])) != 0,
+              "regress.c",243,
+              "n * REGRESS_RUNS_RATIO < sizeof (critical_runs) / sizeof (critical_runs[0])");
+  if (n < 3) {
+    __retres = 0;
+    goto return_label;
+  }
+  start = 0;
+  while (1) {
+    U = (double)0;
+    W = U;
+    i = start;
+    while (i < n) {
+      U += *(x + i) / *(w + i);
+      W += 1.0 / *(w + i);
+      i ++;
+    }
+    u = U / W;
+    V = 0.0;
+    Q = V;
+    P = Q;
+    i = start;
+    while (i < n) {
+      ui = *(x + i) - u;
+      P += *(y + i) / *(w + i);
+      Q += (*(y + i) * ui) / *(w + i);
+      V += (ui * ui) / *(w + i);
+      i ++;
+    }
+    b = Q / V;
+    a = P / W - b * u;
+    resid_start = n - (n - start) * 2;
+    if (resid_start < - m) resid_start = - m;
+    i = resid_start;
+    while (i < n) {
+      resid[i - resid_start] = (*(y + i) - a) - b * *(x + i);
+      i ++;
+    }
+    nruns = n_runs_from_residuals(resid,n - resid_start);
+    if (nruns > (int)critical_runs[n - resid_start]) goto _LOR;
+    else 
+      if (n - start <= 3) goto _LOR;
+      else 
+        if (n - start <= min_samples_0) {
+          _LOR:
+          {
+            if (start != resid_start) nruns = n_runs_from_residuals(& resid[
+                                                                    start - resid_start],
+                                                                    n - start);
+            break;
+          }
+        }
+        else start ++;
+  }
+  *b1 = b;
+  *b0 = a;
+  ss = 0.0;
+  i = start;
+  while (i < n) {
+    ss += (resid[i - resid_start] * resid[i - resid_start]) / *(w + i);
+    i ++;
+  }
+  npoints = n - start;
+  ss /= (double)(npoints - 2);
+  *sb1 = sqrt(ss / V);
+  aa = u * *sb1;
+  *sb0 = sqrt(ss / W + aa * aa);
+  *s2 = (ss * (double)npoints) / W;
+  *new_start = start;
+  *dof = npoints - 2;
+  *n_runs = nruns;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+static double find_ordered_entry_with_flags(double *x, int n, int index_0,
+                                            char *flags)
+{
+  double __retres;
+  int u;
+  int v;
+  int l;
+  int r;
+  double temp;
+  double piv;
+  int pivind;
+  __FC_assert((index_0 >= 0) != 0,"regress.c",350,"index >= 0");
+  if (*(flags + index_0)) {
+    __retres = *(x + index_0);
+    goto return_label;
+  }
+  v = index_0;
+  u = v;
+  while (1) {
+    if (u > 0) {
+      if (! (! *(flags + u))) break;
+    }
+    else break;
+    u --;
+  }
+  if (*(flags + u)) u ++;
+  while (1) {
+    if (v < n - 1) {
+      if (! (! *(flags + v))) break;
+    }
+    else break;
+    v ++;
+  }
+  if (*(flags + v)) v --;
+  while (1) 
+    if (v - u < 2) {
+      char tmp;
+      if (*(x + v) < *(x + u)) {
+        temp = *(x + v);
+        *(x + v) = *(x + u);
+        *(x + u) = temp;
+      }
+      tmp = (char)1;
+      *(flags + u) = tmp;
+      *(flags + v) = tmp;
+      __retres = *(x + index_0);
+      goto return_label;
+    }
+    else {
+      pivind = (u + v) >> 1;
+      temp = *(x + u);
+      *(x + u) = *(x + pivind);
+      *(x + pivind) = temp;
+      piv = *(x + u);
+      l = u + 1;
+      r = v;
+      while (1) {
+        while (1) {
+          if (l < v) {
+            if (! (*(x + l) < piv)) break;
+          }
+          else break;
+          l ++;
+        }
+        while (*(x + r) > piv) r --;
+        if (r <= l) break;
+        temp = *(x + l);
+        *(x + l) = *(x + r);
+        *(x + r) = temp;
+        l ++;
+        r --;
+      }
+      temp = *(x + u);
+      *(x + u) = *(x + r);
+      *(x + r) = temp;
+      *(flags + r) = (char)1;
+      if (index_0 == r) {
+        __retres = *(x + r);
+        goto return_label;
+      }
+      else 
+        if (index_0 < r) v = r - 1;
+        else 
+          if (index_0 > r) u = l;
+    }
+  return_label: return __retres;
+}
+
+static double find_median(double *x, int n)
+{
+  double __retres;
+  int k;
+  char flags[64];
+  memset((void *)(flags),0,(unsigned long)n * sizeof(flags[0]));
+  k = n >> 1;
+  if (n & 1) {
+    double tmp;
+    tmp = find_ordered_entry_with_flags(x,n,k,flags);
+    __retres = tmp;
+    goto return_label;
+  }
+  else {
+    double tmp_0;
+    double tmp_1;
+    tmp_0 = find_ordered_entry_with_flags(x,n,k,flags);
+    tmp_1 = find_ordered_entry_with_flags(x,n,k - 1,flags);
+    __retres = 0.5 * (tmp_0 + tmp_1);
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+double RGR_FindMedian(double *x, int n)
+{
+  double tmp[64];
+  int tmp_0;
+  double tmp_1;
+  if (n > 0) 
+    if (n <= 64) tmp_0 = 1; else tmp_0 = 0;
+  else tmp_0 = 0;
+  __FC_assert(tmp_0 != 0,"regress.c",439,"n > 0 && n <= MAX_POINTS");
+  memcpy((void *)(tmp),(void const *)x,(unsigned long)n * sizeof(tmp[0]));
+  tmp_1 = find_median(tmp,n);
+  return tmp_1;
+}
+
+static void eval_robust_residual(double *x, double *y, int n, double b,
+                                 double *aa, double *rr)
+{
+  int i;
+  double a;
+  double res;
+  double del;
+  double d[64];
+  i = 0;
+  while (i < n) {
+    d[i] = *(y + i) - b * *(x + i);
+    i ++;
+  }
+  a = find_median(d,n);
+  res = 0.0;
+  i = 0;
+  while (i < n) {
+    del = (*(y + i) - a) - b * *(x + i);
+    if (del > 0.0) res += *(x + i);
+    else 
+      if (del < 0.0) res -= *(x + i);
+    i ++;
+  }
+  *aa = a;
+  *rr = res;
+  return;
+}
+
+int RGR_FindBestRobustRegression(double *x, double *y, int n, double tol,
+                                 double *b0, double *b1, int *n_runs,
+                                 int *best_start)
+{
+  int __retres;
+  int i;
+  int start;
+  int n_points;
+  double a;
+  double b;
+  double P;
+  double U;
+  double V;
+  double W;
+  double X;
+  double resid;
+  double resids[64];
+  double blo;
+  double bhi;
+  double bmid;
+  double rlo;
+  double rhi;
+  double rmid;
+  double s2;
+  double sb;
+  double incr;
+  double mx;
+  double dx;
+  double my;
+  double dy;
+  int nruns = 0;
+  __FC_assert((n <= 64) != 0,"regress.c",525,"n <= MAX_POINTS");
+  if (n < 2) {
+    __retres = 0;
+    goto return_label;
+  }
+  else 
+    if (n == 2) {
+      *b1 = (*(y + 1) - *(y + 0)) / (*(x + 1) - *(x + 0));
+      *b0 = *(y + 0) - *b1 * *(x + 0);
+      *n_runs = 0;
+      *best_start = 0;
+      __retres = 1;
+      goto return_label;
+    }
+  start = 0;
+  while (1) {
+    n_points = n - start;
+    U = 0.0;
+    P = U;
+    i = start;
+    while (i < n) {
+      P += *(y + i);
+      U += *(x + i);
+      i ++;
+    }
+    W = (double)n_points;
+    my = P / W;
+    mx = U / W;
+    V = 0.0;
+    X = V;
+    i = start;
+    while (i < n) {
+      dy = *(y + i) - my;
+      dx = *(x + i) - mx;
+      X += dy * dx;
+      V += dx * dx;
+      i ++;
+    }
+    b = X / V;
+    a = my - b * mx;
+    s2 = 0.0;
+    i = start;
+    while (i < n) {
+      resid = (*(y + i) - a) - b * *(x + i);
+      s2 += resid * resid;
+      i ++;
+    }
+    sb = sqrt((s2 * W) / V);
+    if (sb > tol) incr = sb; else incr = tol;
+    while (1) {
+      incr *= 2.0;
+      if (incr > 100.0) {
+        __retres = 0;
+        goto return_label;
+      }
+      blo = b - incr;
+      bhi = b + incr;
+      eval_robust_residual(x + start,y + start,n_points,blo,& a,& rlo);
+      eval_robust_residual(x + start,y + start,n_points,bhi,& a,& rhi);
+      if (! (rlo * rhi >= 0.0)) break;
+    }
+    while (1) {
+      bmid = 0.5 * (blo + bhi);
+      if (blo < bmid) {
+        if (! (bmid < bhi)) break;
+      }
+      else break;
+      eval_robust_residual(x + start,y + start,n_points,bmid,& a,& rmid);
+      if (rmid == 0.0) break;
+      else 
+        if (rmid * rlo > 0.0) {
+          blo = bmid;
+          rlo = rmid;
+        }
+        else 
+          if (rmid * rhi > 0.0) {
+            bhi = bmid;
+            rhi = rmid;
+          }
+          else __FC_assert(0 != 0,"regress.c",616,"0");
+      if (! (bhi - blo > tol)) break;
+    }
+    *b0 = a;
+    *b1 = bmid;
+    if (n_points == 3) break;
+    i = start;
+    while (i < n) {
+      resids[i] = (*(y + i) - a) - bmid * *(x + i);
+      i ++;
+    }
+    nruns = n_runs_from_residuals(& resids[start],n_points);
+    if (nruns > (int)critical_runs[n_points]) break; else start ++;
+  }
+  *n_runs = nruns;
+  *best_start = start;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+int RGR_MultipleRegress(double *x1, double *x2, double *y, int n, double *b2)
+{
+  int __retres;
+  double Sx1;
+  double Sx2;
+  double Sx1x1;
+  double Sx1x2;
+  double Sx2x2;
+  double Sx1y;
+  double Sx2y;
+  double Sy;
+  double U;
+  double V;
+  double V1;
+  double V2;
+  double V3;
+  int i;
+  double tmp;
+  double tmp_0;
+  if (n < 4) {
+    __retres = 0;
+    goto return_label;
+  }
+  Sy = 0.0;
+  Sx2y = Sy;
+  Sx1y = Sx2y;
+  Sx2x2 = Sx1y;
+  Sx1x2 = Sx2x2;
+  Sx1x1 = Sx1x2;
+  Sx2 = Sx1x1;
+  Sx1 = Sx2;
+  i = 0;
+  while (i < n) {
+    Sx1 += *(x1 + i);
+    Sx2 += *(x2 + i);
+    Sx1x1 += *(x1 + i) * *(x1 + i);
+    Sx1x2 += *(x1 + i) * *(x2 + i);
+    Sx2x2 += *(x2 + i) * *(x2 + i);
+    Sx1y += *(x1 + i) * *(y + i);
+    Sx2y += *(x2 + i) * *(y + i);
+    Sy += *(y + i);
+    i ++;
+  }
+  U = (((double)n * (Sx1x2 * Sx1y - Sx1x1 * Sx2y) + (Sx1 * Sx1) * Sx2y) - 
+       (Sx1 * Sx2) * Sx1y) + Sy * (Sx2 * Sx1x1 - Sx1 * Sx1x2);
+  V1 = (double)n * (Sx1x2 * Sx1x2 - Sx1x1 * Sx2x2);
+  V2 = (Sx1 * Sx1) * Sx2x2 + (Sx2 * Sx2) * Sx1x1;
+  V3 = ((- 2.0 * Sx1) * Sx2) * Sx1x2;
+  V = (V1 + V2) + V3;
+  tmp = fabs(V);
+  tmp_0 = fabs(V3);
+  ;
+  if (tmp * 1.0e10 <= (- V1 + V2) + tmp_0) {
+    __retres = 0;
+    goto return_label;
+  }
+  *b2 = U / V;
+  __retres = 1;
+  return_label: return __retres;
+}
+
+void test_unit(void)
+{
+  double x[64];
+  double x2[64];
+  double y[64];
+  double w[64];
+  double b0;
+  double b1;
+  double b2;
+  double s2;
+  double sb0;
+  double sb1;
+  double slope;
+  double slope2;
+  double intercept;
+  double sd;
+  double median;
+  double xrange;
+  double yrange;
+  double wrange;
+  double x2range;
+  int i;
+  int j;
+  int n;
+  int m;
+  int c1;
+  int c2;
+  int c3;
+  int runs;
+  int best_start;
+  int dof;
+  n = 3;
+  while (n <= 64) {
+    i = 0;
+    while (i < 200) {
+      {
+        int tmp_0;
+        long tmp;
+        double tmp_1;
+        int tmp_8;
+        int tmp_10;
+        int tmp_14;
+        double tmp_18;
+        long tmp_17;
+        long tmp_19;
+        double tmp_22;
+        double tmp_21;
+        long tmp_20;
+        long tmp_23;
+        double tmp_26;
+        double tmp_25;
+        long tmp_24;
+        long tmp_27;
+        double tmp_30;
+        double tmp_29;
+        long tmp_28;
+        long tmp_31;
+        slope = TST_GetRandomDouble(- 0.1,0.1);
+        intercept = TST_GetRandomDouble(- 1.0,1.0);
+        sd = TST_GetRandomDouble(1e-6,1e-4);
+        tmp = random();
+        if (tmp % (long)2) tmp_0 = 1; else tmp_0 = -1;
+        tmp_1 = TST_GetRandomDouble(0.1,0.5);
+        slope2 = (double)tmp_0 * tmp_1;
+        j = 0;
+        while (j < n) {
+          {
+            int tmp_2;
+            double tmp_3;
+            x[j] = (double)(- j);
+            if (j % 2) tmp_2 = 1; else tmp_2 = -1;
+            tmp_3 = TST_GetRandomDouble(1e-6,sd);
+            y[j] = (intercept + slope * x[j]) + (double)tmp_2 * tmp_3;
+            w[j] = TST_GetRandomDouble(1.0,2.0);
+            x2[j] = ((y[j] - intercept) - slope * x[j]) / slope2;
+          }
+          j ++;
+        }
+        RGR_WeightedRegression(x,y,w,n,& b0,& b1,& s2,& sb0,& sb1);
+        {
+          double tmp_4;
+          tmp_4 = fabs(b0 - intercept);
+          ;
+          if (! (tmp_4 < sd + 1e-3)) {
+            TST_Fail(52);
+            exit(1);
+          }
+        }
+        {
+          double tmp_5;
+          tmp_5 = fabs(b1 - slope);
+          ;
+          if (! (tmp_5 < sd)) {
+            TST_Fail(53);
+            exit(1);
+          }
+        }
+        tmp_8 = RGR_FindBestRegression(x,y,w,n,0,3,& b0,& b1,& s2,& sb0,
+                                       & sb1,& best_start,& runs,& dof);
+        if (tmp_8) {
+          {
+            double tmp_6;
+            tmp_6 = fabs(b0 - intercept);
+            ;
+            if (! (tmp_6 < sd + 1e-3)) {
+              TST_Fail(60);
+              exit(1);
+            }
+          }
+          {
+            double tmp_7;
+            tmp_7 = fabs(b1 - slope);
+            ;
+            if (! (tmp_7 < sd)) {
+              TST_Fail(61);
+              exit(1);
+            }
+          }
+        }
+        tmp_10 = RGR_MultipleRegress(x,x2,y,n,& b2);
+        if (tmp_10) {
+          {
+            double tmp_9;
+            tmp_9 = fabs(b2 - slope2);
+            if (! (tmp_9 < 1e-6)) {
+              TST_Fail(66);
+              exit(1);
+            }
+          }
+        }
+        j = 0;
+        while (j < n / 7) {
+          long tmp_11;
+          tmp_11 = random();
+          y[tmp_11 % (long)n] += (double)100 * sd;
+          j ++;
+        }
+        tmp_14 = RGR_FindBestRobustRegression(x,y,n,1e-8,& b0,& b1,& runs,
+                                              & best_start);
+        if (tmp_14) {
+          {
+            double tmp_12;
+            tmp_12 = fabs(b0 - intercept);
+            ;
+            if (! (tmp_12 < sd + 1e-2)) {
+              TST_Fail(75);
+              exit(1);
+            }
+          }
+          {
+            double tmp_13;
+            tmp_13 = fabs(b1 - slope);
+            ;
+            if (! (tmp_13 < 5.0 * sd)) {
+              TST_Fail(76);
+              exit(1);
+            }
+          }
+        }
+        j = 0;
+        while (j < n) {
+          long tmp_15;
+          double tmp_16;
+          tmp_15 = random();
+          tmp_16 = TST_GetRandomDouble((double)(-1000),(double)1000);
+          x[j] = (double)(tmp_15 % (long)4) * tmp_16;
+          j ++;
+        }
+        median = RGR_FindMedian(x,n);
+        c3 = 0;
+        c2 = c3;
+        c1 = c2;
+        j = c1;
+        while (j < n) {
+          if (x[j] < median) c1 ++;
+          if (x[j] > median) c3 ++; else c2 ++;
+          j ++;
+        }
+        if (c1 + c2 >= c3) {
+          if (! (c1 <= c2 + c3)) goto _LAND;
+        }
+        else {
+          _LAND: {
+                   TST_Fail(93);
+                   exit(1);
+                 }
+        }
+        tmp_17 = random();
+        tmp_18 = pow(10.0,(double)(tmp_17 % (long)10));
+        xrange = TST_GetRandomDouble(1e-6,tmp_18);
+        tmp_19 = random();
+        tmp_20 = random();
+        tmp_21 = pow(10.0,(double)(tmp_20 % (long)10));
+        tmp_22 = TST_GetRandomDouble(0.0,tmp_21);
+        yrange = (double)(tmp_19 % (long)3) * tmp_22;
+        tmp_23 = random();
+        tmp_24 = random();
+        tmp_25 = pow(10.0,(double)(tmp_24 % (long)10));
+        tmp_26 = TST_GetRandomDouble(0.0,tmp_25);
+        wrange = (double)(tmp_23 % (long)3) * tmp_26;
+        tmp_27 = random();
+        tmp_28 = random();
+        tmp_29 = pow(10.0,(double)(tmp_28 % (long)10));
+        tmp_30 = TST_GetRandomDouble(0.0,tmp_29);
+        x2range = (double)(tmp_27 % (long)3) * tmp_30;
+        tmp_31 = random();
+        m = (int)(tmp_31 % (long)n);
+        j = 0;
+        while (j < n) {
+          {
+            double tmp_32;
+            double tmp_33;
+            double tmp_34;
+            if (j) tmp_32 = x[j - 1]; else tmp_32 = 0.0;
+            tmp_33 = TST_GetRandomDouble(1e-6,xrange);
+            x[j] = tmp_32 + tmp_33;
+            y[j] = TST_GetRandomDouble(- yrange,yrange);
+            tmp_34 = TST_GetRandomDouble(0.0,wrange);
+            w[j] = 1.0 + tmp_34;
+            x2[j] = TST_GetRandomDouble(- x2range,x2range);
+          }
+          j ++;
+        }
+        RGR_WeightedRegression(x,y,w,n,& b0,& b1,& s2,& sb0,& sb1);
+        RGR_FindBestRegression(& x[m],& y[m],w,n - m,m,3,& b0,& b1,& s2,
+                               & sb0,& sb1,& best_start,& runs,& dof);
+        RGR_MultipleRegress(x,x2,y,n,& b2);
+        RGR_FindBestRobustRegression(x,y,n,1e-8,& b0,& b1,& runs,
+                                     & best_start);
+      }
+      i ++;
+    }
+    n ++;
+  }
+  return;
+}
+
+
diff --git a/chrony/.frama-c/chrony-regress.parse/metrics.log b/chrony/.frama-c/chrony-regress.parse/metrics.log
new file mode 100644
index 0000000000000000000000000000000000000000..b60e43e0d705397c44f6303af6ddfbf2d813e089
--- /dev/null
+++ b/chrony/.frama-c/chrony-regress.parse/metrics.log
@@ -0,0 +1,302 @@
+[metrics] Defined functions (458)
+=======================
+ ADF_Allow (0 call); ADF_AllowAll (0 call); ADF_CreateTable (0 call);
+ ADF_Deny (0 call); ADF_DenyAll (0 call); ADF_DestroyTable (0 call);
+ ADF_IsAllowed (0 call); ADF_IsAnyAllowed (0 call);
+ ARR_AppendElement (3 calls); ARR_CreateInstance (12 calls);
+ ARR_DestroyInstance (13 calls); ARR_GetElement (28 calls);
+ ARR_GetElements (6 calls); ARR_GetNewElement (8 calls);
+ ARR_GetSize (21 calls); ARR_SetSize (11 calls); CLG_Finalise (0 call);
+ CLG_GetClientAccessReportByIndex (0 call); CLG_GetClientIndex (0 call);
+ CLG_GetNtpMinPoll (0 call); CLG_GetNtpTimestamps (0 call);
+ CLG_GetNumberOfIndices (0 call); CLG_GetServerStatsReport (0 call);
+ CLG_Initialise (0 call); CLG_LimitCommandResponseRate (0 call);
+ CLG_LimitNTPResponseRate (0 call); CLG_LogCommandAccess (0 call);
+ CLG_LogNTPAccess (0 call); CNF_AddBroadcasts (0 call);
+ CNF_AddInitSources (0 call); CNF_AddRefclocks (0 call);
+ CNF_AddSources (0 call); CNF_AllowLocalReference (1 call);
+ CNF_CreateDirs (0 call); CNF_Finalise (0 call);
+ CNF_GetAcquisitionPort (1 call); CNF_GetBindAcquisitionAddress (1 call);
+ CNF_GetBindAddress (1 call); CNF_GetBindCommandAddress (0 call);
+ CNF_GetBindCommandPath (0 call); CNF_GetClientLogLimit (1 call);
+ CNF_GetCombineLimit (1 call); CNF_GetCommandPort (0 call);
+ CNF_GetCommandRateLimit (1 call); CNF_GetCorrectionTimeRatio (1 call);
+ CNF_GetDriftFile (1 call); CNF_GetDumpDir (2 calls);
+ CNF_GetFallbackDrifts (1 call); CNF_GetHwTsInterface (1 call);
+ CNF_GetHwclockFile (0 call); CNF_GetInitSources (0 call);
+ CNF_GetInitStepThreshold (1 call); CNF_GetKeysFile (1 call);
+ CNF_GetLeapSecMode (1 call); CNF_GetLeapSecTimezone (1 call);
+ CNF_GetLockMemory (0 call); CNF_GetLogBanner (0 call);
+ CNF_GetLogChange (1 call); CNF_GetLogDir (0 call);
+ CNF_GetLogMeasurements (0 call); CNF_GetLogRefclocks (0 call);
+ CNF_GetLogRtc (0 call); CNF_GetLogStatistics (1 call);
+ CNF_GetLogTempComp (0 call); CNF_GetLogTracking (1 call);
+ CNF_GetMailOnChange (1 call); CNF_GetMakeStep (1 call);
+ CNF_GetManualEnabled (0 call); CNF_GetMaxChange (1 call);
+ CNF_GetMaxClockError (1 call); CNF_GetMaxDistance (1 call);
+ CNF_GetMaxDrift (1 call); CNF_GetMaxJitter (1 call);
+ CNF_GetMaxSamples (1 call); CNF_GetMaxSlewRate (0 call);
+ CNF_GetMaxUpdateSkew (1 call); CNF_GetMinSamples (1 call);
+ CNF_GetMinSources (1 call); CNF_GetNTPPort (2 calls);
+ CNF_GetNTPRateLimit (1 call); CNF_GetNoClientLog (1 call);
+ CNF_GetNtpSigndSocket (0 call); CNF_GetPidFile (0 call);
+ CNF_GetReselectDistance (1 call); CNF_GetRtcAutotrim (0 call);
+ CNF_GetRtcDevice (0 call); CNF_GetRtcFile (0 call);
+ CNF_GetRtcOnUtc (0 call); CNF_GetRtcSync (0 call);
+ CNF_GetSchedPriority (0 call); CNF_GetSmooth (1 call);
+ CNF_GetStratumWeight (1 call); CNF_GetTempComp (0 call);
+ CNF_GetUser (0 call); CNF_Initialise (0 call); CNF_ParseLine (1 call);
+ CNF_ReadFile (1 call); CNF_SetupAccessRestrictions (0 call);
+ CPS_NormalizeLine (2 calls); CPS_ParseKey (1 call); CPS_ParseLocal (1 call);
+ CPS_ParseNTPSourceAdd (2 calls); CPS_SplitWord (25 calls);
+ DNS_IPAddress2Name (0 call); DNS_Name2IPAddress (3 calls);
+ DNS_Name2IPAddressAsync (0 call); DNS_Reload (0 call);
+ DNS_SetAddressFamily (0 call); HSH_Finalise (0 call);
+ HSH_GetHashId (2 calls); HSH_Hash (3 calls); KEY_CheckAuth (0 call);
+ KEY_CheckKeyLength (0 call); KEY_Finalise (0 call);
+ KEY_GenerateAuth (1 call); KEY_GetAuthDelay (0 call);
+ KEY_GetAuthLength (0 call); KEY_Initialise (0 call); KEY_KeyKnown (0 call);
+ KEY_Reload (1 call); LCL_AccumulateDeltaFrequency (0 call);
+ LCL_AccumulateFrequencyAndOffset (1 call); LCL_AccumulateOffset (3 calls);
+ LCL_AddDispersionNotifyHandler (1 call);
+ LCL_AddParameterChangeHandler (4 calls); LCL_ApplyStepOffset (5 calls);
+ LCL_CanSystemLeap (1 call); LCL_CookTime (11 calls); LCL_Finalise (0 call);
+ LCL_GetMaxClockError (3 calls); LCL_GetOffsetCorrection (5 calls);
+ LCL_GetSysPrecisionAsLog (0 call); LCL_GetSysPrecisionAsQuantum (1 call);
+ LCL_Initialise (0 call); LCL_IsFirstParameterChangeHandler (1 call);
+ LCL_MakeStep (0 call); LCL_NotifyExternalTimeStep (1 call);
+ LCL_NotifyLeap (2 calls); LCL_ReadAbsoluteFrequency (5 calls);
+ LCL_ReadCookedTime (0 call); LCL_ReadRawTime (21 calls);
+ LCL_RemoveDispersionNotifyHandler (2 calls);
+ LCL_RemoveParameterChangeHandler (2 calls);
+ LCL_SetAbsoluteFrequency (3 calls); LCL_SetSyncStatus (2 calls);
+ LCL_SetSystemLeap (2 calls); LCL_SetTempComp (0 call); MD5Final (1 call);
+ MD5Init (1 call); MD5Update (3 calls); Malloc (11 calls); Malloc2 (7 calls);
+ NIO_CloseClientSocket (0 call); NIO_CloseServerSocket (0 call);
+ NIO_Finalise (0 call); NIO_Initialise (0 call);
+ NIO_IsServerConnectable (0 call); NIO_IsServerSocket (1 call);
+ NIO_OpenClientSocket (0 call); NIO_OpenServerSocket (0 call);
+ NIO_SendPacket (0 call); NSD_Finalise (0 call); NSD_GetAuthDelay (0 call);
+ NSD_Initialise (0 call); NSD_SignAndSendPacket (0 call);
+ REF_DisableLocal (0 call); REF_EnableLocal (0 call); REF_Finalise (0 call);
+ REF_GetLeapMode (0 call); REF_GetMode (2 calls);
+ REF_GetOrphanStratum (1 call); REF_GetOurStratum (0 call);
+ REF_GetReferenceParams (2 calls); REF_GetSkew (1 call);
+ REF_GetTaiOffset (0 call); REF_GetTrackingReport (0 call);
+ REF_Initialise (0 call); REF_IsLeapSecondClose (2 calls);
+ REF_ModifyMakestep (0 call); REF_ModifyMaxupdateskew (0 call);
+ REF_SetManualReference (0 call); REF_SetMode (0 call);
+ REF_SetModeEndHandler (0 call); REF_SetReference (2 calls);
+ REF_SetUnsynchronised (4 calls); RGR_FindBestRegression (3 calls);
+ RGR_FindBestRobustRegression (2 calls); RGR_FindMedian (2 calls);
+ RGR_GetChi2Coef (0 call); RGR_GetTCoef (1 call);
+ RGR_MultipleRegress (3 calls); RGR_WeightedRegression (2 calls);
+ Realloc (1 call); Realloc2 (4 calls); SCH_AddFileHandler (2 calls);
+ SCH_AddTimeout (3 calls); SCH_AddTimeoutByDelay (1 call);
+ SCH_AddTimeoutInClass (0 call); SCH_Finalise (0 call);
+ SCH_GetLastEventTime (4 calls); SCH_Initialise (0 call);
+ SCH_MainLoop (0 call); SCH_QuitProgram (0 call);
+ SCH_RemoveFileHandler (2 calls); SCH_RemoveTimeout (3 calls);
+ SCH_SetFileHandlerEvent (0 call); SMT_Activate (2 calls);
+ SMT_Finalise (0 call); SMT_GetOffset (0 call);
+ SMT_GetSmoothingReport (0 call); SMT_Initialise (0 call);
+ SMT_IsEnabled (0 call); SMT_Leap (1 call); SMT_Reset (1 call);
+ SRC_AccumulateSample (0 call); SRC_ActiveSources (0 call);
+ SRC_CreateNewInstance (0 call); SRC_DestroyInstance (0 call);
+ SRC_DumpSources (0 call); SRC_Finalise (0 call);
+ SRC_GetSourcestats (0 call); SRC_GetType (0 call); SRC_Initialise (0 call);
+ SRC_IsReachable (0 call); SRC_IsSyncPeer (0 call);
+ SRC_ReadNumberOfSources (0 call); SRC_ReloadSources (0 call);
+ SRC_RemoveDumpFiles (0 call); SRC_ReportSource (0 call);
+ SRC_ReportSourcestats (0 call); SRC_ReselectSource (1 call);
+ SRC_ResetInstance (1 call); SRC_ResetReachability (0 call);
+ SRC_SelectSource (3 calls); SRC_SetActive (0 call); SRC_SetRefid (1 call);
+ SRC_SetReselectDistance (0 call); SRC_UnsetActive (0 call);
+ SRC_UpdateReachability (1 call); SST_AccumulateSample (1 call);
+ SST_AddDispersion (1 call); SST_CreateInstance (1 call);
+ SST_DeleteInstance (1 call); SST_DoNewRegression (2 calls);
+ SST_DoSourceReport (1 call); SST_DoSourcestatsReport (1 call);
+ SST_Finalise (0 call); SST_GetDelayTestData (0 call);
+ SST_GetFrequencyRange (0 call); SST_GetJitterAsymmetry (0 call);
+ SST_GetSelectionData (1 call); SST_GetTrackingData (2 calls);
+ SST_Initialise (0 call); SST_LoadFromFile (1 call);
+ SST_MinRoundTripDelay (2 calls); SST_PredictOffset (0 call);
+ SST_ResetInstance (5 calls); SST_Samples (1 call); SST_SaveToFile (1 call);
+ SST_SetRefid (2 calls); SST_SlewSamples (1 call); Strdup (19 calls);
+ TST_Fail (8 calls); TST_GetRandomAddress (0 call);
+ TST_GetRandomDouble (15 calls); TST_RegisterDummyDrivers (0 call);
+ TST_ResumeLogging (0 call); TST_SuspendLogging (0 call);
+ TST_SwapAddressBit (0 call); Transform (2 calls);
+ UTI_AddDiffToTimespec (0 call); UTI_AddDoubleToTimespec (13 calls);
+ UTI_AdjustTimespec (6 calls); UTI_AverageDiffTimespecs (0 call);
+ UTI_CheckDirPermissions (1 call); UTI_CompareIPs (1 call);
+ UTI_CompareNtp64 (0 call); UTI_CompareTimespecs (5 calls);
+ UTI_CreateDirAndParents (3 calls); UTI_DiffTimespecs (3 calls);
+ UTI_DiffTimespecsToDouble (26 calls); UTI_DoubleToNtp32 (0 call);
+ UTI_DoubleToTimespec (0 call); UTI_DoubleToTimeval (0 call);
+ UTI_DropRoot (0 call); UTI_FdSetCloexec (3 calls);
+ UTI_FloatHostToNetwork (0 call); UTI_FloatNetworkToHost (0 call);
+ UTI_GetNtp64Fuzz (1 call); UTI_GetRandomBytes (5 calls);
+ UTI_GetRandomBytesUrandom (1 call); UTI_IPAndPortToSockaddr (2 calls);
+ UTI_IPHostToNetwork (0 call); UTI_IPNetworkToHost (0 call);
+ UTI_IPToHash (1 call); UTI_IPToRefid (0 call); UTI_IPToString (8 calls);
+ UTI_IsEqualAnyNtp64 (0 call); UTI_IsTimeOffsetSane (1 call);
+ UTI_IsZeroNtp64 (1 call); UTI_IsZeroTimespec (3 calls);
+ UTI_Log2ToDouble (0 call); UTI_NormaliseTimespec (4 calls);
+ UTI_NormaliseTimeval (1 call); UTI_Ntp32ToDouble (0 call);
+ UTI_Ntp64ToString (0 call); UTI_Ntp64ToTimespec (2 calls);
+ UTI_PathToDir (1 call); UTI_RefidToString (4 calls);
+ UTI_SetQuitSignalsHandler (0 call); UTI_SockaddrFamilyToString (2 calls);
+ UTI_SockaddrToIPAndPort (2 calls); UTI_SockaddrToString (0 call);
+ UTI_StringToIP (6 calls); UTI_TimeToLogForm (2 calls);
+ UTI_TimespecHostToNetwork (0 call); UTI_TimespecNetworkToHost (0 call);
+ UTI_TimespecToDouble (2 calls); UTI_TimespecToNtp64 (1 call);
+ UTI_TimespecToString (1 call); UTI_TimespecToTimeval (1 call);
+ UTI_TimevalToDouble (0 call); UTI_TimevalToTimespec (3 calls);
+ UTI_ZeroNtp64 (2 calls); UTI_ZeroTimespec (8 calls);
+ accrue_offset (address taken) (0 call);
+ add_dispersion (address taken) (0 call); allocate_tqe (2 calls);
+ apply_step_offset (address taken) (0 call);
+ calculate_sys_precision (1 call); check_current_time (1 call);
+ check_ip_in_node (2 calls); check_ntp_auth (1 call);
+ check_number_of_args (16 calls); check_offset (4 calls);
+ clamp_freq (3 calls); close_node (4 calls); close_socket (6 calls);
+ combine_sources (1 call); command_parse_error (31 calls);
+ compare_keys_by_id (address taken) (0 call);
+ compare_sort_elements (address taken) (0 call); compare_ts (2 calls);
+ connect_socket (2 calls); convert_to_intervals (1 call);
+ correct_asymmetry (1 call); create_dir (1 call); decode_password (1 call);
+ determine_hash_delay (1 call); dispatch_filehandlers (1 call);
+ dispatch_timeouts (1 call); end_ref_mode (5 calls);
+ estimate_asymmetry (1 call); eva_main (0 call);
+ eval_robust_residual (3 calls); expand_hashtable (2 calls);
+ fb_drift_timeout (address taken) (0 call); fill_fd_sets (1 call);
+ find_best_sample_index (1 call); find_median (2 calls);
+ find_min_delay_sample (2 calls); find_ordered_entry_with_flags (3 calls);
+ free_keys (2 calls); generate_ntp_auth (2 calls); get_array_size (2 calls);
+ get_buf_index (9 calls); get_clock_estimates (1 call); get_index (3 calls);
+ get_interval (3 calls); get_key (7 calls); get_key_by_id (6 calls);
+ get_last_ago (2 calls); get_new_tqe_id (2 calls);
+ get_number_of_args (3 calls); get_record (4 calls);
+ get_root_dispersion (5 calls); get_runsbuf_index (16 calls);
+ get_smoothing (3 calls); get_subnet (4 calls);
+ get_ts_from_timespec (2 calls); get_tz_leap (4 calls);
+ handle_slew (address taken) (0 call);
+ handle_slew_0 (address taken) (0 call);
+ handle_slew_1 (address taken) (0 call);
+ invoke_parameter_change_handlers (7 calls); is_any_allowed (2 calls);
+ is_leap_second_day (1 call); is_offset_ok (1 call);
+ is_step_limit_reached (1 call); lcl_InvokeDispersionNotifyHandlers (1 call);
+ lcl_RegisterSystemDrivers (1 call);
+ leap_end_timeout (address taken) (0 call);
+ leap_start_timeout (address taken) (0 call);
+ limit_response_random (2 calls); log_selection_message (5 calls);
+ lookup_key (1 call); main (1 call); mark_ok_sources (4 calls);
+ maybe_log_offset (1 call); n_runs_from_residuals (3 calls);
+ offset_convert (address taken) (0 call); open_dumpfile (2 calls);
+ open_node (3 calls); other_parse_error (3 calls);
+ parse_allow_deny (4 calls); parse_bindacqaddress (1 call);
+ parse_bindaddress (1 call); parse_bindcmdaddress (1 call);
+ parse_broadcast (1 call); parse_clientloglimit (1 call);
+ parse_double (12 calls); parse_fallbackdrift (1 call);
+ parse_hwtimestamp (1 call); parse_include (1 call);
+ parse_initstepslew (1 call); parse_int (8 calls);
+ parse_leapsecmode (1 call); parse_local (1 call); parse_log (1 call);
+ parse_mailonchange (1 call); parse_makestep (1 call);
+ parse_maxchange (1 call); parse_null (5 calls); parse_ratelimit (2 calls);
+ parse_refclock (1 call); parse_smoothtime (1 call); parse_source (3 calls);
+ parse_string (12 calls); parse_tempcomp (1 call); prepare_buffers (2 calls);
+ prepare_separate_client_socket (2 calls); prepare_socket (5 calls);
+ process_message (1 call); prune_register (2 calls);
+ read_frequency (address taken) (0 call);
+ read_from_socket (address taken) (0 call); realloc_array (2 calls);
+ release_tqe (1 call); resolve_name (address taken) (0 call);
+ schedule_fb_drift (2 calls); set_bucket_params (2 calls);
+ set_frequency (address taken) (0 call); set_leap_timeout (2 calls);
+ set_subnet (4 calls); set_subnet_ (4 calls);
+ slew_sources (address taken) (0 call); source_to_string (5 calls);
+ special_mode_end (1 call); special_mode_sync (2 calls); split_ip6 (2 calls);
+ test_unit (1 call); update_drift_file (2 calls); update_fb_drifts (1 call);
+ update_leap_status (4 calls); update_record (2 calls);
+ update_smoothing (3 calls); update_stages (1 call); write_log (2 calls); 
+
+Undefined functions (16)
+========================
+ CAM_AddAccessRestriction (1 call); LOG_FileOpen (2 calls);
+ LOG_FileWrite (2 calls); LOG_Finalise (1 call); LOG_Initialise (1 call);
+ LOG_Message (93 calls); LOG_OpenFileLog (2 calls);
+ LOG_SetDebugLevel (1 call); NCR_AddAccessRestriction (1 call);
+ NCR_AddBroadcastDestination (1 call); NSR_AddSource (1 call);
+ NSR_AddSourceByName (1 call); NSR_GetLocalRefid (1 call);
+ NSR_HandleBadSource (1 call); NSR_ProcessRx (1 call);
+ RCL_AddRefclock (1 call); 
+
+'Extern' global variables (0)
+=============================
+ 
+
+Potential entry points (161)
+============================
+ ADF_Allow; ADF_AllowAll; ADF_CreateTable; ADF_Deny; ADF_DenyAll;
+  ADF_DestroyTable; ADF_IsAllowed; ADF_IsAnyAllowed; CLG_Finalise;
+  CLG_GetClientAccessReportByIndex; CLG_GetClientIndex; CLG_GetNtpMinPoll;
+  CLG_GetNtpTimestamps; CLG_GetNumberOfIndices; CLG_GetServerStatsReport;
+  CLG_Initialise; CLG_LimitCommandResponseRate; CLG_LimitNTPResponseRate;
+  CLG_LogCommandAccess; CLG_LogNTPAccess; CNF_AddBroadcasts;
+  CNF_AddInitSources; CNF_AddRefclocks; CNF_AddSources; CNF_CreateDirs;
+  CNF_Finalise; CNF_GetBindCommandAddress; CNF_GetBindCommandPath;
+  CNF_GetCommandPort; CNF_GetHwclockFile; CNF_GetInitSources;
+  CNF_GetLockMemory; CNF_GetLogBanner; CNF_GetLogDir; CNF_GetLogMeasurements;
+  CNF_GetLogRefclocks; CNF_GetLogRtc; CNF_GetLogTempComp;
+  CNF_GetManualEnabled; CNF_GetMaxSlewRate; CNF_GetNtpSigndSocket;
+  CNF_GetPidFile; CNF_GetRtcAutotrim; CNF_GetRtcDevice; CNF_GetRtcFile;
+  CNF_GetRtcOnUtc; CNF_GetRtcSync; CNF_GetSchedPriority; CNF_GetTempComp;
+  CNF_GetUser; CNF_Initialise; CNF_SetupAccessRestrictions;
+  DNS_IPAddress2Name; DNS_Name2IPAddressAsync; DNS_Reload;
+  DNS_SetAddressFamily; HSH_Finalise; KEY_CheckAuth; KEY_CheckKeyLength;
+  KEY_Finalise; KEY_GetAuthDelay; KEY_GetAuthLength; KEY_Initialise;
+  KEY_KeyKnown; LCL_AccumulateDeltaFrequency; LCL_Finalise;
+  LCL_GetSysPrecisionAsLog; LCL_Initialise; LCL_MakeStep; LCL_ReadCookedTime;
+  LCL_SetTempComp; NIO_CloseClientSocket; NIO_CloseServerSocket;
+  NIO_Finalise; NIO_Initialise; NIO_IsServerConnectable;
+  NIO_OpenClientSocket; NIO_OpenServerSocket; NIO_SendPacket; NSD_Finalise;
+  NSD_GetAuthDelay; NSD_Initialise; NSD_SignAndSendPacket; REF_DisableLocal;
+  REF_EnableLocal; REF_Finalise; REF_GetLeapMode; REF_GetOurStratum;
+  REF_GetTaiOffset; REF_GetTrackingReport; REF_Initialise;
+  REF_ModifyMakestep; REF_ModifyMaxupdateskew; REF_SetManualReference;
+  REF_SetMode; REF_SetModeEndHandler; RGR_GetChi2Coef; SCH_AddTimeoutInClass;
+  SCH_Finalise; SCH_Initialise; SCH_MainLoop; SCH_QuitProgram;
+  SCH_SetFileHandlerEvent; SMT_Finalise; SMT_GetOffset;
+  SMT_GetSmoothingReport; SMT_Initialise; SMT_IsEnabled;
+  SRC_AccumulateSample; SRC_ActiveSources; SRC_CreateNewInstance;
+  SRC_DestroyInstance; SRC_DumpSources; SRC_Finalise; SRC_GetSourcestats;
+  SRC_GetType; SRC_Initialise; SRC_IsReachable; SRC_IsSyncPeer;
+  SRC_ReadNumberOfSources; SRC_ReloadSources; SRC_RemoveDumpFiles;
+  SRC_ReportSource; SRC_ReportSourcestats; SRC_ResetReachability;
+  SRC_SetActive; SRC_SetReselectDistance; SRC_UnsetActive; SST_Finalise;
+  SST_GetDelayTestData; SST_GetFrequencyRange; SST_GetJitterAsymmetry;
+  SST_Initialise; SST_PredictOffset; TST_GetRandomAddress;
+  TST_RegisterDummyDrivers; TST_ResumeLogging; TST_SuspendLogging;
+  TST_SwapAddressBit; UTI_AddDiffToTimespec; UTI_AverageDiffTimespecs;
+  UTI_CompareNtp64; UTI_DoubleToNtp32; UTI_DoubleToTimespec;
+  UTI_DoubleToTimeval; UTI_DropRoot; UTI_FloatHostToNetwork;
+  UTI_FloatNetworkToHost; UTI_IPHostToNetwork; UTI_IPNetworkToHost;
+  UTI_IPToRefid; UTI_IsEqualAnyNtp64; UTI_Log2ToDouble; UTI_Ntp32ToDouble;
+  UTI_Ntp64ToString; UTI_SetQuitSignalsHandler; UTI_SockaddrToString;
+  UTI_TimespecHostToNetwork; UTI_TimespecNetworkToHost; UTI_TimevalToDouble;
+  eva_main; 
+
+Global metrics
+============== 
+Sloc = 8290
+Decision point = 1426
+Global variables = 241
+If = 1367
+Loop = 162
+Goto = 410
+Assignment = 3758
+Exit point = 458
+Function = 474
+Function call = 1680
+Pointer dereferencing = 2054
+Cyclomatic complexity = 1884
diff --git a/chrony/.frama-c/chrony-regress.parse/warnings.log b/chrony/.frama-c/chrony-regress.parse/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..d807a37ecfe9e7312394fe893ce7f7961fe96d33
--- /dev/null
+++ b/chrony/.frama-c/chrony-regress.parse/warnings.log
@@ -0,0 +1,2 @@
+conf.c:94:[kernel:parser:decimal-float] warning: Floating-point constant 1e-4 is not represented exactly. Will use 0x1.a36e2eb1c432dp-14.
+(warn-once: no further messages from category 'parser:decimal-float' will be emitted)
diff --git a/chrony/fc_configure.sh b/chrony/.frama-c/fc_configure.sh
similarity index 100%
rename from chrony/fc_configure.sh
rename to chrony/.frama-c/fc_configure.sh
diff --git a/chrony/fc_stubs.c b/chrony/.frama-c/fc_stubs.c
similarity index 51%
rename from chrony/fc_stubs.c
rename to chrony/.frama-c/fc_stubs.c
index 739d377e9c39a89e2ed40fa3934629127a05b6fb..04156aeb990f92e31f798da2a7f0aa46e9bdb426 100644
--- a/chrony/fc_stubs.c
+++ b/chrony/.frama-c/fc_stubs.c
@@ -14,19 +14,26 @@ extern void qsort(void *base, size_t nmemb, size_t size,
   }
 }
 
-// Sets up the initial context, with up to 5 arguments containing
-// random strings of up to 50 characters each
-int main(int argc, char **argv);
-#include "__fc_builtin.h"
-volatile int v;
-void eva_main() {
-  char argv0[50], argv1[50], argv2[50], argv3[50], argv4[50];
-  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0};
+// Stub for a main function which reads arguments from the command line, to be
+// used by the Eva plug-in.
+// This stub emulates non-deterministic input of up to 5 arguments, each up
+// to 256 characters long. This is sufficient to ensure arbitrary input in
+// virtually every case.
+// Do not forget to add option '-main eva_main' in order to use this stub.
+
+#ifdef __FRAMAC__
+# include "__fc_builtin.h"
+int main(int, char **);
+static volatile int nondet;
+int eva_main() {
   int argc = Frama_C_interval(0, 5);
+  char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256];
+  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0};
   //@ loop unroll 5;
   for (int i = 0; i < 5; i++) {
-    Frama_C_make_unknown(argv[i], 49);
-    argv[i][49] = 0; // force valid string
+    Frama_C_make_unknown(argv[i], 255);
+    argv[i][255] = 0;
   }
-  main(argc, argv);
+  return main(argc, argv);
 }
+#endif // __FRAMAC__
diff --git a/chrony/.frama-c/path.mk b/chrony/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/chrony/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/chrony/GNUmakefile b/chrony/GNUmakefile
deleted file mode 100644
index 3173e31118f48bdc91c7d189deeac8edf7a26e6b..0000000000000000000000000000000000000000
--- a/chrony/GNUmakefile
+++ /dev/null
@@ -1,102 +0,0 @@
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-###############################################################################
-# Improves analysis time, at the price of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk should be included at the top of your Makefile, right below
-# the inclusion of frama-c-path.mk
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-
-TEST_COMMON_SRCS = test/unit/test.c \
-  $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/string.c \
-  $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdlib.c \
-  $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdio.c \
-  $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/glob.c \
-  $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/netdb.c \
-  addrfilt.c \
-  array.c \
-  clientlog.c \
-  cmdparse.c \
-  conf.c \
-  hash_intmd5.c \
-  keys.c \
-  local.c \
-  memory.c \
-  nameserv.c \
-  ntp_io.c \
-  reference.c \
-  regress.c \
-  sched.c \
-  smooth.c \
-  sources.c \
-  sourcestats.c \
-  util.c \
-  fc_stubs.c \
-  stubs.c \
-
-# logging.c voluntarily ommitted, to skip analyzing logging functions
-
-CPPFLAGS    += -D_XOPEN_SOURCE=200112L -DNB_TESTS=3
-
-FCFLAGS     += -machdep gcc_x86_64 \
-  -warn-special-float none \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) EVA-specific flags
-EVAFLAGS    += \
-  -eva-use-spec atoi,malloc,free,calloc,Transform,parse_include,SCH_AddTimeout \
-  -eva-warn-key=alarm \
-  -eva-malloc-functions malloc,realloc,Malloc,Malloc2,Realloc,Realloc2 \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-warn-key malloc:weak \
-  -eva-domains equality,gauges \
-  -eva-domains-function symbolic-locations:prune_register \
-  -eva-domains-function symbolic-locations:SST_DoNewRegression \
-  -eva-domains-function symbolic-locations:SST_AccumulateSample \
-  -eva-domains-function symbolic-locations:find_min_delay_sample \
-  -eva-domains-function symbolic-locations:UTI_NormaliseTimespec \
-  -eva-domains-function symbolic-locations:estimate_asymmetry \
-
-MAIN_TARGET := chrony-ntp-core
-
-TARGETS = $(MAIN_TARGET).eva chrony-regress.eva
-
-# Default target
-all: $(TARGETS)
-
-chrony-ntp-core.parse: $(TEST_COMMON_SRCS) test/unit/ntp_core.c
-chrony-ntp-core.eva: EVAFLAGS += -main eva_main \
-
-# The following parsing rule reuses variable TEST_COMMON_SRCS to avoid
-# having to manually list the sources. Note that the unit test version of
-# regress.c redefines some functions from the other regress.c file, so
-# we remove the latter from the list of sources.
-chrony-regress.parse: \
-  $(filter-out regress.c,$(TEST_COMMON_SRCS)) test/unit/regress.c
-chrony-regress.eva: EVAFLAGS += -main eva_main
-
-# The following targets are optional and provided for convenience only
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-parse: $(TARGETS:%.eva=%.parse)
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/chrony/frama-c-path.mk b/chrony/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/chrony/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/debie1/.frama-c/GNUmakefile b/debie1/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..4ef6efb6926b9c9e227ca8a24392d6db1158057a
--- /dev/null
+++ b/debie1/.frama-c/GNUmakefile
@@ -0,0 +1,49 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += -I ../code/harness -I ../code -I ../code/intel/linux \
+               -DTRACE_HARNESS -DTRACE_TARGET
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-domains equality \
+  -eva-auto-loop-unroll 170 \
+  -eva-ilevel 16 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = debie1.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+debie1.parse: \
+  $(sort $(wildcard ../code/*.c)) \
+  ../code/harness/harness.c \
+  ../code/intel/linux/target.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/debie1/.frama-c/debie1.eva/alarms.csv b/debie1/.frama-c/debie1.eva/alarms.csv
new file mode 100644
index 0000000000000000000000000000000000000000..6338a2e40910a8a90b3b20c24745b7229db3c326
--- /dev/null
+++ b/debie1/.frama-c/debie1.eva/alarms.csv
@@ -0,0 +1,5 @@
+directory	file	line	function	property kind	status	property
+code	tc_hand.c	1037	UpdateTarget	initialization	Unknown	\initialized(&SU_setting.execution_result)
+code	telem.c	133	TM_InterruptService	ptr_comparison	Unknown	\pointer_comparable((void *)telemetry_pointer, (void *)(&telemetry_data.time))
+code	telem.c	313	IncrementCounters	index_bound	Unknown	sensor_unit < 4
+code/harness	harness.c	3338	Acquisition_Tests	signed_overflow	Unknown	octets + 2 ≤ 2147483647
diff --git a/debie1/.frama-c/debie1.eva/metrics.log b/debie1/.frama-c/debie1.eva/metrics.log
new file mode 100644
index 0000000000000000000000000000000000000000..114ea02a5e537a0ea59a0726a1f9b4d2d8537022
--- /dev/null
+++ b/debie1/.frama-c/debie1.eva/metrics.log
@@ -0,0 +1,197 @@
+[metrics] Eva coverage statistics
+=======================
+Syntactically reachable functions = 183 (out of 191)
+Semantically reached functions = 180
+Coverage estimation = 98.4% 
+
+Unreached functions (3) =
+  <code/measure.c>: AcquisitionTask; HitTriggerTask; 
+  <code/tc_hand.c>: TelecommandExecutionTask;
+[metrics] References to non-analyzed functions
+------------------------------------
+Initializer of acq_task references AcquisitionTask (at code/measure.c:545)
+Initializer of hit_task references HitTriggerTask (at code/measure.c:544)
+Initializer of TC_task references TelecommandExecutionTask (at code/tc_hand.c:1596)
+[metrics] Statements analyzed by Eva
+--------------------------
+2974 stmts in analyzed functions, 2926 stmts analyzed (98.4%)
+Acquire_Hit: 4 stmts out of 4 (100.0%)
+Acquisition_Tests: 132 stmts out of 132 (100.0%)
+AttachInterrupt: 1 stmts out of 1 (100.0%)
+Boot: 57 stmts out of 57 (100.0%)
+CalculateChecksum: 21 stmts out of 21 (100.0%)
+CalculateQualityNumber: 28 stmts out of 28 (100.0%)
+Call_Patch: 1 stmts out of 1 (100.0%)
+Check_No_Errors: 2 stmts out of 2 (100.0%)
+Check_Nonzero: 4 stmts out of 4 (100.0%)
+Check_Zero: 4 stmts out of 4 (100.0%)
+ClearErrorStatus: 2 stmts out of 2 (100.0%)
+ClearEvents: 27 stmts out of 27 (100.0%)
+ClearModeStatusError: 2 stmts out of 2 (100.0%)
+ClearSoftwareError: 2 stmts out of 2 (100.0%)
+Clear_Errors: 4 stmts out of 4 (100.0%)
+Clear_RTX_Errors: 8 stmts out of 8 (100.0%)
+Clear_SU_Error: 8 stmts out of 8 (100.0%)
+Clear_TC_Timer_Overflow_Flag: 2 stmts out of 2 (100.0%)
+Convert_AD: 21 stmts out of 21 (100.0%)
+CopyProgramCode: 9 stmts out of 9 (100.0%)
+DPU_SelfTest: 2 stmts out of 2 (100.0%)
+Data_Pointer: 2 stmts out of 2 (100.0%)
+DelayAwhile: 9 stmts out of 9 (100.0%)
+DisableAnalogSwitch: 3 stmts out of 3 (100.0%)
+DisableInterrupt: 1 stmts out of 1 (100.0%)
+Disable_Hit_Trigger: 3 stmts out of 3 (100.0%)
+EnableAnalogSwitch: 3 stmts out of 3 (100.0%)
+EnableInterrupt: 1 stmts out of 1 (100.0%)
+Enable_Hit_Trigger: 3 stmts out of 3 (100.0%)
+End_Of_ADC: 22 stmts out of 22 (100.0%)
+Event_Flag: 1 stmts out of 1 (100.0%)
+ExceedsLimit: 7 stmts out of 7 (100.0%)
+Exec_TC: 3 stmts out of 3 (100.0%)
+ExecuteChannelTest: 61 stmts out of 61 (100.0%)
+Fail_Check: 2 stmts out of 2 (100.0%)
+FindMinQualityRecord: 19 stmts out of 19 (100.0%)
+FlushMail: 2 stmts out of 2 (100.0%)
+GetElapsedTime: 2 stmts out of 2 (100.0%)
+GetFreeRecord: 8 stmts out of 8 (100.0%)
+GetMemoryConfiguration: 1 stmts out of 1 (100.0%)
+GetMode: 2 stmts out of 2 (100.0%)
+GetQualityTerm: 6 stmts out of 6 (100.0%)
+GetResetClass: 3 stmts out of 3 (100.0%)
+Get_Code_Byte: 2 stmts out of 2 (100.0%)
+Get_Data_Byte: 2 stmts out of 2 (100.0%)
+Get_LSB1_Counter: 1 stmts out of 1 (100.0%)
+Get_LSB2_Counter: 1 stmts out of 1 (100.0%)
+Get_MSB_Counter: 1 stmts out of 1 (100.0%)
+Get_Result: 3 stmts out of 3 (100.0%)
+HandleHealthMonitoring: 9 stmts out of 9 (100.0%)
+HandleHitTrigger: 63 stmts out of 63 (100.0%)
+HandleTelecommand: 38 stmts out of 38 (100.0%)
+Handle_TC: 4 stmts out of 4 (100.0%)
+HighVoltageCurrent: 9 stmts out of 9 (100.0%)
+Hit_ISR_Tests: 107 stmts out of 107 (100.0%)
+Hit_Trigger_Flag: 1 stmts out of 1 (100.0%)
+IncrementCounters: 10 stmts out of 10 (100.0%)
+InitAcquisitionTask: 4 stmts out of 4 (100.0%)
+InitClassification: 12 stmts out of 12 (100.0%)
+InitCode_RAM: 7 stmts out of 7 (100.0%)
+InitData_RAM: 5 stmts out of 5 (100.0%)
+InitHealthMonitoring: 4 stmts out of 4 (100.0%)
+InitHitTriggerTask: 3 stmts out of 3 (100.0%)
+InitSystem: 12 stmts out of 12 (100.0%)
+InitTC_LookUp: 86 stmts out of 86 (100.0%)
+InitTelecommandTask: 10 stmts out of 10 (100.0%)
+Init_DPU: 12 stmts out of 12 (100.0%)
+Init_SU_Settings: 14 stmts out of 14 (100.0%)
+LowVoltageCurrent: 12 stmts out of 12 (100.0%)
+MeasureTemperature: 22 stmts out of 22 (100.0%)
+MeasureVoltage: 27 stmts out of 27 (100.0%)
+Monitor: 49 stmts out of 49 (100.0%)
+Monitor_DPU_Voltage: 13 stmts out of 13 (100.0%)
+Monitor_Health: 6 stmts out of 6 (100.0%)
+Monitoring_Task_Tests: 116 stmts out of 116 (100.0%)
+Next: 4 stmts out of 4 (100.0%)
+Next_Rand: 3 stmts out of 3 (100.0%)
+PatchCode: 30 stmts out of 30 (100.0%)
+Random_AD_Delay: 9 stmts out of 9 (100.0%)
+Random_Event: 10 stmts out of 10 (100.0%)
+ReadDelayCounters: 11 stmts out of 11 (100.0%)
+ReadRiseTimeCounter: 3 stmts out of 3 (100.0%)
+ReadSensorUnit: 2 stmts out of 2 (100.0%)
+Read_AD_Channel: 23 stmts out of 23 (100.0%)
+Read_Data_Memory: 21 stmts out of 21 (100.0%)
+Read_TC_LSB: 1 stmts out of 1 (100.0%)
+Read_TC_MSB: 1 stmts out of 1 (100.0%)
+Reboot: 3 stmts out of 3 (100.0%)
+RecordEvent: 16 stmts out of 16 (100.0%)
+Report_Checks: 1 stmts out of 1 (100.0%)
+Report_End_Of_ADC_Count: 2 stmts out of 2 (100.0%)
+Report_Event_Histo: 11 stmts out of 11 (100.0%)
+Report_Start_Conversion_Count: 2 stmts out of 2 (100.0%)
+ResetDelayCounters: 1 stmts out of 1 (100.0%)
+ResetEventQueueLength: 2 stmts out of 2 (100.0%)
+ResetInterruptMask: 2 stmts out of 2 (100.0%)
+ResetPeakDetector: 2 stmts out of 2 (100.0%)
+RestoreSettings: 17 stmts out of 17 (100.0%)
+Rise_Time_Counter: 1 stmts out of 1 (100.0%)
+RoughLogarithm: 9 stmts out of 9 (100.0%)
+SU_Self_Test_Tests: 145 stmts out of 145 (100.0%)
+SelectSelfTestChannel: 8 stmts out of 8 (100.0%)
+SelfTestChannel: 50 stmts out of 50 (100.0%)
+SelfTest_SU: 12 stmts out of 12 (100.0%)
+Send_Patch_Code: 19 stmts out of 19 (100.0%)
+Send_Patch_Data: 19 stmts out of 19 (100.0%)
+Send_TC: 11 stmts out of 11 (100.0%)
+Send_TC_Word: 6 stmts out of 6 (100.0%)
+SetErrorStatus: 2 stmts out of 2 (100.0%)
+SetInterruptMask: 2 stmts out of 2 (100.0%)
+SetMemoryConfiguration: 7 stmts out of 7 (100.0%)
+SetMode: 2 stmts out of 2 (100.0%)
+SetModeStatusError: 2 stmts out of 2 (100.0%)
+SetSensorUnitOff: 9 stmts out of 9 (100.0%)
+SetSoftwareError: 2 stmts out of 2 (100.0%)
+SetTestPulseLevel: 2 stmts out of 2 (100.0%)
+SetTimeSlice: 1 stmts out of 1 (100.0%)
+Set_AD_Delay: 7 stmts out of 7 (100.0%)
+Set_AD_Nominal: 31 stmts out of 31 (100.0%)
+Set_AD_Unlimited: 9 stmts out of 9 (100.0%)
+Set_Data_Byte: 2 stmts out of 2 (100.0%)
+Set_SU_Error: 3 stmts out of 3 (100.0%)
+Set_SU_Self_Test_Ch: 1 stmts out of 1 (100.0%)
+Set_SU_TriggerLevels: 11 stmts out of 11 (100.0%)
+Set_TC_Error: 2 stmts out of 2 (100.0%)
+Set_TC_Timer_Overflow_Flag: 2 stmts out of 2 (100.0%)
+Set_Test_Pulse_Level: 3 stmts out of 3 (100.0%)
+Set_Trigger_SU: 3 stmts out of 3 (100.0%)
+ShortDelay: 2 stmts out of 2 (100.0%)
+Short_Value: 2 stmts out of 2 (100.0%)
+SignalMemoryErrors: 11 stmts out of 11 (100.0%)
+SignalPeakDetectorReset: 1 stmts out of 1 (100.0%)
+Sim_Self_Test_Trigger: 7 stmts out of 7 (100.0%)
+Start_Conversion: 24 stmts out of 24 (100.0%)
+Start_SU_SwitchingOn: 8 stmts out of 8 (100.0%)
+Switch_SU_State: 14 stmts out of 14 (100.0%)
+TC_ISR_Tests: 51 stmts out of 51 (100.0%)
+TC_Interrupt: 2 stmts out of 2 (100.0%)
+TC_Task_Tests: 263 stmts out of 263 (100.0%)
+TC_Timer_Overflow_Flag: 1 stmts out of 1 (100.0%)
+TemperatureFailure: 4 stmts out of 4 (100.0%)
+TestMemBits: 2 stmts out of 2 (100.0%)
+TestMemData: 2 stmts out of 2 (100.0%)
+TestMemSeq: 2 stmts out of 2 (100.0%)
+Trigger_Hit: 4 stmts out of 4 (100.0%)
+Trigger_SU_Hit: 3 stmts out of 3 (100.0%)
+Trigger_Source_0: 1 stmts out of 1 (100.0%)
+Trigger_Source_1: 1 stmts out of 1 (100.0%)
+UpdatePeriodCounter: 4 stmts out of 4 (100.0%)
+UpdateTarget: 154 stmts out of 154 (100.0%)
+UpdateTime: 2 stmts out of 2 (100.0%)
+Update_ADC_Channel_Reg: 1 stmts out of 1 (100.0%)
+Update_SU_State: 8 stmts out of 8 (100.0%)
+V_Down: 5 stmts out of 5 (100.0%)
+WaitInterrupt: 1 stmts out of 1 (100.0%)
+WaitInterval: 1 stmts out of 1 (100.0%)
+WaitMail: 9 stmts out of 9 (100.0%)
+WaitTimeout: 1 stmts out of 1 (100.0%)
+Write_TM_LSB: 2 stmts out of 2 (100.0%)
+Write_TM_MSB: 2 stmts out of 2 (100.0%)
+isr_send_message: 3 stmts out of 3 (100.0%)
+ClassifyEvent: 59 stmts out of 60 (98.3%)
+HandleAcquisition: 58 stmts out of 59 (98.3%)
+TM_Tests: 51 stmts out of 52 (98.1%)
+MemoryPatch: 41 stmts out of 42 (97.6%)
+ExecuteCommand: 78 stmts out of 81 (96.3%)
+StartSystem: 19 stmts out of 20 (95.0%)
+TC_InterruptService: 117 stmts out of 126 (92.9%)
+TM_InterruptService: 25 stmts out of 27 (92.6%)
+SetTriggerLevel: 29 stmts out of 32 (90.6%)
+Switch_SU_Off: 16 stmts out of 18 (88.9%)
+Switch_SU_On: 16 stmts out of 18 (88.9%)
+WriteMemory: 16 stmts out of 18 (88.9%)
+Check_Current: 13 stmts out of 15 (86.7%)
+PatchExecCommandOk: 5 stmts out of 6 (83.3%)
+CreateTask: 8 stmts out of 10 (80.0%)
+SendTaskMail: 4 stmts out of 5 (80.0%)
+Check_RAM: 22 stmts out of 28 (78.6%)
+Monitor_SU_Voltage: 16 stmts out of 22 (72.7%)
+main: 5 stmts out of 7 (71.4%)
diff --git a/debie1/.frama-c/debie1.eva/nonterm.log b/debie1/.frama-c/debie1.eva/nonterm.log
new file mode 100644
index 0000000000000000000000000000000000000000..39fd5c80c2869b0a03596423e3a5fbeefc8357b2
--- /dev/null
+++ b/debie1/.frama-c/debie1.eva/nonterm.log
@@ -0,0 +1,2 @@
+code/debie.c:50:[nonterm] warning: unreachable implicit return
+code/harness/harness.c:3732:[nonterm] warning: unreachable implicit return
diff --git a/cerberus/unspecified_value_struct_copy.eva/warnings.log b/debie1/.frama-c/debie1.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_struct_copy.eva/warnings.log
rename to debie1/.frama-c/debie1.eva/warnings.log
diff --git a/debie1/.frama-c/debie1.parse/framac.ast b/debie1/.frama-c/debie1.parse/framac.ast
new file mode 100644
index 0000000000000000000000000000000000000000..d54d85bb18e4167965efea55265ba020012c0f6f
--- /dev/null
+++ b/debie1/.frama-c/debie1.parse/framac.ast
@@ -0,0 +1,5471 @@
+/* Generated by Frama-C */
+#include "errno.h"
+#include "stdarg.h"
+#include "stddef.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "string.h"
+#include "strings.h"
+typedef unsigned int uint_least8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint_least16_t;
+typedef uint16_t uskew16_t;
+typedef unsigned int uint32_t;
+typedef uint32_t uskew32_t;
+typedef uint16_t data_address_t;
+typedef uint16_t code_address_t;
+typedef code_address_t fptr_t;
+typedef unsigned char DEBIE_mode_t;
+enum __anonenum_reset_class_t_1 {
+    power_up_reset_e = 0,
+    watchdog_reset_e = 1,
+    soft_reset_e = 2,
+    warm_reset_e = 3,
+    error_e = 4,
+    checksum_reset_e = 5
+};
+typedef enum __anonenum_reset_class_t_1 reset_class_t;
+enum __anonenum_memory_configuration_t_2 {
+    PROM_e = 0,
+    SRAM_e = 1
+};
+typedef enum __anonenum_memory_configuration_t_2 memory_configuration_t;
+typedef uint32_t dpu_time_t;
+typedef uskew32_t tm_dpu_time_t;
+typedef uskew16_t tm_ushort_t;
+struct __anonstruct_memory_patch_variables_t_3 {
+   unsigned char *source ;
+   data_address_t destination ;
+   uint_least8_t data_amount ;
+   unsigned char execution_command ;
+};
+typedef struct __anonstruct_memory_patch_variables_t_3 memory_patch_variables_t;
+typedef uint_least8_t sensor_number_t;
+typedef uint_least8_t sensor_index_t;
+typedef uint_least8_t channel_t;
+struct __anonstruct_delays_t_4 {
+   unsigned short FromPlasma1Plus ;
+   unsigned short FromPlasma1Minus ;
+};
+typedef struct __anonstruct_delays_t_4 delays_t;
+struct __anonstruct_trigger_set_t_5 {
+   sensor_number_t sensor_unit ;
+   channel_t channel ;
+   unsigned char level ;
+   unsigned char execution_result ;
+   unsigned int base ;
+};
+typedef struct __anonstruct_trigger_set_t_5 trigger_set_t;
+struct __anonstruct_voltage_status_t_6 {
+   unsigned char V_down_bit ;
+   unsigned char HV_status ;
+};
+typedef struct __anonstruct_voltage_status_t_6 voltage_status_t;
+struct __anonstruct_SU_settings_t_7 {
+   unsigned char plus_5_voltage ;
+   unsigned char minus_5_voltage ;
+   unsigned char plasma_1_plus_threshold ;
+   unsigned char plasma_1_minus_threshold ;
+   unsigned char piezo_threshold ;
+   unsigned char plasma_1_plus_classification ;
+   unsigned char plasma_1_minus_classification ;
+   unsigned char piezo_1_classification ;
+   unsigned char piezo_2_classification ;
+   unsigned char plasma_2_plus_classification ;
+   unsigned char plasma_1_plus_to_minus_max_time ;
+   unsigned char plasma_1_plus_to_piezo_min_time ;
+   unsigned char plasma_1_plus_to_piezo_max_time ;
+   unsigned char plasma_1_minus_to_piezo_min_time ;
+   unsigned char plasma_1_minus_to_piezo_max_time ;
+};
+typedef struct __anonstruct_SU_settings_t_7 SU_settings_t;
+struct __anonstruct_telemetry_data_t_8 {
+   unsigned char error_status ;
+   unsigned char mode_status ;
+   uint16_t TC_word ;
+   dpu_time_t TC_time_tag ;
+   unsigned char watchdog_failures ;
+   unsigned char checksum_failures ;
+   unsigned char SW_version ;
+   unsigned char isr_send_message_error ;
+   unsigned char SU_status[4] ;
+   unsigned char SU_temperature[4][2] ;
+   unsigned char DPU_plus_5_digital ;
+   unsigned char os_send_message_error ;
+   unsigned char os_create_task_error ;
+   unsigned char SU_plus_50 ;
+   unsigned char SU_minus_50 ;
+   unsigned char os_disable_isr_error ;
+   unsigned char not_used_1 ;
+   SU_settings_t sensor_unit_1 ;
+   unsigned char os_wait_error ;
+   SU_settings_t sensor_unit_2 ;
+   unsigned char os_attach_interrupt_error ;
+   SU_settings_t sensor_unit_3 ;
+   unsigned char os_enable_isr_error ;
+   SU_settings_t sensor_unit_4 ;
+   code_address_t failed_code_address ;
+   data_address_t failed_data_address ;
+   uint16_t SU_hits[4] ;
+   tm_dpu_time_t time ;
+   unsigned char software_error ;
+   unsigned char hit_budget_exceedings ;
+   unsigned char coefficient[5] ;
+   unsigned char not_used ;
+};
+typedef struct __anonstruct_telemetry_data_t_8 telemetry_data_t;
+struct __anonstruct_event_record_t_9 {
+   unsigned char quality_number ;
+   unsigned char classification ;
+   unsigned char SU_number ;
+   tm_dpu_time_t hit_time ;
+   unsigned char SU_temperature_1 ;
+   unsigned char SU_temperature_2 ;
+   tm_ushort_t plasma_1_plus ;
+   tm_ushort_t plasma_1_minus ;
+   tm_ushort_t piezo_1 ;
+   tm_ushort_t piezo_2 ;
+   tm_ushort_t plasma_2_plus ;
+   unsigned char rise_time ;
+   signed char delay_1 ;
+   tm_ushort_t delay_2 ;
+   tm_ushort_t delay_3 ;
+   unsigned char checksum ;
+};
+typedef struct __anonstruct_event_record_t_9 event_record_t;
+struct __anonstruct_science_data_file_t_10 {
+   unsigned short length ;
+   unsigned char event_counter[4][10] ;
+   unsigned char not_used ;
+   unsigned char counter_checksum ;
+   event_record_t event[1261] ;
+};
+typedef struct __anonstruct_science_data_file_t_10 science_data_file_t;
+enum __anonenum_SU_state_t_11 {
+    off_e = 0,
+    start_switching_e = 1,
+    switching_e = 2,
+    on_e = 3,
+    self_test_mon_e = 4,
+    self_test_e = 5,
+    self_test_trigger_e = 6,
+    acquisition_e = 7
+};
+typedef enum __anonenum_SU_state_t_11 SU_state_t;
+struct __anonstruct_sensor_unit_t_12 {
+   sensor_number_t SU_number ;
+   SU_state_t SU_state ;
+   SU_state_t expected_source_state ;
+   unsigned char execution_result ;
+};
+typedef struct __anonstruct_sensor_unit_t_12 sensor_unit_t;
+enum __anonenum_SU_test_level_t_13 {
+    high_e = 0,
+    low_e = 1
+};
+typedef enum __anonenum_SU_test_level_t_13 SU_test_level_t;
+enum __anonenum_round_t_7 {
+    round_0_e = 0,
+    round_1_e = 1,
+    round_2_e = 2,
+    round_3_e = 3,
+    round_4_e = 4,
+    round_5_e = 5,
+    round_6_e = 6,
+    round_7_e = 7,
+    round_8_e = 8,
+    round_9_e = 9
+};
+struct __anonstruct_task_info_t_8 {
+   unsigned char rtx_task_number ;
+   void (*task_main_function)(void) ;
+};
+typedef struct __anonstruct_task_info_t_8 task_info_t;
+enum __anonenum_TC_state_t_12 {
+    TC_handling_e = 0,
+    read_memory_e = 1,
+    memory_dump_e = 2,
+    write_memory_e = 3,
+    memory_patch_e = 4,
+    register_TM_e = 5,
+    SC_TM_e = 6
+};
+typedef enum __anonenum_TC_state_t_12 TC_state_t;
+struct __anonstruct_ADC_parameters_t_17 {
+   channel_t ADC_channel ;
+   uint_least8_t ADC_max_tries ;
+   uint_least8_t conversion_max_tries ;
+   unsigned int unsigned_ADC ;
+   int signed_ADC ;
+   unsigned char AD_execution_result ;
+   sensor_number_t sensor_unit ;
+};
+typedef struct __anonstruct_ADC_parameters_t_17 ADC_parameters_t;
+enum __anonenum_SU_index_t_18 {
+    su1_e = 0,
+    su2_e = 1,
+    su3_e = 2,
+    su4_e = 3
+};
+enum __anonenum_AD_channel_t_19 {
+    channel_0_e = 0,
+    channel_1_e = 1,
+    channel_2_e = 2,
+    channel_3_e = 3,
+    channel_4_e = 4,
+    channel_5_e = 5,
+    channel_6_e = 6
+};
+struct __anonstruct_incoming_mail_t_11 {
+   unsigned char mailbox_number ;
+   unsigned char timeout ;
+   uint16_t *message ;
+   signed char execution_result ;
+   signed char wait_result ;
+   unsigned char event_selector ;
+};
+typedef struct __anonstruct_incoming_mail_t_11 incoming_mail_t;
+struct __anonstruct_telecommand_t_18 {
+   uint16_t TC_word ;
+   unsigned char TC_address ;
+   unsigned char TC_code ;
+};
+typedef struct __anonstruct_telecommand_t_18 telecommand_t;
+enum __anonenum_memory_type_t_19 {
+    code_e = 0,
+    data_e = 1
+};
+typedef enum __anonenum_memory_type_t_19 memory_type_t;
+struct __anonstruct_ad_limit_t_18 {
+   uint16_t min ;
+   uint16_t max ;
+};
+typedef struct __anonstruct_ad_limit_t_18 ad_limit_t;
+unsigned char *Data_Pointer(uint16_t address);
+
+unsigned short Short_Value(uskew16_t *x);
+
+void Call_Patch(fptr_t func);
+
+unsigned char Event_Flag(void);
+
+void Set_Data_Byte(data_address_t addr, unsigned char value);
+
+unsigned char Get_Data_Byte(data_address_t addr);
+
+unsigned char Get_Code_Byte(code_address_t addr);
+
+unsigned char Check_Current(unsigned char bits);
+
+reset_class_t s_w_reset;
+
+unsigned char code_not_patched;
+
+unsigned char reference_checksum;
+
+/*@ ghost int init_dpu_called; */
+void Init_DPU(reset_class_t reset_class);
+
+reset_class_t GetResetClass(void);
+
+void SignalMemoryErrors(void);
+
+void SetMemoryConfiguration(memory_configuration_t memory);
+
+memory_configuration_t GetMemoryConfiguration(void);
+
+void PatchCode(memory_patch_variables_t *patch_variables);
+
+void Reboot(reset_class_t boot_type);
+
+unsigned char TestMemBits(data_address_t address);
+
+unsigned char TestMemData(data_address_t start, uint_least8_t bytes);
+
+unsigned char TestMemSeq(data_address_t start, uint_least8_t bytes);
+
+unsigned char Get_MSB_Counter(void);
+
+unsigned char Get_LSB1_Counter(void);
+
+unsigned char Get_LSB2_Counter(void);
+
+unsigned char Rise_Time_Counter(void);
+
+unsigned char Trigger_Source_0(void);
+
+unsigned char Trigger_Source_1(void);
+
+unsigned char V_Down(void);
+
+void Set_SU_Self_Test_Ch(unsigned char value);
+
+void Set_Test_Pulse_Level(unsigned char level);
+
+unsigned char SU_ctrl_register;
+
+void ReadDelayCounters(delays_t *delay);
+
+unsigned char ReadRiseTimeCounter(void);
+
+void ResetDelayCounters(void);
+
+void ResetPeakDetector(sensor_number_t unit);
+
+void SignalPeakDetectorReset(unsigned char low_reset_value,
+                             unsigned char high_reset_value);
+
+void SetTriggerLevel(trigger_set_t *setting);
+
+void SetTestPulseLevel(unsigned char level);
+
+void GetVoltageStatus(voltage_status_t *v_status);
+
+void Switch_SU_On(sensor_number_t SU_Number, unsigned char *execution_result);
+
+void Switch_SU_Off(sensor_number_t SU_Number, unsigned char *execution_result);
+
+void EnableAnalogSwitch(sensor_index_t self_test_SU_index);
+
+void DisableAnalogSwitch(sensor_index_t self_test_SU_index);
+
+void SelectSelfTestChannel(unsigned char channel);
+
+void SelectTriggerSwitchLevel(unsigned char test_channel_0,
+                              sensor_index_t self_test_SU_index);
+
+void SelectStartSwitchLevel(unsigned char test_channel_0,
+                            sensor_index_t self_test_SU_index);
+
+telemetry_data_t telemetry_data;
+
+science_data_file_t science_data;
+
+uint_least16_t max_events;
+
+void RecordEvent(void);
+
+void ClearEvents(void);
+
+void InitClassification(void);
+
+void ClassifyEvent(event_record_t *new_event);
+
+void Init_SU_Settings(SU_settings_t *set);
+
+unsigned char event_class[256];
+
+SU_state_t SU_state[4];
+
+sensor_number_t self_test_SU_number;
+
+uint_least8_t hit_budget;
+
+uint_least8_t hit_budget_left;
+
+void Switch_SU_State(sensor_unit_t *SU_setting);
+
+void Start_SU_SwitchingOn(sensor_index_t SU, unsigned char *exec_result);
+
+void SetSensorUnitOff(sensor_index_t SU, unsigned char *exec_result);
+
+SU_state_t ReadSensorUnit(unsigned char SU_number);
+
+void Update_SU_State(sensor_index_t SU_index);
+
+void (*hit_task)(void);
+
+void (*acq_task)(void);
+
+void InitHitTriggerTask(void);
+
+void HandleHitTrigger(void);
+
+void InitAcquisitionTask(void);
+
+void HandleAcquisition(void);
+
+unsigned char RoughLogarithm(unsigned int x)
+{
+  unsigned char greatest_non_zero_bit;
+  unsigned int shifted;
+  greatest_non_zero_bit = (unsigned char)0;
+  shifted = x;
+  while (shifted) {
+    greatest_non_zero_bit = (unsigned char)((int)greatest_non_zero_bit + 1);
+    shifted >>= 1;
+  }
+  return greatest_non_zero_bit;
+}
+
+float GetQualityTerm(unsigned char coeff, unsigned int amplitude)
+{
+  float quality;
+  unsigned char tmp;
+  tmp = RoughLogarithm(amplitude);
+  quality = (float)((double)((float)((int)telemetry_data.coefficient[coeff] * (int)tmp)) / (
+                    ((double)5 * 16.0) / (double)5));
+  if ((double)quality > 5.0) quality = (float)5.0;
+  return quality;
+}
+
+void CalculateQualityNumber(event_record_t *new_event)
+{
+  float quality;
+  float tmp_0;
+  unsigned short tmp;
+  float tmp_2;
+  unsigned short tmp_1;
+  float tmp_4;
+  unsigned short tmp_3;
+  float tmp_6;
+  unsigned short tmp_5;
+  float tmp_8;
+  unsigned short tmp_7;
+  quality = (float)(25.0 * (double)new_event->classification);
+  tmp = Short_Value(& new_event->plasma_1_plus);
+  tmp_0 = GetQualityTerm((unsigned char)0,(unsigned int)tmp);
+  quality += tmp_0;
+  tmp_1 = Short_Value(& new_event->plasma_1_minus);
+  tmp_2 = GetQualityTerm((unsigned char)1,(unsigned int)tmp_1);
+  quality += tmp_2;
+  tmp_3 = Short_Value(& new_event->piezo_1);
+  tmp_4 = GetQualityTerm((unsigned char)2,(unsigned int)tmp_3);
+  quality += tmp_4;
+  tmp_5 = Short_Value(& new_event->piezo_2);
+  tmp_6 = GetQualityTerm((unsigned char)3,(unsigned int)tmp_5);
+  quality += tmp_6;
+  tmp_7 = Short_Value(& new_event->plasma_2_plus);
+  tmp_8 = GetQualityTerm((unsigned char)4,(unsigned int)tmp_7);
+  quality += tmp_8;
+  new_event->quality_number = (unsigned char)((double)quality + 0.5);
+  return;
+}
+
+void ClassifyEvent(event_record_t *new_event)
+{
+  unsigned char class_index;
+  SU_settings_t *limits;
+  unsigned short tmp;
+  unsigned short tmp_0;
+  unsigned short tmp_1;
+  unsigned short tmp_2;
+  unsigned short tmp_3;
+  unsigned short tmp_4;
+  unsigned short tmp_6;
+  class_index = (unsigned char)0;
+  switch ((int)new_event->SU_number) {
+    case 1: limits = & telemetry_data.sensor_unit_1;
+    break;
+    case 2: limits = & telemetry_data.sensor_unit_2;
+    break;
+    case 3: limits = & telemetry_data.sensor_unit_3;
+    break;
+    case 4: limits = & telemetry_data.sensor_unit_4;
+    break;
+  }
+  tmp = Short_Value(& new_event->plasma_1_plus);
+  ;
+  if ((int)tmp >= (int)limits->plasma_1_plus_classification * 256) class_index = (unsigned char)(
+                                                                   (int)class_index | 0x80);
+  tmp_0 = Short_Value(& new_event->plasma_1_minus);
+  ;
+  if ((int)tmp_0 >= (int)limits->plasma_1_minus_classification * 256) 
+    class_index = (unsigned char)((int)class_index | 0x40);
+  tmp_1 = Short_Value(& new_event->piezo_1);
+  ;
+  if ((int)tmp_1 >= (int)limits->piezo_1_classification * 256) class_index = (unsigned char)(
+                                                               (int)class_index | 0x20);
+  tmp_2 = Short_Value(& new_event->piezo_2);
+  ;
+  if ((int)tmp_2 >= (int)limits->piezo_2_classification * 256) class_index = (unsigned char)(
+                                                               (int)class_index | 0x10);
+  tmp_3 = Short_Value(& new_event->plasma_2_plus);
+  ;
+  if ((int)tmp_3 >= (int)limits->plasma_2_plus_classification * 256) 
+    class_index = (unsigned char)((int)class_index | 0x08);
+  tmp_4 = Short_Value(& new_event->delay_2);
+  ;
+  if ((int)tmp_4 >= (int)limits->plasma_1_plus_to_piezo_min_time * 16) {
+    unsigned short tmp_5;
+    tmp_5 = Short_Value(& new_event->delay_2);
+    ;
+    if ((int)tmp_5 <= (int)limits->plasma_1_plus_to_piezo_max_time * 16) 
+      class_index = (unsigned char)((int)class_index | 0x02);
+  }
+  tmp_6 = Short_Value(& new_event->delay_3);
+  ;
+  if ((int)tmp_6 >= (int)limits->plasma_1_minus_to_piezo_min_time * 16) {
+    unsigned short tmp_7;
+    tmp_7 = Short_Value(& new_event->delay_3);
+    ;
+    if ((int)tmp_7 <= (int)limits->plasma_1_minus_to_piezo_max_time * 16) 
+      class_index = (unsigned char)((int)class_index | 0x01);
+  }
+  if ((int)new_event->delay_1 <= (int)limits->plasma_1_plus_to_minus_max_time) 
+    class_index = (unsigned char)((int)class_index | 0x04);
+  new_event->classification = event_class[class_index];
+  if (SU_state[(int)new_event->SU_number - 1] == (unsigned int)self_test_e) 
+    new_event->quality_number = (unsigned char)255;
+  else CalculateQualityNumber(new_event);
+  return;
+}
+
+void InitClassification(void)
+{
+  uint_least8_t i;
+  i = (unsigned int)0;
+  while (i < (uint_least8_t)5) {
+    telemetry_data.coefficient[i] = (unsigned char)5;
+    i ++;
+  }
+  Init_SU_Settings(& telemetry_data.sensor_unit_1);
+  Init_SU_Settings(& telemetry_data.sensor_unit_2);
+  Init_SU_Settings(& telemetry_data.sensor_unit_3);
+  Init_SU_Settings(& telemetry_data.sensor_unit_4);
+  return;
+}
+
+void Init_SU_Settings(SU_settings_t *set)
+{
+  set->plasma_1_plus_threshold = (unsigned char)0x0D;
+  set->plasma_1_minus_threshold = (unsigned char)0x0D;
+  set->piezo_threshold = (unsigned char)0x0D;
+  set->plasma_1_plus_classification = (unsigned char)0;
+  set->plasma_1_minus_classification = (unsigned char)0;
+  set->piezo_1_classification = (unsigned char)0;
+  set->piezo_2_classification = (unsigned char)0;
+  set->plasma_2_plus_classification = (unsigned char)0;
+  set->plasma_1_plus_to_minus_max_time = (unsigned char)255;
+  set->plasma_1_plus_to_piezo_min_time = (unsigned char)0;
+  set->plasma_1_plus_to_piezo_max_time = (unsigned char)255;
+  set->plasma_1_minus_to_piezo_min_time = (unsigned char)0;
+  set->plasma_1_minus_to_piezo_max_time = (unsigned char)255;
+  return;
+}
+
+unsigned char event_class[256] =
+  {(unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)5,
+   (unsigned char)1,
+   (unsigned char)5,
+   (unsigned char)1,
+   (unsigned char)5,
+   (unsigned char)1,
+   (unsigned char)5,
+   (unsigned char)1,
+   (unsigned char)8,
+   (unsigned char)1,
+   (unsigned char)8,
+   (unsigned char)1,
+   (unsigned char)8,
+   (unsigned char)1,
+   (unsigned char)8,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)0,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)3,
+   (unsigned char)3,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)4,
+   (unsigned char)4,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)5,
+   (unsigned char)5,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)8,
+   (unsigned char)8,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)6,
+   (unsigned char)6,
+   (unsigned char)6,
+   (unsigned char)6,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)1,
+   (unsigned char)7,
+   (unsigned char)7,
+   (unsigned char)7,
+   (unsigned char)7,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)7,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)9,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)7,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)9,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)7,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)2,
+   (unsigned char)9};
+unsigned char EA;
+
+uint_least8_t health_mon_round;
+
+uint_least8_t temp_meas_count;
+
+uint_least8_t voltage_meas_count;
+
+uint_least8_t checksum_count;
+
+unsigned char code_checksum;
+
+unsigned char confirm_hit_result;
+
+dpu_time_t internal_time;
+
+void SetSoftwareError(unsigned char error);
+
+void ClearSoftwareError(void);
+
+void SetModeStatusError(unsigned char mode_status_error);
+
+void ClearModeStatusError(void);
+
+void SetMode(DEBIE_mode_t mode);
+
+DEBIE_mode_t GetMode(void);
+
+void Clear_SU_Error(void);
+
+void Set_SU_Error(sensor_index_t SU_index, unsigned char SU_error);
+
+void SetErrorStatus(unsigned char error_source);
+
+void ClearErrorStatus(void);
+
+void Clear_RTX_Errors(void);
+
+void Boot(void);
+
+void InitHealthMonitoring(void);
+
+void HandleHealthMonitoring(void);
+
+void ShortDelay(uint_least8_t delay_loops);
+
+void CreateTask(task_info_t *new_task);
+
+void WaitInterval(unsigned char time);
+
+void WaitTimeout(unsigned char time);
+
+void SetTimeSlice(unsigned int time_slice);
+
+void StartSystem(unsigned char task_number);
+
+void SendTaskMail(unsigned char mailbox, uint16_t message,
+                  unsigned char timeout);
+
+unsigned char isr_send_message(unsigned char mailbox, uint16_t message);
+
+int main(void)
+{
+  int __retres;
+  EA = (unsigned char)0;
+  Init_DPU(s_w_reset);
+  Boot();
+  EA = (unsigned char)1;
+  StartSystem((unsigned char)0);
+  while (1) ;
+  return __retres;
+}
+
+void Update_ADC_Channel_Reg(unsigned char channel);
+
+void Start_Conversion(void);
+
+unsigned char End_Of_ADC(void);
+
+unsigned char Get_Result(void);
+
+void Set_DAC_Output(unsigned char level);
+
+unsigned char ADC_channel_register;
+
+unsigned char code_checksum;
+dpu_time_t internal_time;
+unsigned char Read_TC_MSB(void);
+
+unsigned char Read_TC_LSB(void);
+
+void Write_TM_LSB(unsigned char value);
+
+void Write_TM_MSB(unsigned char value);
+
+TC_state_t TC_state;
+
+void (*TC_task)(void);
+
+void Set_TC_Error(void);
+
+void TC_InterruptService(void);
+
+void InitTelecommandTask(void);
+
+void HandleTelecommand(void);
+
+uint_least8_t event_queue_length;
+
+unsigned char *telemetry_pointer;
+
+unsigned char *telemetry_end_pointer;
+
+unsigned int free_slot_index;
+
+unsigned char read_memory_checksum;
+
+event_record_t *GetFreeRecord(void);
+
+void ResetEventQueueLength(void);
+
+void TM_InterruptService(void);
+
+void Enable_Hit_Trigger(void);
+
+void Disable_Hit_Trigger(void);
+
+unsigned char Hit_Trigger_Flag(void);
+
+unsigned char TC_Timer_Overflow_Flag(void);
+
+void Clear_TC_Timer_Overflow_Flag(void);
+
+void Set_TC_Timer_Overflow_Flag(void);
+
+void AttachInterrupt(unsigned char ISR_VectorNumber);
+
+void EnableInterrupt(unsigned char ISR_VectorNumber);
+
+void DisableInterrupt(unsigned char ISR_VectorNumber);
+
+signed char SetInterruptMask(unsigned char ISR_MaskNumber);
+
+signed char ResetInterruptMask(unsigned char ISR_MaskNumber);
+
+void WaitInterrupt(unsigned char ISR_VectorNumber, unsigned char timer);
+
+uint_least8_t temp_meas_count = (unsigned int)5;
+uint_least8_t voltage_meas_count = (unsigned int)17;
+uint_least8_t checksum_count = (unsigned int)59;
+unsigned char self_test_flag = (unsigned char)0;
+unsigned char ADC_channel_register = (unsigned char)0x80;
+void DelayAwhile(unsigned short duration);
+
+void Read_AD_Channel(ADC_parameters_t *ADC_parameters);
+
+void DAC_SelfTest(unsigned char DAC_output,
+                  ADC_parameters_t *ADC_test_parameters);
+
+void Monitor(uint_least8_t health_mon_round_0);
+
+void UpdateTime(void);
+
+void MeasureTemperature(sensor_index_t SU_index);
+
+void HighVoltageCurrent(sensor_index_t SU_index);
+
+void LowVoltageCurrent(void);
+
+void MeasureVoltage(uint_least8_t channel_selector);
+
+void InitSystem(void);
+
+void CalculateChecksum(uint_least8_t checksum_count_0);
+
+void UpdatePeriodCounter(uint_least8_t *counter,
+                         uint_least8_t full_counter_value);
+
+void Convert_AD(ADC_parameters_t *ADC_parameters);
+
+void TemperatureFailure(sensor_index_t SU_index);
+
+void VoltageFailure(channel_t ADC_channel);
+
+void SelfTest_SU(sensor_index_t self_test_SU_index);
+
+void Monitor_DPU_Voltage(void);
+
+void Monitor_SU_Voltage(sensor_index_t self_test_SU_index);
+
+unsigned char ExceedsLimit(unsigned char value, unsigned char lower_limit,
+                           unsigned char upper_limit);
+
+void RestoreSettings(sensor_index_t self_test_SU_index);
+
+void SelfTestChannel(sensor_index_t self_test_SU_index);
+
+void ExecuteChannelTest(sensor_index_t self_test_SU_index,
+                        unsigned char test_channel_0,
+                        unsigned char test_pulse_level);
+
+void Set_SU_TriggerLevels(sensor_number_t sensor_unit,
+                          SU_settings_t *settings);
+
+void Clear_RTX_Errors(void)
+{
+  telemetry_data.isr_send_message_error = (unsigned char)0xFF;
+  telemetry_data.os_send_message_error = (unsigned char)0xFF;
+  telemetry_data.os_create_task_error = (unsigned char)0xFF;
+  telemetry_data.os_wait_error = (unsigned char)0xFF;
+  telemetry_data.os_attach_interrupt_error = (unsigned char)0xFF;
+  telemetry_data.os_enable_isr_error = (unsigned char)0xFF;
+  telemetry_data.os_disable_isr_error = (unsigned char)0xFF;
+  return;
+}
+
+void SetSoftwareError(unsigned char error)
+{
+  telemetry_data.software_error = (unsigned char)((int)telemetry_data.software_error | (int)error);
+  return;
+}
+
+void ClearSoftwareError(void)
+{
+  telemetry_data.software_error = (unsigned char)0;
+  return;
+}
+
+void SetModeStatusError(unsigned char mode_status_error)
+{
+  telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status | (
+                                               (int)mode_status_error & ~ 3));
+  return;
+}
+
+void ClearModeStatusError(void)
+{
+  telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status & 3);
+  return;
+}
+
+void SetMode(DEBIE_mode_t mode)
+{
+  telemetry_data.mode_status = (unsigned char)(((int)telemetry_data.mode_status & ~ 3) | (
+                                               (int)mode & 3));
+  return;
+}
+
+DEBIE_mode_t GetMode(void)
+{
+  DEBIE_mode_t __retres;
+  __retres = (unsigned char)((int)telemetry_data.mode_status & 3);
+  return __retres;
+}
+
+void Clear_SU_Error(void)
+{
+  sensor_index_t i;
+  i = (unsigned int)0;
+  while (i < (sensor_index_t)4) {
+    telemetry_data.SU_status[i] = (unsigned char)((int)telemetry_data.SU_status[i] & 0x03);
+    i ++;
+  }
+  return;
+}
+
+void Set_SU_Error(sensor_index_t SU_index, unsigned char SU_error)
+{
+  telemetry_data.SU_status[SU_index] = (unsigned char)((int)telemetry_data.SU_status[SU_index] | (
+                                                       (int)SU_error & ~ 0x03));
+  SetErrorStatus((unsigned char)(0x10 << SU_index));
+  return;
+}
+
+void Set_SU_TriggerLevels(sensor_number_t sensor_unit,
+                          SU_settings_t *settings)
+{
+  trigger_set_t trigger;
+  trigger.sensor_unit = sensor_unit;
+  trigger.level = settings->plasma_1_plus_threshold;
+  trigger.channel = (unsigned int)0;
+  SetTriggerLevel(& trigger);
+  trigger.level = settings->plasma_1_minus_threshold;
+  trigger.channel = (unsigned int)1;
+  SetTriggerLevel(& trigger);
+  trigger.level = settings->piezo_threshold;
+  trigger.channel = (unsigned int)5;
+  SetTriggerLevel(& trigger);
+  return;
+}
+
+void SetErrorStatus(unsigned char error_source)
+{
+  telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | (
+                                                (int)error_source & ~ 1));
+  return;
+}
+
+void ClearErrorStatus(void)
+{
+  telemetry_data.error_status = (unsigned char)0;
+  return;
+}
+
+void DPU_SelfTest(void)
+{
+  Monitor_DPU_Voltage();
+  return;
+}
+
+/*@ requires init_dpu_called ≡ 1; */
+void Boot(void)
+{
+  unsigned char execution_result;
+  unsigned char *fill_pointer;
+  reset_class_t reset_class;
+  unsigned int i;
+  SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x0F);
+  Set_Data_Byte((unsigned short)0xFFD0,SU_ctrl_register);
+  max_events = (unsigned int)1261;
+  ResetDelayCounters();
+  SetSensorUnitOff((unsigned int)su1_e,& execution_result);
+  SetSensorUnitOff((unsigned int)su2_e,& execution_result);
+  SetSensorUnitOff((unsigned int)su3_e,& execution_result);
+  SetSensorUnitOff((unsigned int)su4_e,& execution_result);
+  ADC_channel_register = (unsigned char)((int)ADC_channel_register | 0x80);
+  Update_ADC_Channel_Reg(ADC_channel_register);
+  reset_class = GetResetClass();
+  if (reset_class != (unsigned int)warm_reset_e) reference_checksum = (unsigned char)0;
+  if (reset_class == (unsigned int)power_up_reset_e) {
+    internal_time = (unsigned int)0;
+    fill_pointer = (unsigned char *)(& telemetry_data);
+    i = (unsigned int)0;
+    while (i < sizeof(telemetry_data)) {
+      *fill_pointer = (unsigned char)0;
+      fill_pointer ++;
+      i ++;
+    }
+    ResetEventQueueLength();
+    ClearEvents();
+    InitClassification();
+    Clear_RTX_Errors();
+  }
+  else 
+    if (reset_class == (unsigned int)watchdog_reset_e) {
+      telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 0x04);
+      if ((int)telemetry_data.watchdog_failures < 255) telemetry_data.watchdog_failures = (unsigned char)(
+                                                       (int)telemetry_data.watchdog_failures + 1);
+    }
+    else 
+      if (reset_class == (unsigned int)checksum_reset_e) {
+        telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 0x08);
+        if ((int)telemetry_data.checksum_failures < 255) telemetry_data.checksum_failures = (unsigned char)(
+                                                         (int)telemetry_data.checksum_failures + 1);
+      }
+      else {
+        ClearErrorStatus();
+        Clear_SU_Error();
+        Clear_RTX_Errors();
+        ClearSoftwareError();
+        telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status & 3);
+        telemetry_data.watchdog_failures = (unsigned char)0;
+        telemetry_data.checksum_failures = (unsigned char)0;
+        telemetry_data.TC_word = (unsigned short)0;
+        ResetEventQueueLength();
+        ClearEvents();
+        InitClassification();
+        self_test_SU_number = (unsigned int)0;
+      }
+  telemetry_data.mode_status = (unsigned char)(((int)telemetry_data.mode_status & ~ 3) | 0);
+  telemetry_data.SW_version = (unsigned char)24;
+  SignalMemoryErrors();
+  SetTestPulseLevel((unsigned char)0x00);
+  Set_SU_TriggerLevels((unsigned int)1,& telemetry_data.sensor_unit_1);
+  Set_SU_TriggerLevels((unsigned int)2,& telemetry_data.sensor_unit_2);
+  Set_SU_TriggerLevels((unsigned int)3,& telemetry_data.sensor_unit_3);
+  Set_SU_TriggerLevels((unsigned int)4,& telemetry_data.sensor_unit_4);
+  return;
+}
+
+uint_least8_t health_mon_round = (unsigned int)9;
+void InitHealthMonitoring(void)
+{
+  InitSystem();
+  DPU_SelfTest();
+  SetMode((unsigned char)1);
+  return;
+}
+
+void HandleHealthMonitoring(void)
+{
+  Update_SU_State((unsigned int)0);
+  Update_SU_State((unsigned int)1);
+  Update_SU_State((unsigned int)2);
+  Update_SU_State((unsigned int)3);
+  UpdateTime();
+  Monitor(health_mon_round);
+  UpdatePeriodCounter(& health_mon_round,(unsigned int)9);
+  WaitInterval((unsigned char)100);
+  return;
+}
+
+void HealthMonitoringTask(void)
+{
+  InitHealthMonitoring();
+  while (1) HandleHealthMonitoring();
+  return;
+}
+
+void Monitor(uint_least8_t health_mon_round_0)
+{
+  CalculateChecksum(checksum_count);
+  UpdatePeriodCounter(& checksum_count,(unsigned int)59);
+  switch (health_mon_round_0) {
+    unsigned char tmp;
+    case (uint_least8_t)round_0_e: HighVoltageCurrent(health_mon_round_0);
+    UpdatePeriodCounter(& temp_meas_count,(unsigned int)5);
+    UpdatePeriodCounter(& voltage_meas_count,(unsigned int)17);
+    hit_budget_left = hit_budget;
+    tmp = Hit_Trigger_Flag();
+    if ((int)tmp == 0) {
+      ResetPeakDetector((unsigned int)1);
+      ResetPeakDetector((unsigned int)2);
+      ResetPeakDetector((unsigned int)3);
+      ResetPeakDetector((unsigned int)4);
+      WaitTimeout((unsigned char)1);
+      Enable_Hit_Trigger();
+      ResetDelayCounters();
+    }
+    break;
+    case (uint_least8_t)round_1_e: HighVoltageCurrent(health_mon_round_0);
+    break;
+    case (uint_least8_t)round_2_e: HighVoltageCurrent(health_mon_round_0);
+    break;
+    case (uint_least8_t)round_3_e: HighVoltageCurrent(health_mon_round_0);
+    break;
+    case (uint_least8_t)round_4_e: LowVoltageCurrent();
+    break;
+    case (uint_least8_t)round_5_e: ;
+    if (voltage_meas_count < (uint_least8_t)7) MeasureVoltage(voltage_meas_count);
+    break;
+    case (uint_least8_t)round_6_e: ;
+    if (self_test_SU_number != (sensor_number_t)0) 
+      if (SU_state[self_test_SU_number - (sensor_number_t)1] == (unsigned int)self_test_e) {
+        SelfTestChannel(self_test_SU_number - (sensor_number_t)1);
+        self_test_SU_number = (unsigned int)0;
+      }
+    break;
+    case (uint_least8_t)round_7_e: ;
+    if (self_test_SU_number != (sensor_number_t)0) {
+      self_test_flag = (unsigned char)1;
+      SelfTest_SU(self_test_SU_number - (sensor_number_t)1);
+      if (self_test_SU_number != (sensor_number_t)0) SU_state[self_test_SU_number - (sensor_number_t)1] = self_test_e;
+    }
+    break;
+    case (uint_least8_t)round_8_e: ;
+    break;
+    case (uint_least8_t)round_9_e: ;
+    if (temp_meas_count < (uint_least8_t)4) MeasureTemperature(temp_meas_count);
+    break;
+  }
+  return;
+}
+
+void UpdateTime(void)
+{
+  internal_time ++;
+  return;
+}
+
+void MeasureTemperature(sensor_index_t SU_index)
+{
+  ADC_parameters_t AD_temperature_parameters;
+  unsigned char temp_limit_value;
+  uint_least8_t j;
+  j = (unsigned int)0;
+  while (j < (uint_least8_t)2) {
+    AD_temperature_parameters.ADC_channel = (((unsigned int)5 + (SU_index & (unsigned int)1) * (unsigned int)8) + 
+                                             (SU_index & (unsigned int)2) * (unsigned int)12) + j;
+    AD_temperature_parameters.ADC_max_tries = (unsigned int)255;
+    AD_temperature_parameters.conversion_max_tries = (unsigned int)255;
+    Read_AD_Channel(& AD_temperature_parameters);
+    if (AD_temperature_parameters.unsigned_ADC & (unsigned int)0x8000) 
+      telemetry_data.SU_temperature[SU_index][j] = (unsigned char)((AD_temperature_parameters.unsigned_ADC & (unsigned int)0x7FFF) >> 7);
+    else telemetry_data.SU_temperature[SU_index][j] = (unsigned char)0;
+    if (j == (uint_least8_t)0) temp_limit_value = (unsigned char)0xFA;
+    else temp_limit_value = (unsigned char)0xF4;
+    if ((int)telemetry_data.SU_temperature[SU_index][j] > (int)temp_limit_value) 
+      TemperatureFailure(SU_index);
+    if ((int)AD_temperature_parameters.AD_execution_result != 1) {
+      SetSoftwareError((unsigned char)0x01);
+      TemperatureFailure(SU_index);
+    }
+    j ++;
+  }
+  return;
+}
+
+void HighVoltageCurrent(sensor_index_t SU_index)
+{
+  unsigned char tmp;
+  unsigned char SU_current_mask[4] =
+    {(unsigned char)3,
+     (unsigned char)12,
+     (unsigned char)48,
+     (unsigned char)192};
+  unsigned char valid_value[4] =
+    {(unsigned char)1, (unsigned char)4, (unsigned char)16, (unsigned char)64};
+  tmp = Check_Current(SU_current_mask[SU_index]);
+  ;
+  if ((int)tmp != (int)valid_value[SU_index]) {
+    SetErrorStatus((unsigned char)(0x10 << SU_index));
+    Set_SU_Error(SU_index,(unsigned char)0x80);
+  }
+  return;
+}
+
+void LowVoltageCurrent(void)
+{
+  sensor_index_t i;
+  unsigned char exec_result;
+  unsigned char tmp;
+  tmp = V_Down();
+  if ((int)tmp == 0) {
+    i = (unsigned int)0;
+    while (i < (sensor_index_t)4) {
+      SetSensorUnitOff(i,& exec_result);
+      Set_SU_Error(i,(unsigned char)0x40);
+      i ++;
+    }
+    SetErrorStatus((unsigned char)0xF0);
+  }
+  return;
+}
+
+void MeasureVoltage(uint_least8_t channel_selector)
+{
+  ADC_parameters_t AD_voltage_parameters;
+  unsigned char voltage_channel[7] =
+    {(unsigned char)0x10,
+     (unsigned char)0x11,
+     (unsigned char)0x12,
+     (unsigned char)0x13,
+     (unsigned char)0x54,
+     (unsigned char)0x55,
+     (unsigned char)0x56};
+  AD_voltage_parameters.ADC_channel = (unsigned int)voltage_channel[channel_selector];
+  AD_voltage_parameters.ADC_max_tries = (unsigned int)255;
+  AD_voltage_parameters.conversion_max_tries = (unsigned int)255;
+  Read_AD_Channel(& AD_voltage_parameters);
+  if ((int)AD_voltage_parameters.AD_execution_result != 1) SetSoftwareError
+                                                           ((unsigned char)0x01);
+  else 
+    switch (channel_selector) {
+      case (uint_least8_t)channel_0_e:
+      telemetry_data.sensor_unit_1.plus_5_voltage = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8);
+      telemetry_data.sensor_unit_2.plus_5_voltage = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8);
+      break;
+      case (uint_least8_t)channel_1_e:
+      telemetry_data.sensor_unit_3.plus_5_voltage = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8);
+      telemetry_data.sensor_unit_4.plus_5_voltage = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8);
+      break;
+      case (uint_least8_t)channel_2_e:
+      telemetry_data.SU_plus_50 = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8);
+      break;
+      case (uint_least8_t)channel_3_e:
+      telemetry_data.DPU_plus_5_digital = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8);
+      break;
+      case (uint_least8_t)channel_4_e:
+      telemetry_data.sensor_unit_1.minus_5_voltage = (unsigned char)(
+      AD_voltage_parameters.unsigned_ADC >> 8);
+      telemetry_data.sensor_unit_2.minus_5_voltage = (unsigned char)(
+      AD_voltage_parameters.unsigned_ADC >> 8);
+      break;
+      case (uint_least8_t)channel_5_e:
+      telemetry_data.sensor_unit_3.minus_5_voltage = (unsigned char)(
+      AD_voltage_parameters.unsigned_ADC >> 8);
+      telemetry_data.sensor_unit_4.minus_5_voltage = (unsigned char)(
+      AD_voltage_parameters.unsigned_ADC >> 8);
+      break;
+      case (uint_least8_t)channel_6_e:
+      telemetry_data.SU_minus_50 = (unsigned char)(AD_voltage_parameters.unsigned_ADC >> 8);
+      break;
+    }
+  return;
+}
+
+void InitSystem(void)
+{
+  task_info_t new_task;
+  SetTimeSlice((unsigned int)9198);
+  WaitInterval((unsigned char)55);
+  new_task.rtx_task_number = (unsigned char)1;
+  new_task.task_main_function = TC_task;
+  CreateTask(& new_task);
+  new_task.rtx_task_number = (unsigned char)2;
+  new_task.task_main_function = acq_task;
+  CreateTask(& new_task);
+  new_task.rtx_task_number = (unsigned char)3;
+  new_task.task_main_function = hit_task;
+  CreateTask(& new_task);
+  return;
+}
+
+void CalculateChecksum(uint_least8_t checksum_count_0)
+{
+  code_address_t i;
+  code_address_t check_start;
+  code_address_t check_end;
+  check_start = (unsigned short)(checksum_count_0 * (uint_least8_t)547);
+  if (checksum_count_0 == (uint_least8_t)59) check_end = (unsigned short)0x7FFF;
+  else check_end = (unsigned short)((int)check_start + (547 - 1));
+  if (checksum_count_0 == (uint_least8_t)59) {
+    code_checksum = (unsigned char)0;
+    code_not_patched = (unsigned char)1;
+  }
+  i = check_start;
+  while ((int)i <= (int)check_end) {
+    {
+      unsigned char tmp;
+      tmp = Get_Code_Byte(i);
+      code_checksum = (unsigned char)((int)code_checksum ^ (int)tmp);
+    }
+    i = (code_address_t)((int)i + 1);
+  }
+  if (checksum_count_0 == (uint_least8_t)0) 
+    if ((int)code_checksum != (int)reference_checksum) 
+      if (code_not_patched) Reboot(checksum_reset_e);
+  return;
+}
+
+void UpdatePeriodCounter(uint_least8_t *counter,
+                         uint_least8_t full_counter_value)
+{
+  if (*counter) (*counter) --; else *counter = full_counter_value;
+  return;
+}
+
+void Convert_AD(ADC_parameters_t *ADC_parameters)
+{
+  unsigned char conversion_count;
+  unsigned char msb;
+  unsigned char lsb;
+  unsigned int word;
+  Start_Conversion();
+  conversion_count = (unsigned char)0;
+  /*@ loop unroll ADC_parameters->conversion_max_tries; */
+  while (1) {
+    if ((uint_least8_t)conversion_count < ADC_parameters->conversion_max_tries) {
+      unsigned char tmp;
+      tmp = End_Of_ADC();
+      if (! ((int)tmp != 0)) break;
+    }
+    else break;
+    conversion_count = (unsigned char)((int)conversion_count + 1);
+  }
+  if ((uint_least8_t)conversion_count < ADC_parameters->conversion_max_tries) {
+    msb = Get_Result();
+    lsb = Get_Result();
+    word = (unsigned int)msb * (unsigned int)256 + (unsigned int)lsb;
+    ADC_parameters->signed_ADC = (int)((short)(word ^ (unsigned int)0x8000));
+    ADC_parameters->unsigned_ADC = word;
+    ADC_parameters->AD_execution_result = (unsigned char)1;
+  }
+  else {
+    ADC_parameters->unsigned_ADC = (unsigned int)0;
+    ADC_parameters->signed_ADC = 0;
+    ADC_parameters->AD_execution_result = (unsigned char)0;
+  }
+  return;
+}
+
+void VoltageFailure(channel_t ADC_channel)
+{
+  unsigned char i;
+  unsigned char SU_action[4] =
+    {(unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0};
+  if (ADC_channel == (channel_t)0x10) goto _LOR_1;
+  else 
+    if (ADC_channel == (channel_t)0x54) {
+      _LOR_1:
+      {
+        SU_action[su1_e] = (unsigned char)1;
+        SU_action[su2_e] = (unsigned char)1;
+        SetModeStatusError((unsigned char)0x80);
+      }
+    }
+    else 
+      if (ADC_channel == (channel_t)0x11) goto _LOR_0;
+      else 
+        if (ADC_channel == (channel_t)0x55) {
+          _LOR_0:
+          {
+            SU_action[su3_e] = (unsigned char)1;
+            SU_action[su4_e] = (unsigned char)1;
+          }
+        }
+        else 
+          if (ADC_channel == (channel_t)0x12) goto _LOR;
+          else 
+            if (ADC_channel == (channel_t)0x56) {
+              _LOR:
+              {
+                SU_action[su1_e] = (unsigned char)1;
+                SU_action[su2_e] = (unsigned char)1;
+                SU_action[su3_e] = (unsigned char)1;
+                SU_action[su4_e] = (unsigned char)1;
+              }
+            }
+            else 
+              if (ADC_channel == (channel_t)0x13) SetModeStatusError((unsigned char)0x80);
+  i = (unsigned char)0;
+  while ((int)i < 4) {
+    if (SU_action[i]) {
+      SetErrorStatus((unsigned char)(0x10 << (int)i));
+      if (ADC_channel == (channel_t)0x12) goto _LOR_2;
+      else 
+        if (ADC_channel == (channel_t)0x56) _LOR_2:
+                                            Set_SU_Error((unsigned int)i,
+                                                         (unsigned char)0x80);
+      if (ADC_channel == (channel_t)0x10) goto _LOR_3;
+      else 
+        if (ADC_channel == (channel_t)0x11) goto _LOR_3;
+        else 
+          if (ADC_channel == (channel_t)0x54) goto _LOR_3;
+          else 
+            if (ADC_channel == (channel_t)0x55) _LOR_3:
+                                                Set_SU_Error((unsigned int)i,
+                                                             (unsigned char)0x40);
+    }
+    i = (unsigned char)((int)i + 1);
+  }
+  return;
+}
+
+void TemperatureFailure(sensor_index_t SU_index)
+{
+  unsigned char exec_result;
+  SetSensorUnitOff(SU_index,& exec_result);
+  SetErrorStatus((unsigned char)(0x10 << SU_index));
+  Set_SU_Error(SU_index,(unsigned char)0x20);
+  return;
+}
+
+void DelayAwhile(unsigned short duration)
+{
+  while ((int)duration > 255) {
+    ShortDelay((unsigned int)255);
+    duration = (unsigned short)((int)duration - 255);
+  }
+  if ((int)duration > 0) ShortDelay((unsigned int)((unsigned char)duration));
+  return;
+}
+
+void Read_AD_Channel(ADC_parameters_t *ADC_parameters)
+{
+  unsigned char tries_left;
+  unsigned short delay_limit;
+  delay_limit = (unsigned short)(((double)2000 / 1.085 - (double)4) / (double)2);
+  tries_left = (unsigned char)ADC_parameters->ADC_max_tries;
+  /*@ loop unroll 1; */
+  while ((int)tries_left > 0) {
+    confirm_hit_result = (unsigned char)0;
+    ADC_channel_register = (unsigned char)((unsigned int)((int)ADC_channel_register & 0x80) | ADC_parameters->ADC_channel);
+    Update_ADC_Channel_Reg(ADC_channel_register);
+    Start_Conversion();
+    DelayAwhile(delay_limit);
+    Convert_AD(ADC_parameters);
+    tries_left = (unsigned char)((int)tries_left - 1);
+    if ((int)confirm_hit_result == 0) tries_left = (unsigned char)0;
+  }
+  if ((int)confirm_hit_result != 0) {
+    ADC_parameters->unsigned_ADC = (unsigned int)0;
+    ADC_parameters->signed_ADC = 0;
+    ADC_parameters->AD_execution_result = (unsigned char)2;
+  }
+  else 
+    if ((int)ADC_parameters->AD_execution_result == 0) 
+      if ((int)confirm_hit_result == 0) SetModeStatusError((unsigned char)0x04);
+  return;
+}
+
+void DAC_SelfTest(unsigned char DAC_output,
+                  ADC_parameters_t *ADC_test_parameters)
+{
+  Set_DAC_Output(DAC_output);
+  Read_AD_Channel(ADC_test_parameters);
+  if ((int)ADC_test_parameters->AD_execution_result != 1) {
+    Set_SU_Error(ADC_test_parameters->sensor_unit - (sensor_number_t)1,
+                 (unsigned char)0x10);
+    SetSoftwareError((unsigned char)0x01);
+  }
+  return;
+}
+
+void Monitor_DPU_Voltage(void)
+{
+  unsigned char tmp;
+  unsigned char tmp_0;
+  unsigned char tmp_1;
+  MeasureVoltage((unsigned int)3);
+  MeasureVoltage((unsigned int)0);
+  MeasureVoltage((unsigned int)4);
+  tmp = ExceedsLimit(telemetry_data.sensor_unit_1.plus_5_voltage,
+                     (unsigned char)0xBA,(unsigned char)0xE4);
+  if (tmp) SetModeStatusError((unsigned char)0x80);
+  tmp_0 = ExceedsLimit(telemetry_data.sensor_unit_1.minus_5_voltage,
+                       (unsigned char)0x0D,(unsigned char)0x22);
+  if (tmp_0) SetModeStatusError((unsigned char)0x80);
+  tmp_1 = ExceedsLimit(telemetry_data.DPU_plus_5_digital,(unsigned char)0xBA,
+                       (unsigned char)0xE4);
+  if (tmp_1) SetModeStatusError((unsigned char)0x80);
+  return;
+}
+
+void Monitor_SU_Voltage(sensor_index_t self_test_SU_index)
+{
+  unsigned char tmp_3;
+  unsigned char tmp_4;
+  switch (self_test_SU_index) {
+    unsigned char tmp;
+    unsigned char tmp_0;
+    unsigned char tmp_1;
+    unsigned char tmp_2;
+    case (sensor_index_t)su1_e: case (sensor_index_t)su2_e:
+    tmp = ExceedsLimit(telemetry_data.sensor_unit_1.plus_5_voltage,
+                       (unsigned char)0xBA,(unsigned char)0xE4);
+    if (tmp) Set_SU_Error(self_test_SU_index,(unsigned char)0x04);
+    tmp_0 = ExceedsLimit(telemetry_data.sensor_unit_1.minus_5_voltage,
+                         (unsigned char)0x0D,(unsigned char)0x22);
+    if (tmp_0) Set_SU_Error(self_test_SU_index,(unsigned char)0x04);
+    break;
+    case (sensor_index_t)su3_e: case (sensor_index_t)su4_e:
+    tmp_1 = ExceedsLimit(telemetry_data.sensor_unit_3.plus_5_voltage,
+                         (unsigned char)0xBA,(unsigned char)0xE4);
+    if (tmp_1) Set_SU_Error(self_test_SU_index,(unsigned char)0x04);
+    tmp_2 = ExceedsLimit(telemetry_data.sensor_unit_3.minus_5_voltage,
+                         (unsigned char)0x0D,(unsigned char)0x22);
+    if (tmp_2) Set_SU_Error(self_test_SU_index,(unsigned char)0x04);
+    break;
+  }
+  tmp_3 = ExceedsLimit(telemetry_data.SU_plus_50,(unsigned char)0xA8,
+                       (unsigned char)0xE3);
+  if (tmp_3) Set_SU_Error(self_test_SU_index,(unsigned char)0x08);
+  tmp_4 = ExceedsLimit(telemetry_data.SU_minus_50,(unsigned char)0x0E,
+                       (unsigned char)0x2C);
+  if (tmp_4) Set_SU_Error(self_test_SU_index,(unsigned char)0x08);
+  return;
+}
+
+void SelfTest_SU(sensor_index_t self_test_SU_index)
+{
+  uint_least8_t i;
+  LowVoltageCurrent();
+  HighVoltageCurrent(self_test_SU_index);
+  i = (unsigned int)channel_0_e;
+  while (i <= (uint_least8_t)channel_6_e) {
+    MeasureVoltage(i);
+    i ++;
+  }
+  Monitor_SU_Voltage(self_test_SU_index);
+  MeasureTemperature(self_test_SU_index);
+  return;
+}
+
+unsigned char ExceedsLimit(unsigned char value, unsigned char lower_limit,
+                           unsigned char upper_limit)
+{
+  unsigned char __retres;
+  int tmp;
+  if ((int)value < (int)lower_limit) tmp = 1;
+  else 
+    if ((int)value > (int)upper_limit) tmp = 1; else tmp = 0;
+  __retres = (unsigned char)tmp;
+  return __retres;
+}
+
+void SelfTestChannel(sensor_index_t self_test_SU_index)
+{
+  trigger_set_t test_threshold;
+  Disable_Hit_Trigger();
+  test_threshold.sensor_unit = self_test_SU_number;
+  test_threshold.level = (unsigned char)0xFF;
+  test_threshold.channel = (unsigned int)0;
+  SetTriggerLevel(& test_threshold);
+  test_threshold.channel = (unsigned int)1;
+  SetTriggerLevel(& test_threshold);
+  test_threshold.channel = (unsigned int)4;
+  SetTriggerLevel(& test_threshold);
+  test_threshold.level = (unsigned char)0xFF;
+  test_threshold.channel = (unsigned int)5;
+  SetTriggerLevel(& test_threshold);
+  SetTestPulseLevel((unsigned char)0);
+  test_threshold.channel = (unsigned int)0;
+  test_threshold.level = (unsigned char)0xAB;
+  SetTriggerLevel(& test_threshold);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)0,(unsigned char)0x5A);
+  test_threshold.channel = (unsigned int)1;
+  test_threshold.level = (unsigned char)0x80;
+  SetTriggerLevel(& test_threshold);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)1,(unsigned char)0x2A);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)4,(unsigned char)0x50);
+  test_threshold.channel = (unsigned int)5;
+  test_threshold.level = (unsigned char)0x2B;
+  SetTriggerLevel(& test_threshold);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)2,(unsigned char)0xF6);
+  test_threshold.channel = (unsigned int)5;
+  test_threshold.level = (unsigned char)0x2B;
+  SetTriggerLevel(& test_threshold);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)3,(unsigned char)0xE8);
+  test_threshold.channel = (unsigned int)0;
+  test_threshold.level = (unsigned char)0x15;
+  SetTriggerLevel(& test_threshold);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)0,(unsigned char)0x13);
+  test_threshold.channel = (unsigned int)1;
+  test_threshold.level = (unsigned char)0x15;
+  SetTriggerLevel(& test_threshold);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)1,(unsigned char)0x08);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)4,(unsigned char)0x10);
+  test_threshold.channel = (unsigned int)5;
+  test_threshold.level = (unsigned char)0x0D;
+  SetTriggerLevel(& test_threshold);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)2,(unsigned char)0x36);
+  test_threshold.channel = (unsigned int)5;
+  test_threshold.level = (unsigned char)0x0D;
+  SetTriggerLevel(& test_threshold);
+  ExecuteChannelTest(self_test_SU_index,(unsigned char)3,(unsigned char)0x36);
+  Enable_Hit_Trigger();
+  RestoreSettings(self_test_SU_index);
+  return;
+}
+
+void ExecuteChannelTest(sensor_index_t self_test_SU_index,
+                        unsigned char test_channel_0,
+                        unsigned char test_pulse_level)
+{
+  unsigned short delay_limit;
+  trigger_set_t test_threshold;
+  if ((int)test_channel_0 == 0) goto _LOR;
+  else 
+    if ((int)test_channel_0 == 1) goto _LOR;
+    else 
+      if ((int)test_channel_0 == 4) {
+        _LOR:
+        {
+          SelectSelfTestChannel(test_channel_0);
+          EnableAnalogSwitch(self_test_SU_index);
+          WaitTimeout((unsigned char)1);
+          ResetPeakDetector(self_test_SU_index + (sensor_index_t)1);
+          WaitTimeout((unsigned char)1);
+          ResetPeakDetector(self_test_SU_index + (sensor_index_t)1);
+          WaitTimeout((unsigned char)1);
+          ResetDelayCounters();
+          SU_state[self_test_SU_index] = self_test_trigger_e;
+          Enable_Hit_Trigger();
+          SetTestPulseLevel(test_pulse_level);
+          delay_limit = (unsigned short)(((double)1000 / 1.085 - (double)4) / (double)2);
+          DelayAwhile(delay_limit);
+          if ((int)test_channel_0 == 1) 
+            if (SU_state[self_test_SU_index] == (unsigned int)self_test_trigger_e) {
+              Set_SU_Error(self_test_SU_index,(unsigned char)0x10);
+              SU_state[self_test_SU_index] = self_test_e;
+            }
+          delay_limit = (unsigned short)(((double)2000 / 1.085 - (double)4) / (double)2);
+          DelayAwhile(delay_limit);
+          SetTestPulseLevel((unsigned char)0);
+          if ((int)test_channel_0 == 4) ;
+          if ((int)test_channel_0 != 1) {
+            delay_limit = (unsigned short)(((double)1000 / 1.085 - (double)4) / (double)2);
+            DelayAwhile(delay_limit);
+          }
+          Disable_Hit_Trigger();
+          if ((int)test_channel_0 != 4) {
+            test_threshold.sensor_unit = self_test_SU_index + (sensor_index_t)1;
+            test_threshold.channel = (unsigned int)test_channel_0;
+            test_threshold.level = (unsigned char)0xFF;
+            SetTriggerLevel(& test_threshold);
+          }
+          DisableAnalogSwitch(self_test_SU_index);
+        }
+      }
+      else {
+        SelectSelfTestChannel(test_channel_0);
+        SetTestPulseLevel(test_pulse_level);
+        WaitTimeout((unsigned char)1);
+        ResetPeakDetector(self_test_SU_index + (sensor_index_t)1);
+        WaitTimeout((unsigned char)1);
+        ResetPeakDetector(self_test_SU_index + (sensor_index_t)1);
+        WaitTimeout((unsigned char)1);
+        ResetDelayCounters();
+        SU_state[self_test_SU_index] = self_test_trigger_e;
+        Enable_Hit_Trigger();
+        EnableAnalogSwitch(self_test_SU_index);
+        delay_limit = (unsigned short)(((double)1000 / 1.085 - (double)4) / (double)2);
+        DelayAwhile(delay_limit);
+        Disable_Hit_Trigger();
+        SetTestPulseLevel((unsigned char)0);
+        DisableAnalogSwitch(self_test_SU_index);
+        test_threshold.sensor_unit = self_test_SU_index + (sensor_index_t)1;
+        test_threshold.level = (unsigned char)0xFF;
+        test_threshold.channel = (unsigned int)5;
+        SetTriggerLevel(& test_threshold);
+      }
+  if (SU_state[self_test_SU_index] == (unsigned int)self_test_trigger_e) {
+    Set_SU_Error(self_test_SU_index,(unsigned char)0x10);
+    SU_state[self_test_SU_index] = self_test_e;
+  }
+  return;
+}
+
+void RestoreSettings(sensor_index_t self_test_SU_index)
+{
+  SU_settings_t *SU_setting;
+  sensor_unit_t SU_switch;
+  trigger_set_t threshold;
+  SU_settings_t * const setting_map_c[4] =
+    {& telemetry_data.sensor_unit_1,
+     & telemetry_data.sensor_unit_2,
+     & telemetry_data.sensor_unit_3,
+     & telemetry_data.sensor_unit_4};
+  SU_setting = setting_map_c[self_test_SU_index];
+  threshold.sensor_unit = self_test_SU_number;
+  threshold.level = SU_setting->plasma_1_plus_threshold;
+  threshold.channel = (unsigned int)0;
+  SetTriggerLevel(& threshold);
+  threshold.level = SU_setting->plasma_1_minus_threshold;
+  threshold.channel = (unsigned int)1;
+  SetTriggerLevel(& threshold);
+  threshold.level = SU_setting->piezo_threshold;
+  threshold.channel = (unsigned int)5;
+  SetTriggerLevel(& threshold);
+  SU_switch.SU_number = self_test_SU_number;
+  SU_switch.SU_state = on_e;
+  SU_switch.expected_source_state = self_test_e;
+  Switch_SU_State(& SU_switch);
+  return;
+}
+
+reset_class_t s_w_reset;
+unsigned char code_not_patched;
+unsigned char reference_checksum;
+unsigned char SU_ctrl_register = (unsigned char)0;
+unsigned char SU_self_test_channel = (unsigned char)0;
+unsigned char forbidden_area[256];
+code_address_t failed_code_address;
+data_address_t failed_data_address;
+memory_configuration_t memory_mode;
+unsigned char const checksum_nullifier = (unsigned char)0x9F;
+unsigned char analog_switch_bit[4] =
+  {(unsigned char)0x10,
+   (unsigned char)0x20,
+   (unsigned char)0x40,
+   (unsigned char)0x80};
+void CopyProgramCode(void);
+
+unsigned short InitCode_RAM(reset_class_t reset_class);
+
+void InitData_RAM(reset_class_t reset_class, code_address_t code_address);
+
+unsigned short Check_RAM(data_address_t start_address,
+                         data_address_t end_address)
+{
+  unsigned short __retres;
+  data_address_t start;
+  uint_least16_t range;
+  uint_least8_t bytes;
+  uint_least8_t bytes_left;
+  unsigned char tmp;
+  start = start_address;
+  tmp = TestMemBits(start);
+  if ((int)tmp != 0) {
+    __retres = start;
+    goto return_label;
+  }
+  while ((int)start <= (int)end_address) {
+    unsigned char tmp_0;
+    range = (unsigned int)((int)end_address - (int)start);
+    if (range < (uint_least16_t)255) bytes = range + (uint_least16_t)1;
+    else bytes = (unsigned int)255;
+    tmp_0 = TestMemSeq(start,bytes);
+    bytes_left = (unsigned int)tmp_0;
+    if (bytes_left == (uint_least8_t)0) {
+      unsigned char tmp_1;
+      tmp_1 = TestMemData(start,bytes);
+      bytes_left = (unsigned int)tmp_1;
+    }
+    if (bytes_left > (uint_least8_t)0) {
+      __retres = (unsigned short)((bytes - bytes_left) + (uint_least8_t)start);
+      goto return_label;
+    }
+    start = (unsigned short)((uint_least8_t)start + bytes);
+  }
+  __retres = (unsigned short)0xFFFF;
+  return_label: return __retres;
+}
+
+void Init_DPU(reset_class_t reset_class)
+{
+  reset_class_t volatile safe_reset_class;
+  code_address_t code_address;
+  /*@ ghost init_dpu_called = 1; */
+  safe_reset_class = reset_class;
+  Set_TC_Timer_Overflow_Flag();
+  code_address = InitCode_RAM(safe_reset_class);
+  InitData_RAM(safe_reset_class,code_address);
+  s_w_reset = safe_reset_class;
+  code_not_patched = (unsigned char)1;
+  failed_code_address = code_address;
+  if ((int)code_address == 0xFFFF) memory_mode = SRAM_e;
+  else memory_mode = PROM_e;
+  return;
+}
+
+unsigned short InitCode_RAM(reset_class_t reset_class)
+{
+  code_address_t code_address;
+  if (reset_class == (unsigned int)warm_reset_e) code_address = failed_code_address;
+  else {
+    code_address = Check_RAM((unsigned short)0x1000,(unsigned short)0x7FFF);
+    if ((int)code_address == 0xFFFF) CopyProgramCode();
+  }
+  if ((int)code_address == 0xFFFF) ;
+  return code_address;
+}
+
+void InitData_RAM(reset_class_t reset_class, code_address_t code_address)
+{
+  if (reset_class == (unsigned int)power_up_reset_e) 
+    if ((int)code_address == 0xFFFF) failed_data_address = Check_RAM((unsigned short)0x0000,
+                                                                    (unsigned short)0xFEFF);
+    else failed_data_address = Check_RAM((unsigned short)0x8000,
+                                         (unsigned short)0xFEFF);
+  return;
+}
+
+void CopyProgramCode(void)
+{
+  code_address_t i;
+  unsigned char code_byte;
+  i = (unsigned short)0x1000;
+  while ((int)i < 0x8000) {
+    code_byte = Get_Code_Byte(i);
+    Set_Data_Byte(i,code_byte);
+    i = (code_address_t)((int)i + 1);
+  }
+  return;
+}
+
+reset_class_t GetResetClass(void)
+{
+  register reset_class_t occurred_reset;
+  occurred_reset = s_w_reset;
+  s_w_reset = error_e;
+  return occurred_reset;
+}
+
+/*@ requires init_dpu_called ≡ 1; */
+void SignalMemoryErrors(void)
+{
+  if ((int)failed_code_address == 0xFFFF) {
+    telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status & ~ 0x20);
+    telemetry_data.failed_code_address = (unsigned short)0x0000;
+  }
+  else {
+    telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status | 0x20);
+    telemetry_data.failed_code_address = failed_code_address;
+  }
+  if ((int)failed_data_address == 0xFFFF) {
+    telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status & ~ 0x40);
+    telemetry_data.failed_data_address = (unsigned short)0x0000;
+  }
+  else {
+    telemetry_data.mode_status = (unsigned char)((int)telemetry_data.mode_status | 0x40);
+    telemetry_data.failed_data_address = failed_data_address;
+  }
+  return;
+}
+
+void SetMemoryConfiguration(memory_configuration_t memory)
+{
+  switch (memory) {
+    case (memory_configuration_t)PROM_e: ;
+    break;
+    case (memory_configuration_t)SRAM_e: ;
+    break;
+  }
+  memory_mode = memory;
+  return;
+}
+
+void PatchCode(memory_patch_variables_t *patch_variables)
+{
+  fptr_t patch_function;
+  unsigned char old_checksum;
+  unsigned char new_checksum;
+  unsigned char patch_value;
+  unsigned char temp_configuration;
+  uint_least8_t i;
+  memory_configuration_t tmp;
+  tmp = GetMemoryConfiguration();
+  temp_configuration = (unsigned char)tmp;
+  SetMemoryConfiguration(PROM_e);
+  new_checksum = (unsigned char)0;
+  old_checksum = (unsigned char)0;
+  i = (unsigned int)0;
+  while (i < patch_variables->data_amount) {
+    {
+      unsigned char tmp_0;
+      tmp_0 = Get_Data_Byte((unsigned short)((uint_least8_t)patch_variables->destination + i));
+      old_checksum = (unsigned char)((int)old_checksum ^ (int)tmp_0);
+      patch_value = *(patch_variables->source + i);
+      new_checksum = (unsigned char)((int)new_checksum ^ (int)patch_value);
+      Set_Data_Byte((unsigned short)((uint_least8_t)patch_variables->destination + i),
+                    patch_value);
+    }
+    i ++;
+  }
+  reference_checksum = (unsigned char)((int)reference_checksum ^ ((int)old_checksum ^ (int)new_checksum));
+  SetMemoryConfiguration((enum __anonenum_memory_configuration_t_2)temp_configuration);
+  switch ((int)patch_variables->execution_command) {
+    case 0: break;
+    case 0x09: Reboot(soft_reset_e);
+    break;
+    case 0x37: Reboot(warm_reset_e);
+    break;
+    case 0x5A: patch_function = patch_variables->destination;
+    Call_Patch(patch_function);
+    break;
+  }
+  return;
+}
+
+memory_configuration_t GetMemoryConfiguration(void)
+{
+  return memory_mode;
+}
+
+void Switch_SU_On(sensor_number_t SU_Number, unsigned char *execution_result)
+{
+  switch (SU_Number) {
+    case (sensor_number_t)1:
+    SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x10);
+    *execution_result = (unsigned char)1;
+    break;
+    case (sensor_number_t)2:
+    SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x20);
+    *execution_result = (unsigned char)2;
+    break;
+    case (sensor_number_t)3:
+    SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x40);
+    *execution_result = (unsigned char)3;
+    break;
+    case (sensor_number_t)4:
+    SU_ctrl_register = (unsigned char)((int)SU_ctrl_register | 0x80);
+    *execution_result = (unsigned char)4;
+    break;
+    default: *execution_result = (unsigned char)0;
+    break;
+  }
+  Set_Data_Byte((unsigned short)0xFFD0,SU_ctrl_register);
+  telemetry_data.SU_status[SU_Number - (sensor_number_t)1] = (unsigned char)(
+  (int)telemetry_data.SU_status[SU_Number - (sensor_number_t)1] | 3);
+  return;
+}
+
+void Switch_SU_Off(sensor_number_t SU_Number, unsigned char *execution_result)
+{
+  switch (SU_Number) {
+    case (sensor_number_t)1:
+    SU_ctrl_register = (unsigned char)((int)SU_ctrl_register & ~ 0x10);
+    *execution_result = (unsigned char)1;
+    break;
+    case (sensor_number_t)2:
+    SU_ctrl_register = (unsigned char)((int)SU_ctrl_register & ~ 0x20);
+    *execution_result = (unsigned char)2;
+    break;
+    case (sensor_number_t)3:
+    SU_ctrl_register = (unsigned char)((int)SU_ctrl_register & ~ 0x40);
+    *execution_result = (unsigned char)3;
+    break;
+    case (sensor_number_t)4:
+    SU_ctrl_register = (unsigned char)((int)SU_ctrl_register & ~ 0x80);
+    *execution_result = (unsigned char)4;
+    break;
+    default: *execution_result = (unsigned char)0;
+    break;
+  }
+  Set_Data_Byte((unsigned short)0xFFD0,SU_ctrl_register);
+  telemetry_data.SU_status[SU_Number - (sensor_number_t)1] = (unsigned char)(
+  (int)telemetry_data.SU_status[SU_Number - (sensor_number_t)1] & ~ 3);
+  return;
+}
+
+void EnableAnalogSwitch(sensor_index_t self_test_SU_index)
+{
+  SU_self_test_channel = (unsigned char)((int)SU_self_test_channel | (int)analog_switch_bit[self_test_SU_index]);
+  Set_SU_Self_Test_Ch(SU_self_test_channel);
+  return;
+}
+
+void DisableAnalogSwitch(sensor_index_t self_test_SU_index)
+{
+  SU_self_test_channel = (unsigned char)((int)SU_self_test_channel & ~ ((int)analog_switch_bit[self_test_SU_index]));
+  Set_SU_Self_Test_Ch(SU_self_test_channel);
+  return;
+}
+
+void SelectSelfTestChannel(unsigned char channel)
+{
+  unsigned char channel_selector_value[5];
+  channel_selector_value[0] = (unsigned char)0x00;
+  channel_selector_value[1] = (unsigned char)0x01;
+  channel_selector_value[2] = (unsigned char)0x02;
+  channel_selector_value[3] = (unsigned char)0x03;
+  channel_selector_value[4] = (unsigned char)0x04;
+  SU_self_test_channel = (unsigned char)(((int)SU_self_test_channel & 0xF8) | (int)channel_selector_value[channel]);
+  Set_SU_Self_Test_Ch(SU_self_test_channel);
+  return;
+}
+
+void ReadDelayCounters(delays_t *delay)
+{
+  unsigned char msb;
+  unsigned char lsb;
+  unsigned char tmp;
+  unsigned char tmp_0;
+  tmp = Get_MSB_Counter();
+  msb = (unsigned char)((int)tmp & 0x0F);
+  lsb = Get_LSB1_Counter();
+  delay->FromPlasma1Plus = (unsigned short)(((int)msb << 8) | (int)lsb);
+  tmp_0 = Get_MSB_Counter();
+  msb = (unsigned char)((int)tmp_0 >> 4);
+  lsb = Get_LSB2_Counter();
+  delay->FromPlasma1Minus = (unsigned short)(((int)msb << 8) | (int)lsb);
+  return;
+}
+
+unsigned char ReadRiseTimeCounter(void)
+{
+  unsigned char tmp_0;
+  unsigned char tmp;
+  tmp = Rise_Time_Counter();
+  tmp_0 = Get_Data_Byte((unsigned short)tmp);
+  return tmp_0;
+}
+
+void ResetDelayCounters(void)
+{
+  return;
+}
+
+void SetTriggerLevel(trigger_set_t *setting)
+{
+  setting->execution_result = (unsigned char)1;
+  switch (setting->sensor_unit) {
+    case (sensor_number_t)1: {
+                               setting->base = (unsigned int)0xFFB0;
+                               break;
+                             }
+    case (sensor_number_t)2: {
+                               setting->base = (unsigned int)0xFFB3;
+                               break;
+                             }
+    case (sensor_number_t)3: {
+                               setting->base = (unsigned int)0xFFC0;
+                               break;
+                             }
+    case (sensor_number_t)4: {
+                               setting->base = (unsigned int)0xFFC3;
+                               break;
+                             }
+    default: {
+               setting->execution_result = (unsigned char)6;
+               break;
+             }
+  }
+  if ((int)setting->execution_result != 6) 
+    switch (setting->channel) {
+      case (channel_t)0:
+      {
+        Set_Data_Byte((unsigned short)(setting->base + (unsigned int)0),
+                      setting->level);
+        break;
+      }
+      case (channel_t)1:
+      {
+        Set_Data_Byte((unsigned short)(setting->base + (unsigned int)1),
+                      setting->level);
+        break;
+      }
+      case (channel_t)5:
+      {
+        Set_Data_Byte((unsigned short)(setting->base + (unsigned int)2),
+                      setting->level);
+        break;
+      }
+      default: {
+                 setting->execution_result = (unsigned char)5;
+                 break;
+               }
+    }
+  return;
+}
+
+void SetTestPulseLevel(unsigned char level)
+{
+  Set_Test_Pulse_Level(level);
+  return;
+}
+
+void GetVoltageStatus(voltage_status_t *v_status)
+{
+  v_status->V_down_bit = V_Down();
+  v_status->HV_status = Get_Data_Byte((unsigned short)0xFF70);
+  return;
+}
+
+void ResetPeakDetector(sensor_number_t unit)
+{
+  SignalPeakDetectorReset((unsigned char)((int)SU_ctrl_register & ~ (
+                                          1 << (unit - (sensor_number_t)1))),
+                          SU_ctrl_register);
+  return;
+}
+
+void SelectStartSwitchLevel(unsigned char test_channel_0,
+                            sensor_index_t self_test_SU_index)
+{
+  if ((int)test_channel_0 == 0) goto _LOR;
+  else 
+    if ((int)test_channel_0 == 4) _LOR:
+                                  EnableAnalogSwitch(self_test_SU_index);
+    else DisableAnalogSwitch(self_test_SU_index);
+  return;
+}
+
+void SelectTriggerSwitchLevel(unsigned char test_channel_0,
+                              sensor_index_t self_test_SU_index)
+{
+  if ((int)test_channel_0 == 0) DisableAnalogSwitch(self_test_SU_index);
+  else 
+    if ((int)test_channel_0 == 4) {
+      DisableAnalogSwitch(self_test_SU_index);
+      Set_SU_Self_Test_Ch(SU_self_test_channel);
+    }
+    else EnableAnalogSwitch(self_test_SU_index);
+  return;
+}
+
+void WaitMail(incoming_mail_t *message);
+
+unsigned char confirm_hit_result;
+sensor_number_t self_test_SU_number = (unsigned int)0;
+unsigned char test_channel;
+SU_test_level_t test_level;
+SU_state_t SU_state[4] = {off_e, off_e, off_e, off_e};
+unsigned short ADC_result[5];
+uint_least8_t hit_budget = (unsigned int)20;
+uint_least8_t hit_budget_left = (unsigned int)20;
+void InitHitTriggerTask(void)
+{
+  AttachInterrupt((unsigned char)5);
+  Enable_Hit_Trigger();
+  return;
+}
+
+void HandleHitTrigger(void)
+{
+  unsigned char initial_delay;
+  unsigned char delay_limit;
+  sensor_number_t trigger;
+  channel_t CH_base;
+  uint_least8_t i;
+  unsigned char lsb;
+  unsigned char msb;
+  uint_least8_t conversion_try_count;
+  initial_delay = (unsigned char)((unsigned int)((unsigned short)(((double)100 / 1.085 - (double)4) / (double)2)));
+  delay_limit = (unsigned char)((unsigned int)((unsigned short)(((double)100 / 1.085 - (double)4) / (double)2)));
+  WaitInterrupt((unsigned char)5,(unsigned char)255);
+  if (hit_budget_left == (uint_least8_t)0) {
+    if ((int)telemetry_data.hit_budget_exceedings < 255) telemetry_data.hit_budget_exceedings = (unsigned char)(
+                                                         (int)telemetry_data.hit_budget_exceedings + 1);
+    Disable_Hit_Trigger();
+  }
+  else {
+    hit_budget_left --;
+    confirm_hit_result = (unsigned char)1;
+    ADC_channel_register = (unsigned char)((int)ADC_channel_register & 0xBF);
+    Update_ADC_Channel_Reg(ADC_channel_register);
+    Start_Conversion();
+    conversion_try_count = (unsigned int)0;
+    while (1) {
+      if (conversion_try_count < (uint_least8_t)25) {
+        unsigned char tmp;
+        tmp = End_Of_ADC();
+        if (! ((int)tmp != 0)) break;
+      }
+      else break;
+      conversion_try_count ++;
+    }
+    if (self_test_SU_number != (sensor_number_t)0) {
+      trigger = self_test_SU_number;
+      if (SU_state[self_test_SU_number - (sensor_number_t)1] == (unsigned int)self_test_e) 
+        trigger |= (unsigned int)0x40;
+      else 
+        if (SU_state[self_test_SU_number - (sensor_number_t)1] == (unsigned int)self_test_trigger_e) 
+          SU_state[self_test_SU_number - (sensor_number_t)1] = self_test_e;
+    }
+    else {
+      unsigned char tmp_0;
+      unsigned char tmp_1;
+      tmp_0 = Trigger_Source_0();
+      tmp_1 = Trigger_Source_1();
+      trigger = (unsigned int)(((int)tmp_0 + 2 * (int)tmp_1) + 1);
+    }
+    CH_base = (unsigned int)(((int)(trigger - (sensor_number_t)1) & 2) * 12 + 
+                             ((int)(trigger - (sensor_number_t)1) & 1) * 8);
+    ShortDelay((unsigned int)initial_delay);
+    ADC_channel_register = (unsigned char)((unsigned int)((int)ADC_channel_register & 0xC0) | CH_base);
+    Update_ADC_Channel_Reg(ADC_channel_register);
+    ShortDelay((unsigned int)delay_limit);
+    i = (unsigned int)0;
+    while (i < (uint_least8_t)5) {
+      ShortDelay((unsigned int)delay_limit);
+      Start_Conversion();
+      ADC_channel_register = (unsigned char)((unsigned int)((int)ADC_channel_register & 0xC0) | (
+                                             (CH_base + i) + (channel_t)1));
+      Update_ADC_Channel_Reg(ADC_channel_register);
+      conversion_try_count = (unsigned int)0;
+      while (1) {
+        if (conversion_try_count < (uint_least8_t)25) {
+          unsigned char tmp_2;
+          tmp_2 = End_Of_ADC();
+          if (! ((int)tmp_2 != 0)) break;
+        }
+        else break;
+        conversion_try_count ++;
+      }
+      if (conversion_try_count < (uint_least8_t)25) {
+        msb = Get_Result();
+        lsb = Get_Result();
+        ADC_result[i] = (unsigned short)(((unsigned int)msb << 8) | (unsigned int)lsb);
+      }
+      else {
+        trigger |= (unsigned int)0x80;
+        ADC_result[i] = (unsigned short)0;
+      }
+      i ++;
+    }
+    SendTaskMail((unsigned char)1,(unsigned short)trigger,(unsigned char)0);
+  }
+  return;
+}
+
+void HitTriggerTask(void)
+{
+  InitHitTriggerTask();
+  while (1) HandleHitTrigger();
+  return;
+}
+
+static incoming_mail_t ACQ_mail;
+static uint16_t trigger_unit;
+void InitAcquisitionTask(void)
+{
+  ACQ_mail.mailbox_number = (unsigned char)1;
+  ACQ_mail.message = & trigger_unit;
+  ACQ_mail.timeout = (unsigned char)0;
+  return;
+}
+
+void HandleAcquisition(void)
+{
+  unsigned char *checksum_pointer;
+  unsigned char event_checksum;
+  uint_least8_t i;
+  event_record_t *event;
+  delays_t delay_counters;
+  int time_delay;
+  SU_state_t state = off_e;
+  WaitMail(& ACQ_mail);
+  if ((int)trigger_unit & 0x80) SetModeStatusError((unsigned char)0x04);
+  if ((int)trigger_unit == 1) goto _LOR_0;
+  else 
+    if ((int)trigger_unit == 2) goto _LOR_0;
+    else 
+      if ((int)trigger_unit == 3) goto _LOR_0;
+      else 
+        if ((int)trigger_unit == 4) {
+          _LOR_0:
+          {
+            state = SU_state[(int)trigger_unit - 1];
+            if (state == (unsigned int)self_test_e) goto _LOR;
+            else 
+              if (state == (unsigned int)acquisition_e) {
+                unsigned char tmp;
+                _LOR: tmp = Event_Flag();
+                if ((int)tmp == 1) {
+                  /*@ split event_queue_length; */
+                  event = GetFreeRecord();
+                  event->SU_number = (unsigned char)((int)trigger_unit & 0xFF);
+                  memcpy((void *)(& event->plasma_1_plus),
+                         (void const *)(ADC_result),
+                         sizeof(event->plasma_1_plus));
+                  memcpy((void *)(& event->plasma_1_minus),
+                         (void const *)(& ADC_result[1]),
+                         sizeof(event->plasma_1_minus));
+                  memcpy((void *)(& event->piezo_1),
+                         (void const *)(& ADC_result[2]),
+                         sizeof(event->piezo_1));
+                  memcpy((void *)(& event->piezo_2),
+                         (void const *)(& ADC_result[3]),
+                         sizeof(event->piezo_2));
+                  memcpy((void *)(& event->plasma_2_plus),
+                         (void const *)(& ADC_result[4]),
+                         sizeof(event->plasma_2_plus));
+                  event->rise_time = ReadRiseTimeCounter();
+                  ReadDelayCounters(& delay_counters);
+                  memcpy((void *)(& event->delay_2),
+                         (void const *)(& delay_counters.FromPlasma1Plus),
+                         sizeof(event->delay_2));
+                  memcpy((void *)(& event->delay_3),
+                         (void const *)(& delay_counters.FromPlasma1Minus),
+                         sizeof(event->delay_3));
+                  time_delay = (int)delay_counters.FromPlasma1Plus - (int)delay_counters.FromPlasma1Minus;
+                  if (time_delay > 127) event->delay_1 = (signed char)127;
+                  else 
+                    if (time_delay < -128) event->delay_1 = (signed char)(-128);
+                    else event->delay_1 = (signed char)time_delay;
+                  memcpy((void *)(& event->hit_time),
+                         (void const *)(& internal_time),
+                         sizeof(event->hit_time));
+                  event->SU_temperature_1 = telemetry_data.SU_temperature[
+                  (int)trigger_unit - 1][0];
+                  event->SU_temperature_2 = telemetry_data.SU_temperature[
+                  (int)trigger_unit - 1][1];
+                  ClassifyEvent(event);
+                  /*@ merge event_queue_length; */
+                  checksum_pointer = (unsigned char *)event;
+                  event_checksum = (unsigned char)0;
+                  i = (unsigned int)1;
+                  while (i < sizeof(event_record_t)) {
+                    event_checksum = (unsigned char)((int)event_checksum ^ (int)*checksum_pointer);
+                    checksum_pointer ++;
+                    i ++;
+                  }
+                  event->checksum = event_checksum;
+                  RecordEvent();
+                }
+              }
+          }
+        }
+  trigger_unit = (unsigned short)((int)trigger_unit & 0x07);
+  WaitTimeout((unsigned char)1);
+  ResetPeakDetector((unsigned int)trigger_unit);
+  WaitTimeout((unsigned char)1);
+  ResetPeakDetector((unsigned int)trigger_unit);
+  WaitTimeout((unsigned char)1);
+  ResetDelayCounters();
+  return;
+}
+
+void AcquisitionTask(void)
+{
+  InitAcquisitionTask();
+  while (1) HandleAcquisition();
+  return;
+}
+
+void (*hit_task)(void) = & HitTriggerTask;
+void (*acq_task)(void) = & AcquisitionTask;
+void Switch_SU_State(sensor_unit_t *SU_setting)
+{
+  if (SU_state[SU_setting->SU_number - (sensor_number_t)1] != SU_setting->expected_source_state) 
+    SU_setting->execution_result = (unsigned char)0;
+  else 
+    if (SU_setting->SU_state == (unsigned int)self_test_mon_e) {
+      if (self_test_SU_number != (sensor_number_t)0) SU_setting->execution_result = (unsigned char)0;
+      else goto _LAND;
+    }
+    else {
+      _LAND:
+      {
+        if (SU_setting->SU_state == (unsigned int)self_test_mon_e) self_test_SU_number = SU_setting->SU_number;
+        else 
+          if (SU_setting->SU_number == self_test_SU_number) self_test_SU_number = (unsigned int)0;
+        SU_state[SU_setting->SU_number - (sensor_number_t)1] = SU_setting->SU_state;
+        SU_setting->execution_result = (unsigned char)1;
+      }
+    }
+  return;
+}
+
+void Start_SU_SwitchingOn(sensor_index_t SU, unsigned char *exec_result)
+{
+  *exec_result = (unsigned char)1;
+  if (SU_state[SU] != (unsigned int)off_e) *exec_result = (unsigned char)0;
+  else {
+    Switch_SU_On(SU + (sensor_index_t)1,exec_result);
+    if ((sensor_index_t)*exec_result == SU + (sensor_index_t)1) SU_state[SU] = start_switching_e;
+    else *exec_result = (unsigned char)0;
+  }
+  return;
+}
+
+static sensor_unit_t SetSensorUnitOff_SU_setting;
+void SetSensorUnitOff(sensor_index_t SU, unsigned char *exec_result)
+{
+  Switch_SU_Off(SU + (sensor_index_t)1,exec_result);
+  if ((sensor_index_t)*exec_result == SU + (sensor_index_t)1) {
+    SetSensorUnitOff_SU_setting.SU_number = SU + (sensor_index_t)1;
+    SetSensorUnitOff_SU_setting.expected_source_state = SU_state[SU];
+    SetSensorUnitOff_SU_setting.SU_state = off_e;
+    Switch_SU_State(& SetSensorUnitOff_SU_setting);
+    *exec_result = (unsigned char)1;
+  }
+  else *exec_result = (unsigned char)0;
+  return;
+}
+
+SU_state_t ReadSensorUnit(unsigned char SU_number)
+{
+  SU_state_t __retres;
+  __retres = SU_state[(int)SU_number - 1];
+  return __retres;
+}
+
+void Update_SU_State(sensor_index_t SU_index)
+{
+  if (SU_state[SU_index] == (unsigned int)start_switching_e) SU_state[SU_index] = switching_e;
+  else 
+    if (SU_state[SU_index] == (unsigned int)switching_e) {
+      ResetPeakDetector(SU_index + (sensor_index_t)1);
+      WaitTimeout((unsigned char)1);
+      ResetPeakDetector(SU_index + (sensor_index_t)1);
+      SU_state[SU_index] = on_e;
+    }
+  return;
+}
+
+TC_state_t TC_state;
+SU_settings_t *SU_config[4] =
+  {& telemetry_data.sensor_unit_1,
+   & telemetry_data.sensor_unit_2,
+   & telemetry_data.sensor_unit_3,
+   & telemetry_data.sensor_unit_4};
+telecommand_t previous_TC;
+unsigned char TC_timeout = (unsigned char)0;
+unsigned char TC_look_up[128];
+memory_type_t memory_type;
+unsigned char memory_transfer_buffer[32];
+unsigned char address_MSB;
+unsigned char address_LSB;
+uint_least8_t memory_buffer_index = (unsigned int)0;
+unsigned char write_checksum;
+void InitTC_LookUp(void)
+{
+  uint_least8_t i;
+  i = (unsigned int)0;
+  while (i < (uint_least8_t)128) {
+    TC_look_up[i] = (unsigned char)0;
+    i ++;
+  }
+  TC_look_up[0x01] = (unsigned char)2;
+  TC_look_up[0x02] = (unsigned char)2;
+  TC_look_up[0x03] = (unsigned char)2;
+  TC_look_up[0x05] = (unsigned char)4;
+  TC_look_up[0x06] = (unsigned char)2;
+  TC_look_up[0x0C] = (unsigned char)1;
+  TC_look_up[0x0D] = (unsigned char)1;
+  TC_look_up[0x0E] = (unsigned char)1;
+  TC_look_up[0x0F] = (unsigned char)1;
+  TC_look_up[0x09] = (unsigned char)2;
+  TC_look_up[0x0A] = (unsigned char)2;
+  TC_look_up[0x0B] = (unsigned char)2;
+  TC_look_up[0x10] = (unsigned char)1;
+  TC_look_up[0x6F] = (unsigned char)1;
+  TC_look_up[0x15] = (unsigned char)1;
+  TC_look_up[0x6A] = (unsigned char)1;
+  TC_look_up[0x1F] = (unsigned char)1;
+  TC_look_up[0x60] = (unsigned char)1;
+  TC_look_up[0x20] = (unsigned char)3;
+  TC_look_up[0x30] = (unsigned char)3;
+  TC_look_up[0x40] = (unsigned char)3;
+  TC_look_up[0x50] = (unsigned char)3;
+  TC_look_up[0x21] = (unsigned char)1;
+  TC_look_up[0x31] = (unsigned char)1;
+  TC_look_up[0x41] = (unsigned char)1;
+  TC_look_up[0x51] = (unsigned char)1;
+  TC_look_up[0x22] = (unsigned char)1;
+  TC_look_up[0x32] = (unsigned char)1;
+  TC_look_up[0x42] = (unsigned char)1;
+  TC_look_up[0x52] = (unsigned char)1;
+  TC_look_up[0x23] = (unsigned char)1;
+  TC_look_up[0x33] = (unsigned char)1;
+  TC_look_up[0x43] = (unsigned char)1;
+  TC_look_up[0x53] = (unsigned char)1;
+  TC_look_up[0x24] = (unsigned char)1;
+  TC_look_up[0x34] = (unsigned char)1;
+  TC_look_up[0x44] = (unsigned char)1;
+  TC_look_up[0x54] = (unsigned char)1;
+  TC_look_up[0x25] = (unsigned char)1;
+  TC_look_up[0x35] = (unsigned char)1;
+  TC_look_up[0x45] = (unsigned char)1;
+  TC_look_up[0x55] = (unsigned char)1;
+  TC_look_up[0x28] = (unsigned char)1;
+  TC_look_up[0x38] = (unsigned char)1;
+  TC_look_up[0x48] = (unsigned char)1;
+  TC_look_up[0x58] = (unsigned char)1;
+  TC_look_up[0x26] = (unsigned char)1;
+  TC_look_up[0x36] = (unsigned char)1;
+  TC_look_up[0x46] = (unsigned char)1;
+  TC_look_up[0x56] = (unsigned char)1;
+  TC_look_up[0x27] = (unsigned char)1;
+  TC_look_up[0x37] = (unsigned char)1;
+  TC_look_up[0x47] = (unsigned char)1;
+  TC_look_up[0x57] = (unsigned char)1;
+  TC_look_up[0x29] = (unsigned char)1;
+  TC_look_up[0x39] = (unsigned char)1;
+  TC_look_up[0x49] = (unsigned char)1;
+  TC_look_up[0x59] = (unsigned char)1;
+  TC_look_up[0x2A] = (unsigned char)1;
+  TC_look_up[0x3A] = (unsigned char)1;
+  TC_look_up[0x4A] = (unsigned char)1;
+  TC_look_up[0x5A] = (unsigned char)1;
+  TC_look_up[0x2B] = (unsigned char)1;
+  TC_look_up[0x3B] = (unsigned char)1;
+  TC_look_up[0x4B] = (unsigned char)1;
+  TC_look_up[0x5B] = (unsigned char)1;
+  TC_look_up[0x2C] = (unsigned char)1;
+  TC_look_up[0x3C] = (unsigned char)1;
+  TC_look_up[0x4C] = (unsigned char)1;
+  TC_look_up[0x5C] = (unsigned char)1;
+  TC_look_up[0x2D] = (unsigned char)1;
+  TC_look_up[0x3D] = (unsigned char)1;
+  TC_look_up[0x4D] = (unsigned char)1;
+  TC_look_up[0x5D] = (unsigned char)1;
+  TC_look_up[0x70] = (unsigned char)1;
+  TC_look_up[0x71] = (unsigned char)1;
+  TC_look_up[0x72] = (unsigned char)1;
+  TC_look_up[0x73] = (unsigned char)1;
+  TC_look_up[0x74] = (unsigned char)1;
+  return;
+}
+
+void TC_InterruptService(void)
+{
+  unsigned char TC_address;
+  unsigned char TC_code;
+  uint16_t TC_word;
+  unsigned char par8;
+  unsigned char par4;
+  unsigned char par2;
+  unsigned char par1;
+  unsigned char tmp_error_status;
+  unsigned char tmp;
+  tmp = TC_Timer_Overflow_Flag();
+  if (! tmp) {
+    telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 1);
+    goto return_label;
+  }
+  if (TC_state == (unsigned int)SC_TM_e) goto _LOR;
+  else 
+    if (TC_state == (unsigned int)memory_dump_e) _LOR: goto return_label;
+  Clear_TC_Timer_Overflow_Flag();
+  TC_address = Read_TC_MSB();
+  TC_code = Read_TC_LSB();
+  TC_word = (unsigned short)((int)TC_address * 256 + (int)TC_code);
+  if (TC_state == (unsigned int)memory_patch_e) {
+    unsigned char tmp_0;
+    tmp_0 = isr_send_message((unsigned char)0,TC_word);
+    if ((int)tmp_0 == 9) telemetry_data.isr_send_message_error = (unsigned char)0;
+    goto return_label;
+  }
+  if (TC_state == (unsigned int)register_TM_e) {
+    TC_state = TC_handling_e;
+    ResetInterruptMask((unsigned char)0x04);
+  }
+  par8 = (unsigned char)((int)TC_address ^ (int)TC_code);
+  par4 = (unsigned char)(((int)par8 & 0x0F) ^ ((int)par8 >> 4));
+  par2 = (unsigned char)(((int)par4 & 0x03) ^ ((int)par4 >> 2));
+  par1 = (unsigned char)(((int)par2 & 0x01) ^ ((int)par2 >> 1));
+  TC_address = (unsigned char)((int)TC_address >> 1);
+  tmp_error_status = (unsigned char)0;
+  if (par1) tmp_error_status = (unsigned char)((int)tmp_error_status | 2);
+  else 
+    switch ((int)TC_look_up[TC_address]) {
+      unsigned char tmp_1;
+      case 0: tmp_error_status = (unsigned char)((int)tmp_error_status | 1);
+      break;
+      case 1: tmp_1 = isr_send_message((unsigned char)0,TC_word);
+      if ((int)tmp_1 == 9) telemetry_data.isr_send_message_error = (unsigned char)0;
+      break;
+      case 2: ;
+      if ((int)TC_address != (int)TC_code) tmp_error_status = (unsigned char)(
+                                           (int)tmp_error_status | 1);
+      else {
+        unsigned char tmp_2;
+        tmp_2 = isr_send_message((unsigned char)0,TC_word);
+        if ((int)tmp_2 == 9) telemetry_data.isr_send_message_error = (unsigned char)0;
+      }
+      break;
+      case 3: ;
+      if ((int)TC_code != 0x55) {
+        if ((int)TC_code != 0x73) {
+          if ((int)TC_code != 0x99) tmp_error_status = (unsigned char)(
+                                    (int)tmp_error_status | 1);
+          else goto _LAND_0;
+        }
+        else goto _LAND_0;
+      }
+      else {
+        _LAND_0:
+        {
+          unsigned char tmp_3;
+          tmp_3 = isr_send_message((unsigned char)0,TC_word);
+          if ((int)tmp_3 == 9) telemetry_data.isr_send_message_error = (unsigned char)0;
+        }
+      }
+      break;
+      case 4: ;
+      if ((int)TC_code & 1) goto _LOR_0;
+      else 
+        if ((int)TC_code > 0x74) _LOR_0:
+                                 tmp_error_status = (unsigned char)((int)tmp_error_status | 1);
+        else {
+          unsigned char tmp_4;
+          tmp_4 = isr_send_message((unsigned char)0,TC_word);
+          if ((int)tmp_4 == 9) telemetry_data.isr_send_message_error = (unsigned char)0;
+        }
+      break;
+    }
+  if ((int)TC_address != 0x05) goto _LOR_1;
+  else 
+    if (tmp_error_status) {
+      _LOR_1: ;
+      if (((int)telemetry_data.error_status & (1 + 2)) == 0) {
+        telemetry_data.TC_word = TC_word;
+        memcpy((void *)(& telemetry_data.TC_time_tag),
+               (void const *)(& internal_time),
+               sizeof(telemetry_data.TC_time_tag));
+      }
+    }
+  if (tmp_error_status) {
+    telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | (int)tmp_error_status);
+    Write_TM_MSB(telemetry_data.error_status);
+    Write_TM_LSB(telemetry_data.mode_status);
+    goto return_label;
+  }
+  if ((int)TC_address == 0x05) {
+    memcpy((void *)(& telemetry_data.time),(void const *)(& internal_time),
+           sizeof(telemetry_data.time));
+    telemetry_pointer = (unsigned char *)(& telemetry_data) + (int)TC_code;
+    telemetry_end_pointer = ((unsigned char *)(& telemetry_data) + 0x74) + 1;
+    Write_TM_MSB(*telemetry_pointer);
+    telemetry_pointer ++;
+    Write_TM_LSB(*telemetry_pointer);
+    telemetry_pointer ++;
+    TC_state = register_TM_e;
+    SetInterruptMask((unsigned char)0x04);
+    if (telemetry_pointer > telemetry_end_pointer) telemetry_pointer = (unsigned char *)(& telemetry_data);
+  }
+  else 
+    if ((int)TC_address == 0x06) 
+      if (((int)telemetry_data.mode_status & 3) == 0) {
+        telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 1);
+        Write_TM_MSB(telemetry_data.error_status);
+        Write_TM_LSB(telemetry_data.mode_status);
+      }
+      else {
+        telemetry_pointer = (unsigned char *)(& science_data);
+        telemetry_end_pointer = (unsigned char *)(& science_data.event[free_slot_index]) - 1;
+        science_data.length = (unsigned short)((int)((unsigned short)(
+                                               (telemetry_end_pointer - telemetry_pointer) + 1)) / 2);
+        Write_TM_MSB(*telemetry_pointer);
+        telemetry_pointer ++;
+        Write_TM_LSB(*telemetry_pointer);
+        telemetry_pointer ++;
+        TC_state = SC_TM_e;
+        SetInterruptMask((unsigned char)0x04);
+      }
+    else 
+      if ((int)TC_address == 0x60) {
+        if (TC_state != (unsigned int)read_memory_e) goto _LOR_2;
+        else 
+          if (((unsigned int)address_MSB << 8) + (unsigned int)TC_code > (unsigned int)(
+              (0xFEFF - 32) + 1)) {
+            _LOR_2:
+            {
+              telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 1);
+              Write_TM_MSB(telemetry_data.error_status);
+              Write_TM_LSB(telemetry_data.mode_status);
+              TC_state = TC_handling_e;
+            }
+          }
+          else {
+            telemetry_pointer = Data_Pointer((unsigned short)((int)address_MSB * 256 + (int)TC_code));
+            telemetry_end_pointer = telemetry_pointer + 32;
+            Write_TM_MSB(telemetry_data.error_status);
+            Write_TM_LSB(telemetry_data.mode_status);
+            read_memory_checksum = (unsigned char)((int)tmp_error_status ^ (int)telemetry_data.mode_status);
+            TC_state = memory_dump_e;
+            SetInterruptMask((unsigned char)0x04);
+          }
+      }
+      else {
+        Write_TM_MSB(telemetry_data.error_status);
+        Write_TM_LSB(telemetry_data.mode_status);
+      }
+  return_label: return;
+}
+
+unsigned char PatchExecCommandOk(unsigned char execution_command)
+{
+  unsigned char __retres;
+  switch ((int)execution_command) {
+    case 0: case 0x09: case 0x37: case 0x5A: __retres = (unsigned char)1;
+    goto return_label;
+  }
+  __retres = (unsigned char)0;
+  return_label: return __retres;
+}
+
+void MemoryPatch(telecommand_t *command)
+{
+  memory_patch_variables_t patch_info;
+  data_address_t address;
+  uint_least8_t i;
+  unsigned char TC_msb;
+  TC_msb = (unsigned char)((int)command->TC_word >> 8);
+  write_checksum = (unsigned char)((int)write_checksum ^ (int)TC_msb);
+  if (memory_buffer_index < (uint_least8_t)32) {
+    write_checksum = (unsigned char)((int)write_checksum ^ (int)command->TC_code);
+    memory_transfer_buffer[memory_buffer_index] = TC_msb;
+    memory_buffer_index ++;
+    memory_transfer_buffer[memory_buffer_index] = command->TC_code;
+    memory_buffer_index ++;
+    TC_timeout = (unsigned char)100;
+  }
+  else {
+    if ((int)write_checksum == (int)command->TC_code) {
+      address = (unsigned short)((unsigned int)address_MSB * (unsigned int)256 + (unsigned int)address_LSB);
+      switch (memory_type) {
+        case (memory_type_t)data_e: ;
+        if ((int)address <= (0xFEFF - 32) + 1) {
+          i = (unsigned int)0;
+          while (i < (uint_least8_t)32) {
+            Set_Data_Byte((unsigned short)((uint_least8_t)address + i),
+                          memory_transfer_buffer[i]);
+            i ++;
+          }
+        }
+        else Set_TC_Error();
+        break;
+        case (memory_type_t)code_e: ;
+        if ((int)address >= 0x1000) {
+          if ((int)address <= (0x7FFF - 32) + 1) {
+            unsigned char tmp;
+            tmp = PatchExecCommandOk(TC_msb);
+            if (tmp) {
+              code_not_patched = (unsigned char)0;
+              patch_info.source = memory_transfer_buffer;
+              patch_info.destination = address;
+              patch_info.data_amount = (unsigned int)32;
+              patch_info.execution_command = TC_msb;
+              PatchCode(& patch_info);
+            }
+            else goto _LAND_0;
+          }
+          else goto _LAND_0;
+        }
+        else _LAND_0: Set_TC_Error();
+        break;
+      }
+    }
+    else SetModeStatusError((unsigned char)0x10);
+    TC_state = TC_handling_e;
+  }
+  return;
+}
+
+void WriteMemory(telecommand_t *command)
+{
+  write_checksum = (unsigned char)((int)write_checksum ^ (((int)command->TC_word >> 8) ^ (int)command->TC_code));
+  if ((int)command->TC_address == 0x6F) {
+    if (memory_type == (unsigned int)code_e) goto _LOR; else goto _LAND_0;
+  }
+  else {
+    _LAND_0: ;
+    if ((int)command->TC_address == 0x6A) {
+      if (memory_type == (unsigned int)data_e) {
+        _LOR:
+        {
+          TC_state = memory_patch_e;
+          address_LSB = command->TC_code;
+          memory_buffer_index = (unsigned int)0;
+          TC_timeout = (unsigned char)100;
+        }
+      }
+      else goto _LAND;
+    }
+    else {
+      _LAND: {
+               TC_state = TC_handling_e;
+               Set_TC_Error();
+             }
+    }
+  }
+  return;
+}
+
+void UpdateTarget(telecommand_t *command)
+{
+  sensor_unit_t SU_setting;
+  trigger_set_t new_threshold;
+  dpu_time_t new_time;
+  sensor_index_t SU_index;
+  SU_index = (unsigned int)(((int)command->TC_address >> 4) - 2);
+  switch ((int)command->TC_address) {
+    DEBIE_mode_t tmp;
+    case 0x70: case 0x71: case 0x72: case 0x73: case 0x74:
+    telemetry_data.coefficient[(int)command->TC_address & 0x07] = command->TC_code;
+    break;
+    case 0x29: case 0x39: case 0x49: case 0x59:
+    (SU_config[SU_index])->plasma_1_plus_to_minus_max_time = command->TC_code;
+    break;
+    case 0x2A: case 0x3A: case 0x4A: case 0x5A:
+    (SU_config[SU_index])->plasma_1_plus_to_piezo_min_time = command->TC_code;
+    break;
+    case 0x2B: case 0x3B: case 0x4B: case 0x5B:
+    (SU_config[SU_index])->plasma_1_plus_to_piezo_max_time = command->TC_code;
+    break;
+    case 0x2C: case 0x3C: case 0x4C: case 0x5C:
+    (SU_config[SU_index])->plasma_1_minus_to_piezo_min_time = command->TC_code;
+    break;
+    case 0x2D: case 0x3D: case 0x4D: case 0x5D:
+    (SU_config[SU_index])->plasma_1_minus_to_piezo_max_time = command->TC_code;
+    break;
+    case 0x24: case 0x34: case 0x44: case 0x54:
+    (SU_config[SU_index])->plasma_1_plus_classification = command->TC_code;
+    break;
+    case 0x25: case 0x35: case 0x45: case 0x55:
+    (SU_config[SU_index])->plasma_1_minus_classification = command->TC_code;
+    break;
+    case 0x28: case 0x38: case 0x48: case 0x58:
+    (SU_config[SU_index])->plasma_2_plus_classification = command->TC_code;
+    break;
+    case 0x26: case 0x36: case 0x46: case 0x56:
+    (SU_config[SU_index])->piezo_1_classification = command->TC_code;
+    break;
+    case 0x27: case 0x37: case 0x47: case 0x57:
+    (SU_config[SU_index])->piezo_2_classification = command->TC_code;
+    break;
+    case 0x03: ClearErrorStatus();
+    Clear_RTX_Errors();
+    ClearSoftwareError();
+    ClearModeStatusError();
+    Clear_SU_Error();
+    break;
+    case 0x0F: new_time = (unsigned int)command->TC_code << 24;
+    memcpy((void *)(& internal_time),(void const *)(& new_time),
+           sizeof(internal_time));
+    TC_timeout = (unsigned char)100;
+    break;
+    case 0x0E: ;
+    if ((int)previous_TC.TC_address == 0x0F) {
+      memcpy((void *)(& new_time),(void const *)(& internal_time),
+             sizeof(new_time));
+      new_time &= 0xFF000000;
+      new_time |= (unsigned int)command->TC_code << 16;
+      memcpy((void *)(& internal_time),(void const *)(& new_time),
+             sizeof(internal_time));
+      TC_timeout = (unsigned char)100;
+    }
+    else Set_TC_Error();
+    break;
+    case 0x0D: ;
+    if ((int)previous_TC.TC_address == 0x0E) {
+      memcpy((void *)(& new_time),(void const *)(& internal_time),
+             sizeof(new_time));
+      new_time &= 0xFFFF0000;
+      new_time |= (unsigned int)command->TC_code << 8;
+      memcpy((void *)(& internal_time),(void const *)(& new_time),
+             sizeof(internal_time));
+      TC_timeout = (unsigned char)100;
+    }
+    else Set_TC_Error();
+    break;
+    case 0x0C: ;
+    if ((int)previous_TC.TC_address == 0x0D) {
+      memcpy((void *)(& new_time),(void const *)(& internal_time),
+             sizeof(new_time));
+      new_time &= 0xFFFFFF00;
+      new_time |= (unsigned int)command->TC_code;
+      memcpy((void *)(& internal_time),(void const *)(& new_time),
+             sizeof(internal_time));
+    }
+    else Set_TC_Error();
+    break;
+    case 0x0A: telemetry_data.watchdog_failures = (unsigned char)0;
+    break;
+    case 0x0B: telemetry_data.checksum_failures = (unsigned char)0;
+    break;
+    case 0x20: case 0x30: case 0x40: case 0x50: tmp = GetMode();
+    if ((int)tmp != 2) {
+      SU_setting.SU_number = SU_index + (sensor_index_t)1;
+      switch ((int)command->TC_code) {
+        case 0x55:
+        Start_SU_SwitchingOn(SU_index,& SU_setting.execution_result);
+        break;
+        case 0x73: SetSensorUnitOff(SU_index,& SU_setting.execution_result);
+        break;
+        case 0x99: SU_setting.SU_state = self_test_mon_e;
+        SU_setting.expected_source_state = on_e;
+        Switch_SU_State(& SU_setting);
+        break;
+      }
+      if ((int)SU_setting.execution_result == 0) Set_TC_Error();
+    }
+    else Set_TC_Error();
+    break;
+    case 0x21: new_threshold.sensor_unit = (unsigned int)1;
+    new_threshold.channel = (unsigned int)0;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_1.plasma_1_plus_threshold = command->TC_code;
+    break;
+    case 0x31: new_threshold.sensor_unit = (unsigned int)2;
+    new_threshold.channel = (unsigned int)0;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_2.plasma_1_plus_threshold = command->TC_code;
+    break;
+    case 0x41: new_threshold.sensor_unit = (unsigned int)3;
+    new_threshold.channel = (unsigned int)0;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_3.plasma_1_plus_threshold = command->TC_code;
+    break;
+    case 0x51: new_threshold.sensor_unit = (unsigned int)4;
+    new_threshold.channel = (unsigned int)0;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_4.plasma_1_plus_threshold = command->TC_code;
+    break;
+    case 0x22: new_threshold.sensor_unit = (unsigned int)1;
+    new_threshold.channel = (unsigned int)1;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_1.plasma_1_minus_threshold = command->TC_code;
+    break;
+    case 0x32: new_threshold.sensor_unit = (unsigned int)2;
+    new_threshold.channel = (unsigned int)1;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_2.plasma_1_minus_threshold = command->TC_code;
+    break;
+    case 0x42: new_threshold.sensor_unit = (unsigned int)3;
+    new_threshold.channel = (unsigned int)1;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_3.plasma_1_minus_threshold = command->TC_code;
+    break;
+    case 0x52: new_threshold.sensor_unit = (unsigned int)4;
+    new_threshold.channel = (unsigned int)1;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_4.plasma_1_minus_threshold = command->TC_code;
+    break;
+    case 0x23: new_threshold.sensor_unit = (unsigned int)1;
+    new_threshold.channel = (unsigned int)5;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_1.piezo_threshold = command->TC_code;
+    break;
+    case 0x33: new_threshold.sensor_unit = (unsigned int)2;
+    new_threshold.channel = (unsigned int)5;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_2.piezo_threshold = command->TC_code;
+    break;
+    case 0x43: new_threshold.sensor_unit = (unsigned int)3;
+    new_threshold.channel = (unsigned int)5;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_3.piezo_threshold = command->TC_code;
+    break;
+    case 0x53: new_threshold.sensor_unit = (unsigned int)4;
+    new_threshold.channel = (unsigned int)5;
+    new_threshold.level = command->TC_code;
+    SetTriggerLevel(& new_threshold);
+    telemetry_data.sensor_unit_4.piezo_threshold = command->TC_code;
+    break;
+    default: break;
+  }
+  return;
+}
+
+void ExecuteCommand(telecommand_t *command)
+{
+  sensor_unit_t SU_setting;
+  unsigned char error_flag;
+  sensor_number_t i;
+  switch ((int)command->TC_address) {
+    DEBIE_mode_t tmp;
+    DEBIE_mode_t tmp_0;
+    DEBIE_mode_t tmp_3;
+    DEBIE_mode_t tmp_4;
+    case 0x06: break;
+    case 0x05: break;
+    case 0x1F: address_MSB = command->TC_code;
+    TC_state = read_memory_e;
+    break;
+    case 0x10: tmp = GetMode();
+    if ((int)tmp == 1) {
+      address_MSB = command->TC_code;
+      memory_type = code_e;
+      TC_timeout = (unsigned char)100;
+      write_checksum = (unsigned char)(((int)command->TC_word >> 8) ^ (int)command->TC_code);
+      TC_state = write_memory_e;
+    }
+    else Set_TC_Error();
+    break;
+    case 0x15: tmp_0 = GetMode();
+    if ((int)tmp_0 == 1) {
+      address_MSB = command->TC_code;
+      memory_type = data_e;
+      TC_timeout = (unsigned char)100;
+      write_checksum = (unsigned char)(((int)command->TC_word >> 8) ^ (int)command->TC_code);
+      TC_state = write_memory_e;
+    }
+    else Set_TC_Error();
+    break;
+    case 0x60: break;
+    case 0x6F: case 0x6A: ;
+    if (TC_state != (unsigned int)write_memory_e) Set_TC_Error();
+    break;
+    case 0x09: Reboot(soft_reset_e);
+    break;
+    case 0x01: error_flag = (unsigned char)0;
+    i = (unsigned int)1;
+    while (i <= (sensor_number_t)4) {
+      {
+        SU_state_t tmp_1;
+        tmp_1 = ReadSensorUnit((unsigned char)i);
+        if (tmp_1 == (unsigned int)start_switching_e) goto _LOR;
+        else {
+          SU_state_t tmp_2;
+          tmp_2 = ReadSensorUnit((unsigned char)i);
+          if (tmp_2 == (unsigned int)switching_e) _LOR:
+                                                  error_flag = (unsigned char)1;
+        }
+      }
+      i ++;
+    }
+    tmp_3 = GetMode();
+    if ((int)tmp_3 == 1) {
+      if ((int)error_flag == 0) {
+        SU_setting.SU_state = acquisition_e;
+        SU_setting.expected_source_state = on_e;
+        SU_setting.SU_number = (unsigned int)1;
+        Switch_SU_State(& SU_setting);
+        SU_setting.SU_number = (unsigned int)2;
+        Switch_SU_State(& SU_setting);
+        SU_setting.SU_number = (unsigned int)3;
+        Switch_SU_State(& SU_setting);
+        SU_setting.SU_number = (unsigned int)4;
+        Switch_SU_State(& SU_setting);
+        ResetDelayCounters();
+        SetMode((unsigned char)2);
+      }
+      else goto _LAND;
+    }
+    else _LAND: Set_TC_Error();
+    break;
+    case 0x02: tmp_4 = GetMode();
+    if ((int)tmp_4 == 2) {
+      SU_setting.SU_state = on_e;
+      SU_setting.expected_source_state = acquisition_e;
+      SU_setting.SU_number = (unsigned int)1;
+      Switch_SU_State(& SU_setting);
+      SU_setting.SU_number = (unsigned int)2;
+      Switch_SU_State(& SU_setting);
+      SU_setting.SU_number = (unsigned int)3;
+      Switch_SU_State(& SU_setting);
+      SU_setting.SU_number = (unsigned int)4;
+      Switch_SU_State(& SU_setting);
+      SetMode((unsigned char)1);
+    }
+    else Set_TC_Error();
+    break;
+    default: UpdateTarget(command);
+  }
+  return;
+}
+
+static incoming_mail_t TC_mail;
+static telecommand_t received_command;
+void InitTelecommandTask(void)
+{
+  InitTC_LookUp();
+  TC_state = TC_handling_e;
+  TC_mail.mailbox_number = (unsigned char)0;
+  TC_mail.message = & received_command.TC_word;
+  previous_TC.TC_word = (unsigned short)0;
+  previous_TC.TC_address = (unsigned char)0x00;
+  previous_TC.TC_code = (unsigned char)0;
+  DisableInterrupt((unsigned char)2);
+  EnableInterrupt((unsigned char)0);
+  return;
+}
+
+void HandleTelecommand(void)
+{
+  TC_mail.timeout = TC_timeout;
+  WaitMail(& TC_mail);
+  TC_timeout = (unsigned char)0;
+  if ((int)TC_mail.execution_result == 4) {
+    previous_TC.TC_word = (unsigned short)0;
+    previous_TC.TC_address = (unsigned char)0x00;
+    previous_TC.TC_code = (unsigned char)0;
+    if (TC_state != (unsigned int)TC_handling_e) Set_TC_Error();
+    TC_state = TC_handling_e;
+  }
+  else 
+    if ((int)TC_mail.execution_result == 1) {
+      received_command.TC_address = (unsigned char)((int)received_command.TC_word >> 9);
+      received_command.TC_code = (unsigned char)((int)received_command.TC_word & 255);
+      if (TC_state == (unsigned int)SC_TM_e) goto _LOR;
+      else 
+        if (TC_state == (unsigned int)memory_dump_e) {
+          _LOR: ;
+          if ((int)received_command.TC_word == 0xFFFF) {
+            DisableInterrupt((unsigned char)2);
+            if (TC_state == (unsigned int)SC_TM_e) ClearEvents();
+            TC_state = TC_handling_e;
+          }
+          else goto _LAND;
+        }
+        else 
+          _LAND:
+          switch (TC_state) {
+            case (TC_state_t)read_memory_e: ;
+            if ((int)received_command.TC_address != 0x60) {
+              Set_TC_Error();
+              TC_state = TC_handling_e;
+            }
+            break;
+            case (TC_state_t)write_memory_e: WriteMemory(& received_command);
+            break;
+            case (TC_state_t)memory_patch_e: MemoryPatch(& received_command);
+            break;
+            case (TC_state_t)TC_handling_e:
+            ExecuteCommand(& received_command);
+            break;
+          }
+      previous_TC = received_command;
+    }
+  return;
+}
+
+void TelecommandExecutionTask(void)
+{
+  InitTelecommandTask();
+  while (1) HandleTelecommand();
+  return;
+}
+
+void Set_TC_Error(void)
+{
+  telemetry_data.error_status = (unsigned char)((int)telemetry_data.error_status | 1);
+  return;
+}
+
+void (*TC_task)(void) = & TelecommandExecutionTask;
+telemetry_data_t telemetry_data;
+science_data_file_t science_data;
+uint_least16_t max_events;
+uint_least8_t event_queue_length;
+unsigned char *telemetry_pointer;
+unsigned char *telemetry_end_pointer;
+unsigned int free_slot_index;
+unsigned char read_memory_checksum;
+event_record_t event_queue[10];
+event_record_t *GetFreeRecord(void)
+{
+  event_record_t *__retres;
+  if (event_queue_length < (uint_least8_t)10) {
+    __retres = & event_queue[event_queue_length];
+    goto return_label;
+  }
+  else {
+    __retres = & event_queue[10 - 1];
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+void TM_InterruptService(void)
+{
+  unsigned char tm_byte;
+  if (telemetry_pointer == (unsigned char *)(& telemetry_data.time)) 
+    memcpy((void *)(& telemetry_data.time),(void const *)(& internal_time),
+           sizeof(telemetry_data.time));
+  if (telemetry_pointer < telemetry_end_pointer) {
+    tm_byte = *telemetry_pointer;
+    Write_TM_MSB(tm_byte);
+    read_memory_checksum = (unsigned char)((int)read_memory_checksum ^ (int)tm_byte);
+    telemetry_pointer ++;
+    tm_byte = *telemetry_pointer;
+    Write_TM_LSB(tm_byte);
+    read_memory_checksum = (unsigned char)((int)read_memory_checksum ^ (int)tm_byte);
+    telemetry_pointer ++;
+  }
+  else 
+    if (TC_state == (unsigned int)register_TM_e) {
+      telemetry_pointer = (unsigned char *)(& telemetry_data);
+      Write_TM_MSB(*telemetry_pointer);
+      telemetry_pointer ++;
+      Write_TM_LSB(*telemetry_pointer);
+      telemetry_pointer ++;
+    }
+    else 
+      if (TC_state == (unsigned int)memory_dump_e) {
+        unsigned char tmp;
+        Write_TM_MSB((unsigned char)0);
+        Write_TM_LSB(read_memory_checksum);
+        tmp = isr_send_message((unsigned char)0,(unsigned short)0xFFFF);
+        if ((int)tmp == 9) telemetry_data.isr_send_message_error = (unsigned char)0;
+      }
+      else {
+        unsigned char tmp_0;
+        tmp_0 = isr_send_message((unsigned char)0,(unsigned short)0xFFFF);
+        if ((int)tmp_0 == 9) telemetry_data.isr_send_message_error = (unsigned char)0;
+      }
+  return;
+}
+
+dpu_time_t GetElapsedTime(unsigned int event_number)
+{
+  dpu_time_t hit_time;
+  memcpy((void *)(& hit_time),
+         (void const *)(& science_data.event[event_number].hit_time),
+         sizeof(hit_time));
+  return hit_time;
+}
+
+unsigned int FindMinQualityRecord(void)
+{
+  unsigned int min_quality_number;
+  unsigned int min_quality_location;
+  dpu_time_t min_time;
+  dpu_time_t time;
+  uint_least16_t i;
+  min_time = GetElapsedTime((unsigned int)0);
+  min_quality_number = (unsigned int)science_data.event[0].quality_number;
+  min_quality_location = (unsigned int)0;
+  i = (unsigned int)1;
+  while (i < max_events) {
+    time = GetElapsedTime(i);
+    if ((unsigned int)science_data.event[i].quality_number < min_quality_number) {
+      min_time = time;
+      min_quality_number = (unsigned int)science_data.event[i].quality_number;
+      min_quality_location = i;
+    }
+    else 
+      if ((unsigned int)science_data.event[i].quality_number == min_quality_number) 
+        if (time < min_time) {
+          min_time = time;
+          min_quality_location = i;
+        }
+    i ++;
+  }
+  return min_quality_location;
+}
+
+void IncrementCounters(sensor_index_t sensor_unit,
+                       unsigned char classification)
+{
+  unsigned char counter;
+  unsigned char new_checksum;
+  if ((int)telemetry_data.SU_hits[sensor_unit] < 0xFFFF) telemetry_data.SU_hits[sensor_unit] = (uint16_t)(
+                                                         (int)telemetry_data.SU_hits[sensor_unit] + 1);
+  if ((int)science_data.event_counter[sensor_unit][classification] < 0xFF) {
+    counter = science_data.event_counter[sensor_unit][classification];
+    new_checksum = (unsigned char)((int)science_data.counter_checksum ^ (int)counter);
+    counter = (unsigned char)((int)counter + 1);
+    new_checksum = (unsigned char)((int)new_checksum ^ (int)counter);
+    science_data.event_counter[sensor_unit][classification] = counter;
+    science_data.counter_checksum = new_checksum;
+  }
+  return;
+}
+
+void RecordEvent(void)
+{
+  uint_least16_t record_index;
+  record_index = free_slot_index;
+  if (record_index >= max_events) 
+    if (TC_state != (unsigned int)SC_TM_e) record_index = FindMinQualityRecord
+                                           ();
+  if (TC_state == (unsigned int)SC_TM_e) {
+    if (event_queue_length < (uint_least8_t)10) event_queue_length ++;
+  }
+  else {
+    /*@ widen_hints global:free_slot_index, 1261; */
+    if (free_slot_index < max_events) {
+      record_index = free_slot_index;
+      science_data.event[record_index].quality_number = (unsigned char)0;
+      free_slot_index ++;
+    }
+    IncrementCounters((unsigned int)((int)event_queue[0].SU_number - 1),
+                      event_queue[0].classification);
+    if ((int)event_queue[0].quality_number >= (int)science_data.event[record_index].quality_number) 
+      science_data.event[record_index] = event_queue[0];
+  }
+  return;
+}
+
+void ClearEvents(void)
+{
+  uint_least8_t i;
+  uint_least8_t j;
+  i = (unsigned int)0;
+  while (i < (uint_least8_t)4) {
+    telemetry_data.SU_hits[i] = (unsigned short)0;
+    j = (unsigned int)0;
+    while (j < (uint_least8_t)10) {
+      science_data.event_counter[i][j] = (unsigned char)0;
+      j ++;
+    }
+    i ++;
+  }
+  i = (unsigned int)0;
+  while (i < event_queue_length) {
+    science_data.event[i] = event_queue[i];
+    IncrementCounters((unsigned int)((int)event_queue[i].SU_number - 1),
+                      event_queue[i].classification);
+    i ++;
+  }
+  free_slot_index = event_queue_length;
+  event_queue_length = (unsigned int)0;
+  science_data.counter_checksum = (unsigned char)0;
+  science_data.not_used = (unsigned char)0;
+  return;
+}
+
+void ResetEventQueueLength(void)
+{
+  event_queue_length = (unsigned int)0;
+  return;
+}
+
+unsigned char EA;
+void CreateTask(task_info_t *new_task)
+{
+  switch ((int)new_task->rtx_task_number) {
+    case 1: InitTelecommandTask();
+    break;
+    case 2: InitAcquisitionTask();
+    break;
+    case 3: InitHitTriggerTask();
+    break;
+    default: ;
+    break;
+  }
+  return;
+}
+
+void WaitInterval(unsigned char time)
+{
+  return;
+}
+
+void WaitTimeout(unsigned char time)
+{
+  return;
+}
+
+void SetTimeSlice(unsigned int time_slice)
+{
+  return;
+}
+
+static unsigned int ad_converting = (unsigned int)0;
+void ShortDelay(uint_least8_t delay_loops)
+{
+  ad_converting = (unsigned int)0;
+  return;
+}
+
+unsigned char isr_send_message(unsigned char mailbox, uint16_t message)
+{
+  unsigned char __retres;
+  SendTaskMail(mailbox,message,(unsigned char)0);
+  __retres = (unsigned char)8;
+  return __retres;
+}
+
+void AttachInterrupt(unsigned char ISR_VectorNumber)
+{
+  return;
+}
+
+void EnableInterrupt(unsigned char ISR_VectorNumber)
+{
+  return;
+}
+
+void DisableInterrupt(unsigned char ISR_VectorNumber)
+{
+  return;
+}
+
+signed char SetInterruptMask(unsigned char ISR_MaskNumber)
+{
+  signed char __retres;
+  __retres = (signed char)0;
+  return __retres;
+}
+
+signed char ResetInterruptMask(unsigned char ISR_MaskNumber)
+{
+  signed char __retres;
+  __retres = (signed char)0;
+  return __retres;
+}
+
+void WaitInterrupt(unsigned char ISR_VectorNumber, unsigned char timer)
+{
+  return;
+}
+
+static uint16_t mail_message[8];
+static int mail_count[8] = {0, 0, 0, 0, 0, 0, 0, 0};
+static int mail_overflows = 0;
+void SendTaskMail(unsigned char mailbox, uint16_t message,
+                  unsigned char timeout)
+{
+  if (mail_count[mailbox] == 0) mail_message[mailbox] = message;
+  else mail_overflows ++;
+  (mail_count[mailbox]) ++;
+  return;
+}
+
+void WaitMail(incoming_mail_t *message)
+{
+  if (mail_count[message->mailbox_number] > 0) {
+    message->wait_result = (signed char)1;
+    message->execution_result = (signed char)1;
+    *(message->message) = mail_message[message->mailbox_number];
+    (mail_count[message->mailbox_number]) --;
+  }
+  else {
+    message->wait_result = (signed char)4;
+    message->execution_result = (signed char)4;
+    *(message->message) = (unsigned short)0;
+  }
+  return;
+}
+
+static void FlushMail(unsigned char mailbox)
+{
+  mail_count[mailbox] = 0;
+  return;
+}
+
+static unsigned int check_current_errors = (unsigned int)0;
+unsigned char Check_Current(unsigned char bits)
+{
+  unsigned char val;
+  switch ((int)bits) {
+    case 3: val = (unsigned char)1;
+    break;
+    case 12: val = (unsigned char)4;
+    break;
+    case 48: val = (unsigned char)16;
+    break;
+    case 192: val = (unsigned char)64;
+    break;
+    default: val = (unsigned char)0;
+    break;
+  }
+  if (check_current_errors > (unsigned int)0) {
+    val = (unsigned char)(~ ((int)val));
+    check_current_errors --;
+  }
+  return val;
+}
+
+void Reboot(reset_class_t boot_type)
+{
+  if (boot_type == (unsigned int)checksum_reset_e) reference_checksum = code_checksum;
+  return;
+}
+
+unsigned char TestMemBits(data_address_t address)
+{
+  unsigned char __retres;
+  __retres = (unsigned char)0;
+  return __retres;
+}
+
+unsigned char TestMemData(data_address_t start, uint_least8_t bytes)
+{
+  unsigned char __retres;
+  __retres = (unsigned char)0;
+  return __retres;
+}
+
+unsigned char TestMemSeq(data_address_t start, uint_least8_t bytes)
+{
+  unsigned char __retres;
+  __retres = (unsigned char)0;
+  return __retres;
+}
+
+static unsigned char tc_msb;
+static unsigned char tc_lsb;
+static uint16_t tc_word;
+unsigned char Read_TC_MSB(void)
+{
+  return tc_msb;
+}
+
+unsigned char Read_TC_LSB(void)
+{
+  return tc_lsb;
+}
+
+static unsigned char tm_msb;
+static unsigned char tm_lsb;
+void Write_TM_LSB(unsigned char value)
+{
+  tm_lsb = value;
+  return;
+}
+
+void Write_TM_MSB(unsigned char value)
+{
+  tm_msb = value;
+  return;
+}
+
+static unsigned char tc_timer_overflow = (unsigned char)1;
+unsigned char TC_Timer_Overflow_Flag(void)
+{
+  return tc_timer_overflow;
+}
+
+void Clear_TC_Timer_Overflow_Flag(void)
+{
+  tc_timer_overflow = (unsigned char)0;
+  return;
+}
+
+void Set_TC_Timer_Overflow_Flag(void)
+{
+  tc_timer_overflow = (unsigned char)1;
+  return;
+}
+
+static ad_limit_t ad_limit[0x28] =
+  {{.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff},
+   {.min = (unsigned short)0, .max = (unsigned short)0xffff}};
+void Set_AD_Unlimited(void)
+{
+  uint_least8_t c;
+  c = (unsigned int)0;
+  while (c < (uint_least8_t)0x28) {
+    ad_limit[c].min = (unsigned short)0;
+    ad_limit[c].max = (unsigned short)0xffff;
+    c ++;
+  }
+  return;
+}
+
+void Set_AD_Nominal(void)
+{
+  ad_limit[16].min = (unsigned short)0xba00;
+  ad_limit[16].max = (unsigned short)0xe4ff;
+  ad_limit[17].min = (unsigned short)0xba00;
+  ad_limit[17].max = (unsigned short)0xe4ff;
+  ad_limit[20].min = (unsigned short)0x0d00;
+  ad_limit[20].max = (unsigned short)0x22ff;
+  ad_limit[21].min = (unsigned short)0x0d00;
+  ad_limit[21].max = (unsigned short)0x22ff;
+  ad_limit[18].min = (unsigned short)0xa800;
+  ad_limit[18].max = (unsigned short)0xe3ff;
+  ad_limit[22].min = (unsigned short)0x0e00;
+  ad_limit[22].max = (unsigned short)0x2cff;
+  ad_limit[19].min = (unsigned short)0xba00;
+  ad_limit[19].max = (unsigned short)0xe4ff;
+  ad_limit[5].min = (unsigned short)0x0000;
+  ad_limit[5].max = (unsigned short)0xfaff;
+  ad_limit[6].min = (unsigned short)0x0000;
+  ad_limit[6].max = (unsigned short)0xf4ff;
+  ad_limit[13].min = (unsigned short)0x0000;
+  ad_limit[13].max = (unsigned short)0xfaff;
+  ad_limit[14].min = (unsigned short)0x0000;
+  ad_limit[14].max = (unsigned short)0xf4ff;
+  ad_limit[29].min = (unsigned short)0x0000;
+  ad_limit[29].max = (unsigned short)0xfaff;
+  ad_limit[30].min = (unsigned short)0x0000;
+  ad_limit[30].max = (unsigned short)0xf4ff;
+  ad_limit[37].min = (unsigned short)0x0000;
+  ad_limit[37].max = (unsigned short)0xfaff;
+  ad_limit[38].min = (unsigned short)0x0000;
+  ad_limit[38].max = (unsigned short)0xf4ff;
+  return;
+}
+
+static int ad_conv_timer;
+static int ad_conv_delay[6];
+static unsigned int ad_conv_num = (unsigned int)0;
+static unsigned char ad_random[319] =
+  {(unsigned char)0x6a,
+   (unsigned char)0xde,
+   (unsigned char)0xba,
+   (unsigned char)0x90,
+   (unsigned char)0xf2,
+   (unsigned char)0x18,
+   (unsigned char)0x48,
+   (unsigned char)0xf3,
+   (unsigned char)0x9e,
+   (unsigned char)0x2b,
+   (unsigned char)0x31,
+   (unsigned char)0xdb,
+   (unsigned char)0xe0,
+   (unsigned char)0x7e,
+   (unsigned char)0xc6,
+   (unsigned char)0x18,
+   (unsigned char)0x43,
+   (unsigned char)0xd0,
+   (unsigned char)0xd7,
+   (unsigned char)0x6e,
+   (unsigned char)0xbc,
+   (unsigned char)0xee,
+   (unsigned char)0x93,
+   (unsigned char)0x9a,
+   (unsigned char)0x06,
+   (unsigned char)0xb2,
+   (unsigned char)0x3d,
+   (unsigned char)0x1f,
+   (unsigned char)0xc1,
+   (unsigned char)0x51,
+   (unsigned char)0x66,
+   (unsigned char)0x69,
+   (unsigned char)0xbf,
+   (unsigned char)0x1c,
+   (unsigned char)0x9c,
+   (unsigned char)0xfc,
+   (unsigned char)0x9b,
+   (unsigned char)0xf7,
+   (unsigned char)0xf2,
+   (unsigned char)0xd0,
+   (unsigned char)0xf4,
+   (unsigned char)0x26,
+   (unsigned char)0x60,
+   (unsigned char)0x69,
+   (unsigned char)0xc4,
+   (unsigned char)0xd9,
+   (unsigned char)0xdb,
+   (unsigned char)0xd4,
+   (unsigned char)0xe7,
+   (unsigned char)0x2b,
+   (unsigned char)0x8a,
+   (unsigned char)0xea,
+   (unsigned char)0x9f,
+   (unsigned char)0xab,
+   (unsigned char)0x40,
+   (unsigned char)0x3e,
+   (unsigned char)0xc3,
+   (unsigned char)0xd8,
+   (unsigned char)0x21,
+   (unsigned char)0x61,
+   (unsigned char)0x3b,
+   (unsigned char)0x0f,
+   (unsigned char)0xc1,
+   (unsigned char)0x49,
+   (unsigned char)0xd3,
+   (unsigned char)0x09,
+   (unsigned char)0x9a,
+   (unsigned char)0x4d,
+   (unsigned char)0x33,
+   (unsigned char)0x52,
+   (unsigned char)0x7b,
+   (unsigned char)0x8e,
+   (unsigned char)0x7e,
+   (unsigned char)0x7b,
+   (unsigned char)0x6a,
+   (unsigned char)0x88,
+   (unsigned char)0x4f,
+   (unsigned char)0x84,
+   (unsigned char)0xa2,
+   (unsigned char)0xb4,
+   (unsigned char)0x83,
+   (unsigned char)0xd9,
+   (unsigned char)0xba,
+   (unsigned char)0x79,
+   (unsigned char)0x7d,
+   (unsigned char)0x8f,
+   (unsigned char)0xdf,
+   (unsigned char)0xb2,
+   (unsigned char)0x8c,
+   (unsigned char)0x86,
+   (unsigned char)0x77,
+   (unsigned char)0x4f,
+   (unsigned char)0x29,
+   (unsigned char)0x86,
+   (unsigned char)0xd4,
+   (unsigned char)0x8b,
+   (unsigned char)0x11,
+   (unsigned char)0x65,
+   (unsigned char)0x55,
+   (unsigned char)0x74,
+   (unsigned char)0xf4,
+   (unsigned char)0x76,
+   (unsigned char)0x83,
+   (unsigned char)0x88,
+   (unsigned char)0xd6,
+   (unsigned char)0xa6,
+   (unsigned char)0xa7,
+   (unsigned char)0x33,
+   (unsigned char)0x22,
+   (unsigned char)0xa3,
+   (unsigned char)0x2e,
+   (unsigned char)0x88,
+   (unsigned char)0x06,
+   (unsigned char)0x54,
+   (unsigned char)0x90,
+   (unsigned char)0x37,
+   (unsigned char)0xd5,
+   (unsigned char)0xdb,
+   (unsigned char)0xce,
+   (unsigned char)0x7c,
+   (unsigned char)0x0b,
+   (unsigned char)0xd1,
+   (unsigned char)0xe1,
+   (unsigned char)0xc0,
+   (unsigned char)0x7d,
+   (unsigned char)0xa5,
+   (unsigned char)0x0b,
+   (unsigned char)0xc9,
+   (unsigned char)0xaf,
+   (unsigned char)0xe3,
+   (unsigned char)0x75,
+   (unsigned char)0xc5,
+   (unsigned char)0xf5,
+   (unsigned char)0xaf,
+   (unsigned char)0xaa,
+   (unsigned char)0xe2,
+   (unsigned char)0x2a,
+   (unsigned char)0xff,
+   (unsigned char)0x6e,
+   (unsigned char)0x84,
+   (unsigned char)0x0e,
+   (unsigned char)0x04,
+   (unsigned char)0x10,
+   (unsigned char)0xf0,
+   (unsigned char)0x78,
+   (unsigned char)0xdc,
+   (unsigned char)0x96,
+   (unsigned char)0x3d,
+   (unsigned char)0x22,
+   (unsigned char)0x96,
+   (unsigned char)0x64,
+   (unsigned char)0x5b,
+   (unsigned char)0x7b,
+   (unsigned char)0x9e,
+   (unsigned char)0x83,
+   (unsigned char)0x45,
+   (unsigned char)0xba,
+   (unsigned char)0xb8,
+   (unsigned char)0xe1,
+   (unsigned char)0x31,
+   (unsigned char)0xc7,
+   (unsigned char)0x0a,
+   (unsigned char)0xe0,
+   (unsigned char)0x31,
+   (unsigned char)0xce,
+   (unsigned char)0x29,
+   (unsigned char)0x3d,
+   (unsigned char)0x01,
+   (unsigned char)0xb8,
+   (unsigned char)0xfc,
+   (unsigned char)0x79,
+   (unsigned char)0x83,
+   (unsigned char)0x3d,
+   (unsigned char)0xd1,
+   (unsigned char)0x40,
+   (unsigned char)0xe1,
+   (unsigned char)0x46,
+   (unsigned char)0xfa,
+   (unsigned char)0xe7,
+   (unsigned char)0xc5,
+   (unsigned char)0xdc,
+   (unsigned char)0xc4,
+   (unsigned char)0x1c,
+   (unsigned char)0x24,
+   (unsigned char)0x29,
+   (unsigned char)0x5a,
+   (unsigned char)0xef,
+   (unsigned char)0xeb,
+   (unsigned char)0x92,
+   (unsigned char)0x57,
+   (unsigned char)0xba,
+   (unsigned char)0x06,
+   (unsigned char)0x13,
+   (unsigned char)0x1d,
+   (unsigned char)0x35,
+   (unsigned char)0xef,
+   (unsigned char)0xb0,
+   (unsigned char)0x2d,
+   (unsigned char)0x69,
+   (unsigned char)0x20,
+   (unsigned char)0x92,
+   (unsigned char)0xb1,
+   (unsigned char)0x82,
+   (unsigned char)0x00,
+   (unsigned char)0x8e,
+   (unsigned char)0x3b,
+   (unsigned char)0x12,
+   (unsigned char)0xb3,
+   (unsigned char)0x78,
+   (unsigned char)0xd7,
+   (unsigned char)0x18,
+   (unsigned char)0xb3,
+   (unsigned char)0x54,
+   (unsigned char)0x0f,
+   (unsigned char)0xd1,
+   (unsigned char)0x8e,
+   (unsigned char)0x88,
+   (unsigned char)0x5d,
+   (unsigned char)0x4e,
+   (unsigned char)0x2b,
+   (unsigned char)0x30,
+   (unsigned char)0x30,
+   (unsigned char)0x2d,
+   (unsigned char)0x85,
+   (unsigned char)0xaa,
+   (unsigned char)0x21,
+   (unsigned char)0x01,
+   (unsigned char)0xe1,
+   (unsigned char)0x2c,
+   (unsigned char)0x35,
+   (unsigned char)0xa1,
+   (unsigned char)0xee,
+   (unsigned char)0xa2,
+   (unsigned char)0x17,
+   (unsigned char)0xed,
+   (unsigned char)0x60,
+   (unsigned char)0x1b,
+   (unsigned char)0x98,
+   (unsigned char)0xea,
+   (unsigned char)0x12,
+   (unsigned char)0x85,
+   (unsigned char)0x21,
+   (unsigned char)0xde,
+   (unsigned char)0x45,
+   (unsigned char)0x26,
+   (unsigned char)0xef,
+   (unsigned char)0x12,
+   (unsigned char)0x3c,
+   (unsigned char)0x02,
+   (unsigned char)0x8c,
+   (unsigned char)0xd7,
+   (unsigned char)0x49,
+   (unsigned char)0xbd,
+   (unsigned char)0x02,
+   (unsigned char)0xa7,
+   (unsigned char)0x7d,
+   (unsigned char)0xe7,
+   (unsigned char)0x1c,
+   (unsigned char)0x15,
+   (unsigned char)0xf9,
+   (unsigned char)0xaa,
+   (unsigned char)0x44,
+   (unsigned char)0x15,
+   (unsigned char)0xb1,
+   (unsigned char)0xaa,
+   (unsigned char)0x76,
+   (unsigned char)0x5e,
+   (unsigned char)0xf2,
+   (unsigned char)0xb4,
+   (unsigned char)0xfb,
+   (unsigned char)0x85,
+   (unsigned char)0x77,
+   (unsigned char)0xb9,
+   (unsigned char)0x32,
+   (unsigned char)0xb4,
+   (unsigned char)0xc9,
+   (unsigned char)0x70,
+   (unsigned char)0xe1,
+   (unsigned char)0xdb,
+   (unsigned char)0x44,
+   (unsigned char)0x9f,
+   (unsigned char)0x5b,
+   (unsigned char)0x87,
+   (unsigned char)0xca,
+   (unsigned char)0xaa,
+   (unsigned char)0xcb,
+   (unsigned char)0x43,
+   (unsigned char)0x53,
+   (unsigned char)0x7e,
+   (unsigned char)0x49,
+   (unsigned char)0xec,
+   (unsigned char)0x1a,
+   (unsigned char)0x13,
+   (unsigned char)0x1d,
+   (unsigned char)0xe1,
+   (unsigned char)0x1b,
+   (unsigned char)0x13,
+   (unsigned char)0xc3,
+   (unsigned char)0x34,
+   (unsigned char)0x95,
+   (unsigned char)0x5d,
+   (unsigned char)0x5a,
+   (unsigned char)0xc3,
+   (unsigned char)0xd0,
+   (unsigned char)0x33,
+   (unsigned char)0x05,
+   (unsigned char)0x82,
+   (unsigned char)0x4a,
+   (unsigned char)0x2e,
+   (unsigned char)0x6d,
+   (unsigned char)0x39,
+   (unsigned char)0xeb,
+   (unsigned char)0x9c,
+   (unsigned char)0x65,
+   (unsigned char)0x81,
+   (unsigned char)0x7f,
+   (unsigned char)0xa1,
+   (unsigned char)0x62,
+   (unsigned char)0x11};
+void Next(unsigned int *index_0)
+{
+  (*index_0) ++;
+  if (*index_0 >= (unsigned int)319) *index_0 = (unsigned int)0;
+  return;
+}
+
+unsigned char Next_Rand(unsigned int *index_0)
+{
+  unsigned char __retres;
+  Next(index_0);
+  __retres = ad_random[*index_0];
+  return __retres;
+}
+
+void Set_AD_Delay(int delay)
+{
+  int i;
+  i = 0;
+  while (i < 6) {
+    ad_conv_delay[i] = delay;
+    i ++;
+  }
+  return;
+}
+
+static unsigned int ad_delay_rand = (unsigned int)0;
+void Random_AD_Delay(void)
+{
+  int i;
+  i = 0;
+  while (i < 6) {
+    unsigned char tmp;
+    tmp = Next_Rand(& ad_delay_rand);
+    ad_conv_delay[i] = (int)tmp % (25 + 10);
+    i ++;
+  }
+  return;
+}
+
+static unsigned int ad_rand_index = (unsigned int)0;
+static unsigned int max_adc_hits = (unsigned int)0;
+static unsigned int ad_hit_rand_index = (unsigned int)0;
+static unsigned int total_adc_hits = (unsigned int)0;
+static unsigned int ad_random_failures = (unsigned int)0;
+static unsigned int ad_fail_index = (unsigned int)0;
+void Update_ADC_Channel_Reg(unsigned char channel)
+{
+  return;
+}
+
+static unsigned int start_conversion_count = (unsigned int)0;
+static uint16_t ad_value = (unsigned short)0;
+void Start_Conversion(void)
+{
+  uint_least8_t channel;
+  unsigned char tmp;
+  unsigned char tmp_0;
+  channel = (unsigned int)((int)ADC_channel_register & 0x3f);
+  if (ad_converting != (unsigned int)0) ;
+  tmp = Next_Rand(& ad_rand_index);
+  ad_value = (unsigned short)((int)((unsigned short)tmp) << 8);
+  tmp_0 = Next_Rand(& ad_rand_index);
+  ad_value = (unsigned short)((int)ad_value | (int)((unsigned short)tmp_0));
+  if ((int)ad_value < (int)ad_limit[channel].min) ad_value = ad_limit[channel].min;
+  else 
+    if ((int)ad_value > (int)ad_limit[channel].max) ad_value = ad_limit[channel].max;
+  start_conversion_count ++;
+  ad_conv_timer = 0;
+  ad_conv_num ++;
+  if (ad_conv_num >= (unsigned int)6) ad_conv_num = (unsigned int)0;
+  if (ad_random_failures > (unsigned int)0) {
+    unsigned char tmp_1;
+    tmp_1 = Next_Rand(& ad_fail_index);
+    if ((int)tmp_1 > 0x3f) {
+      ad_conv_timer = -5000;
+      ad_random_failures --;
+    }
+  }
+  ad_converting = (unsigned int)1;
+  return;
+}
+
+void Report_Start_Conversion_Count(int problem)
+{
+  start_conversion_count = (unsigned int)0;
+  return;
+}
+
+static unsigned int end_of_adc_count = (unsigned int)0;
+unsigned char End_Of_ADC(void)
+{
+  unsigned char __retres;
+  if (ad_converting == (unsigned int)0) ;
+  end_of_adc_count ++;
+  ad_conv_timer ++;
+  if (ad_conv_timer >= ad_conv_delay[ad_conv_num]) {
+    ad_converting = (unsigned int)0;
+    __retres = (unsigned char)0;
+    goto return_label;
+  }
+  else {
+    if (max_adc_hits > (unsigned int)0) {
+      unsigned char tmp;
+      tmp = Next_Rand(& ad_hit_rand_index);
+      if ((int)tmp > 0x7f) {
+        confirm_hit_result = (unsigned char)1;
+        total_adc_hits ++;
+        max_adc_hits --;
+        ad_converting = (unsigned int)0;
+        __retres = (unsigned char)0;
+        goto return_label;
+      }
+    }
+    __retres = (unsigned char)1;
+    goto return_label;
+  }
+  return_label: return __retres;
+}
+
+void Report_End_Of_ADC_Count(int problem)
+{
+  end_of_adc_count = (unsigned int)0;
+  return;
+}
+
+unsigned char Get_Result(void)
+{
+  unsigned char value;
+  value = (unsigned char)(((int)ad_value >> 8) & 0xff);
+  ad_value = (unsigned short)((int)ad_value << 8);
+  return value;
+}
+
+void Set_DAC_Output(unsigned char level)
+{
+  return;
+}
+
+static unsigned char hit_enabled = (unsigned char)0;
+static unsigned char trigger_flag = (unsigned char)1;
+static unsigned char event_flag = (unsigned char)1;
+static unsigned char trigger_source_0 = (unsigned char)0;
+static unsigned char trigger_source_1 = (unsigned char)0;
+static unsigned char msb_counter = (unsigned char)134;
+static unsigned char lsb1_counter = (unsigned char)77;
+static unsigned char lsb2_counter = (unsigned char)88;
+static unsigned char rise_time_counter = (unsigned char)102;
+static unsigned char sim_self_test = (unsigned char)0;
+static unsigned char self_test_pulse = (unsigned char)0;
+void Sim_Self_Test_Trigger(void)
+{
+  if ((int)sim_self_test == 1) 
+    if ((int)hit_enabled == 1) 
+      if ((int)self_test_pulse > 0) 
+        if (self_test_SU_number != (sensor_number_t)0) 
+          if (SU_state[self_test_SU_number - (sensor_number_t)1] == (unsigned int)self_test_trigger_e) 
+            SU_state[self_test_SU_number - (sensor_number_t)1] = self_test_e;
+  return;
+}
+
+static unsigned int event_rand_index = (unsigned int)0;
+void Random_Event(void)
+{
+  unsigned char val;
+  val = Next_Rand(& event_rand_index);
+  trigger_flag = (unsigned char)(((int)val >> 7) & 1);
+  event_flag = (unsigned char)(((int)val >> 6) & 1);
+  trigger_source_0 = (unsigned char)(((int)val >> 5) & 1);
+  trigger_source_1 = (unsigned char)(((int)val >> 4) & 1);
+  msb_counter = Next_Rand(& event_rand_index);
+  lsb1_counter = Next_Rand(& event_rand_index);
+  lsb2_counter = Next_Rand(& event_rand_index);
+  rise_time_counter = Next_Rand(& event_rand_index);
+  return;
+}
+
+static void Set_Trigger_SU(sensor_index_t SU)
+{
+  trigger_source_0 = (unsigned char)(SU & (unsigned int)1);
+  trigger_source_1 = (unsigned char)((SU >> 1) & (unsigned int)1);
+  return;
+}
+
+void Enable_Hit_Trigger(void)
+{
+  hit_enabled = (unsigned char)1;
+  Sim_Self_Test_Trigger();
+  return;
+}
+
+void Disable_Hit_Trigger(void)
+{
+  hit_enabled = (unsigned char)0;
+  Sim_Self_Test_Trigger();
+  return;
+}
+
+unsigned char Hit_Trigger_Flag(void)
+{
+  return trigger_flag;
+}
+
+unsigned char Event_Flag(void)
+{
+  return event_flag;
+}
+
+unsigned char Get_MSB_Counter(void)
+{
+  return msb_counter;
+}
+
+unsigned char Get_LSB1_Counter(void)
+{
+  return lsb1_counter;
+}
+
+unsigned char Get_LSB2_Counter(void)
+{
+  return lsb2_counter;
+}
+
+unsigned char Rise_Time_Counter(void)
+{
+  return rise_time_counter;
+}
+
+unsigned char Trigger_Source_0(void)
+{
+  return trigger_source_0;
+}
+
+unsigned char Trigger_Source_1(void)
+{
+  return trigger_source_1;
+}
+
+void Set_SU_Self_Test_Ch(unsigned char value)
+{
+  return;
+}
+
+void Set_Test_Pulse_Level(unsigned char level)
+{
+  self_test_pulse = level;
+  Sim_Self_Test_Trigger();
+  return;
+}
+
+static unsigned int v_down_errors = (unsigned int)0;
+unsigned char V_Down(void)
+{
+  unsigned char result;
+  if (v_down_errors > (unsigned int)0) {
+    result = (unsigned char)0;
+    v_down_errors --;
+  }
+  else result = (unsigned char)1;
+  return result;
+}
+
+void SignalPeakDetectorReset(unsigned char low_reset_value,
+                             unsigned char high_reset_value)
+{
+  return;
+}
+
+unsigned short Short_Value(uskew16_t *x)
+{
+  unsigned short val;
+  memcpy((void *)(& val),(void const *)x,sizeof(val));
+  return val;
+}
+
+void Call_Patch(fptr_t func)
+{
+  return;
+}
+
+static uint_least8_t volatile tsize_s;
+static uint_least16_t volatile tsize_l;
+void Check_Type_Size(void)
+{
+  tsize_s = sizeof(char);
+  tsize_s = sizeof(short);
+  tsize_s = sizeof(int);
+  tsize_s = sizeof(long);
+  tsize_s = sizeof(tm_ushort_t);
+  tsize_s = sizeof(dpu_time_t);
+  tsize_s = sizeof(tm_dpu_time_t);
+  tsize_s = sizeof(SU_settings_t);
+  tsize_s = sizeof(telemetry_data_t);
+  tsize_s = sizeof(event_record_t);
+  tsize_l = sizeof(science_data_file_t);
+  return;
+}
+
+static unsigned int checks = (unsigned int)0;
+static unsigned int check_errors = (unsigned int)0;
+static void Report_Checks(void)
+{
+  return;
+}
+
+static void Fail_Check(char *message)
+{
+  check_errors ++;
+  return;
+}
+
+static void Check_Zero(int cond)
+{
+  checks ++;
+  if (cond) Fail_Check((char *)"Check_Zero");
+  return;
+}
+
+static void Check_Nonzero(int cond)
+{
+  checks ++;
+  if (cond == 0) Fail_Check((char *)"Check_Nonzero");
+  return;
+}
+
+static void Check_No_Errors(void)
+{
+  Check_Zero((int)telemetry_data.error_status);
+  return;
+}
+
+static void TC_Interrupt(void)
+{
+  TC_InterruptService();
+  return;
+}
+
+static void Send_TC(unsigned char address, unsigned char code)
+{
+  unsigned char par;
+  tc_msb = (unsigned char)((int)address << 1);
+  tc_lsb = code;
+  par = (unsigned char)((int)tc_msb ^ (int)tc_lsb);
+  par = (unsigned char)(((int)par & 0x0F) ^ ((int)par >> 4));
+  par = (unsigned char)(((int)par & 0x03) ^ ((int)par >> 2));
+  par = (unsigned char)(((int)par & 0x01) ^ ((int)par >> 1));
+  tc_msb = (unsigned char)((int)tc_msb | (int)par);
+  tc_word = (unsigned short)(((int)tc_msb << 8) | (int)tc_lsb);
+  tc_timer_overflow = (unsigned char)1;
+  TC_Interrupt();
+  return;
+}
+
+static void Send_TC_Word(uint_least16_t word)
+{
+  tc_msb = (unsigned char)((word >> 8) & (unsigned int)0xff);
+  tc_lsb = (unsigned char)(word & (unsigned int)0xff);
+  tc_word = (unsigned short)(((int)tc_msb << 8) | (int)tc_lsb);
+  tc_timer_overflow = (unsigned char)1;
+  TC_Interrupt();
+  return;
+}
+
+static void TC_ISR_Tests(void)
+{
+  tc_timer_overflow = (unsigned char)0;
+  TC_Interrupt();
+  TC_state = SC_TM_e;
+  Send_TC((unsigned char)0,(unsigned char)0);
+  TC_state = memory_dump_e;
+  Send_TC((unsigned char)0,(unsigned char)0);
+  TC_state = memory_patch_e;
+  Send_TC((unsigned char)0,(unsigned char)0);
+  Check_Nonzero(mail_count[0] == 1);
+  FlushMail((unsigned char)0);
+  TC_state = TC_handling_e;
+  tc_timer_overflow = (unsigned char)1;
+  tc_msb = (unsigned char)0;
+  tc_lsb = (unsigned char)1;
+  tc_word = (unsigned short)1;
+  TC_Interrupt();
+  Check_Nonzero((int)telemetry_data.error_status & 2);
+  Send_TC((unsigned char)0x03,(unsigned char)0x03);
+  Check_Nonzero((int)telemetry_data.error_status & 2);
+  Check_Nonzero(mail_count[0] == 1);
+  FlushMail((unsigned char)0);
+  telemetry_data.error_status = (unsigned char)0;
+  Check_No_Errors();
+  Send_TC((unsigned char)0x05,(unsigned char)8);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)register_TM_e);
+  Check_Nonzero(mail_count[0] == 1);
+  FlushMail((unsigned char)0);
+  Send_TC((unsigned char)4,(unsigned char)4);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(mail_count[0] == 0);
+  telemetry_data.error_status = (unsigned char)0;
+  Send_TC((unsigned char)0x03,(unsigned char)(~ 0x03));
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(mail_count[0] == 0);
+  telemetry_data.error_status = (unsigned char)0;
+  Send_TC((unsigned char)0x40,(unsigned char)0x3F);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(mail_count[0] == 0);
+  telemetry_data.error_status = (unsigned char)0;
+  Send_TC((unsigned char)0x05,(unsigned char)5);
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(mail_count[0] == 0);
+  telemetry_data.error_status = (unsigned char)0;
+  Send_TC((unsigned char)0x05,(unsigned char)(0x74 + 2));
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(mail_count[0] == 0);
+  telemetry_data.error_status = (unsigned char)0;
+  return;
+}
+
+static void Handle_TC(int problem)
+{
+  Check_Nonzero(mail_count[0] == 1);
+  HandleTelecommand();
+  Check_Nonzero(mail_count[0] == 0);
+  return;
+}
+
+static void Exec_TC(unsigned char address, unsigned char code, int problem)
+{
+  Send_TC(address,code);
+  Handle_TC(problem);
+  return;
+}
+
+static void Send_Patch_Code(uint16_t address, unsigned char *checksum)
+{
+  uint_least8_t i;
+  unsigned char sum;
+  Exec_TC((unsigned char)0x10,(unsigned char)(((int)address >> 8) & 0xff),42);
+  sum = (unsigned char)(((int)tc_word >> 8) ^ ((int)tc_word & 0xff));
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)write_memory_e);
+  Exec_TC((unsigned char)0x6F,(unsigned char)((int)address & 0xff),43);
+  sum = (unsigned char)((int)sum ^ (((int)tc_word >> 8) ^ ((int)tc_word & 0xff)));
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)memory_patch_e);
+  i = (unsigned int)0;
+  while (i < (uint_least8_t)16) {
+    Send_TC_Word(i << 6);
+    sum = (unsigned char)((int)sum ^ (((int)tc_word >> 8) ^ ((int)tc_word & 0xff)));
+    Handle_TC(44);
+    i ++;
+  }
+  *checksum = sum;
+  return;
+}
+
+static void Send_Patch_Data(uint16_t address, unsigned char *checksum)
+{
+  uint_least8_t i;
+  unsigned char sum;
+  Exec_TC((unsigned char)0x15,(unsigned char)(((int)address >> 8) & 0xff),42);
+  sum = (unsigned char)(((int)tc_word >> 8) ^ ((int)tc_word & 0xff));
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)write_memory_e);
+  Exec_TC((unsigned char)0x6A,(unsigned char)((int)address & 0xff),43);
+  sum = (unsigned char)((int)sum ^ (((int)tc_word >> 8) ^ ((int)tc_word & 0xff)));
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)memory_patch_e);
+  i = (unsigned int)0;
+  while (i < (uint_least8_t)16) {
+    Send_TC_Word(i << 6);
+    sum = (unsigned char)((int)sum ^ (((int)tc_word >> 8) ^ ((int)tc_word & 0xff)));
+    Handle_TC(44);
+    i ++;
+  }
+  *checksum = sum;
+  return;
+}
+
+static void Read_Data_Memory(uint16_t address)
+{
+  uint_least8_t i;
+  Exec_TC((unsigned char)0x1F,(unsigned char)(((int)address >> 8) & 0xff),41);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)read_memory_e);
+  Exec_TC((unsigned char)0x60,(unsigned char)((int)address & 0xff),41);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)memory_dump_e);
+  i = (unsigned int)0;
+  while (i < (uint_least8_t)16) {
+    Check_Nonzero(telemetry_pointer < telemetry_end_pointer);
+    TM_InterruptService();
+    Check_Nonzero(TC_state == (unsigned int)memory_dump_e);
+    i ++;
+  }
+  Check_Nonzero(telemetry_pointer == telemetry_end_pointer);
+  TM_InterruptService();
+  Handle_TC(10);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  return;
+}
+
+void Clear_Errors(void)
+{
+  Exec_TC((unsigned char)0x03,(unsigned char)0x03,41);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  return;
+}
+
+static void TC_Task_Tests(void)
+{
+  unsigned char chsum;
+  DEBIE_mode_t tmp;
+  DEBIE_mode_t tmp_0;
+  telemetry_data.error_status = (unsigned char)2;
+  Send_TC((unsigned char)0x03,(unsigned char)0x03);
+  Check_Nonzero((int)telemetry_data.error_status & 2);
+  Handle_TC(41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x21,(unsigned char)23,41);
+  Exec_TC((unsigned char)0x31,(unsigned char)26,41);
+  Exec_TC((unsigned char)0x41,(unsigned char)32,41);
+  Exec_TC((unsigned char)0x51,(unsigned char)102,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x22,(unsigned char)205,41);
+  Exec_TC((unsigned char)0x32,(unsigned char)123,41);
+  Exec_TC((unsigned char)0x42,(unsigned char)99,41);
+  Exec_TC((unsigned char)0x52,(unsigned char)1,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x23,(unsigned char)14,41);
+  Exec_TC((unsigned char)0x33,(unsigned char)54,41);
+  Exec_TC((unsigned char)0x43,(unsigned char)74,41);
+  Exec_TC((unsigned char)0x53,(unsigned char)104,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x24,(unsigned char)104,41);
+  Exec_TC((unsigned char)0x34,(unsigned char)204,41);
+  Exec_TC((unsigned char)0x44,(unsigned char)214,41);
+  Exec_TC((unsigned char)0x54,(unsigned char)234,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x25,(unsigned char)104,41);
+  Exec_TC((unsigned char)0x35,(unsigned char)88,41);
+  Exec_TC((unsigned char)0x45,(unsigned char)66,41);
+  Exec_TC((unsigned char)0x55,(unsigned char)33,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x28,(unsigned char)61,41);
+  Exec_TC((unsigned char)0x38,(unsigned char)21,41);
+  Exec_TC((unsigned char)0x48,(unsigned char)81,41);
+  Exec_TC((unsigned char)0x58,(unsigned char)11,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x26,(unsigned char)14,41);
+  Exec_TC((unsigned char)0x36,(unsigned char)24,41);
+  Exec_TC((unsigned char)0x46,(unsigned char)33,41);
+  Exec_TC((unsigned char)0x56,(unsigned char)77,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x27,(unsigned char)14,41);
+  Exec_TC((unsigned char)0x37,(unsigned char)14,41);
+  Exec_TC((unsigned char)0x47,(unsigned char)14,41);
+  Exec_TC((unsigned char)0x57,(unsigned char)14,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x29,(unsigned char)191,41);
+  Exec_TC((unsigned char)0x39,(unsigned char)171,41);
+  Exec_TC((unsigned char)0x49,(unsigned char)161,41);
+  Exec_TC((unsigned char)0x59,(unsigned char)151,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x2A,(unsigned char)11,41);
+  Exec_TC((unsigned char)0x3A,(unsigned char)22,41);
+  Exec_TC((unsigned char)0x4A,(unsigned char)33,41);
+  Exec_TC((unsigned char)0x5A,(unsigned char)44,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x2B,(unsigned char)111,41);
+  Exec_TC((unsigned char)0x3B,(unsigned char)122,41);
+  Exec_TC((unsigned char)0x4B,(unsigned char)133,41);
+  Exec_TC((unsigned char)0x5B,(unsigned char)144,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x2C,(unsigned char)11,41);
+  Exec_TC((unsigned char)0x3C,(unsigned char)10,41);
+  Exec_TC((unsigned char)0x4C,(unsigned char)9,41);
+  Exec_TC((unsigned char)0x5C,(unsigned char)8,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x2D,(unsigned char)211,41);
+  Exec_TC((unsigned char)0x3D,(unsigned char)210,41);
+  Exec_TC((unsigned char)0x4D,(unsigned char)209,41);
+  Exec_TC((unsigned char)0x5D,(unsigned char)208,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x70,(unsigned char)1,41);
+  Exec_TC((unsigned char)0x71,(unsigned char)2,41);
+  Exec_TC((unsigned char)0x72,(unsigned char)3,41);
+  Exec_TC((unsigned char)0x73,(unsigned char)4,41);
+  Exec_TC((unsigned char)0x74,(unsigned char)5,41);
+  Check_No_Errors();
+  Send_Patch_Code((unsigned short)0x1100,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x5A);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x5A00 | (int)chsum));
+  Handle_TC(41);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Send_Patch_Code((unsigned short)0x1300,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x00);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x0000 | (int)chsum));
+  Handle_TC(41);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Send_Patch_Code((unsigned short)0x1400,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x09);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x0900 | (int)chsum));
+  Handle_TC(41);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Send_Patch_Code((unsigned short)0x2100,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x37);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x3700 | (int)chsum));
+  Handle_TC(41);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Send_Patch_Code((unsigned short)0x2400,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x62);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x6200 | (int)chsum));
+  Handle_TC(41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Clear_Errors();
+  Send_Patch_Code((unsigned short)0x0fff,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x00);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x0000 | (int)chsum));
+  Handle_TC(41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Clear_Errors();
+  Send_Patch_Code((unsigned short)0x1200,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x5A);
+  chsum = (unsigned char)((int)chsum ^ 0xff);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x5A00 | (int)chsum));
+  Handle_TC(41);
+  Check_Nonzero((int)telemetry_data.mode_status & 0x10);
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Clear_Errors();
+  Exec_TC((unsigned char)0x6F,(unsigned char)0x32,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Clear_Errors();
+  Exec_TC((unsigned char)0x10,(unsigned char)0x32,41);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)write_memory_e);
+  Exec_TC((unsigned char)0x0A,(unsigned char)0x0A,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Clear_Errors();
+  Send_Patch_Data((unsigned short)0x2200,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x11);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x1100 | (int)chsum));
+  Handle_TC(41);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Send_Patch_Data((unsigned short)0xfef0,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x11);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x1100 | (int)chsum));
+  Handle_TC(41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Clear_Errors();
+  Exec_TC((unsigned char)0x6A,(unsigned char)0x32,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Clear_Errors();
+  Exec_TC((unsigned char)0x15,(unsigned char)0x32,41);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)write_memory_e);
+  Exec_TC((unsigned char)0x0A,(unsigned char)0x0A,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Clear_Errors();
+  Send_Patch_Data((unsigned short)0x2300,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x11);
+  chsum = (unsigned char)((int)chsum ^ 0xff);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Send_TC_Word((unsigned int)(0x1100 | (int)chsum));
+  Handle_TC(41);
+  Check_Nonzero((int)telemetry_data.mode_status & 0x10);
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Clear_Errors();
+  Send_Patch_Data((unsigned short)0x2200,& chsum);
+  chsum = (unsigned char)((int)chsum ^ 0x11);
+  Check_Nonzero(TC_state == (unsigned int)memory_patch_e);
+  Check_Zero((int)telemetry_data.mode_status & 0x10);
+  Check_Nonzero(mail_count[0] == 0);
+  HandleTelecommand();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Clear_Errors();
+  Check_Nonzero(mail_count[0] == 0);
+  HandleTelecommand();
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Check_No_Errors();
+  Read_Data_Memory((unsigned short)0x2041);
+  Exec_TC((unsigned char)0x1F,(unsigned char)0xfe,41);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)read_memory_e);
+  Exec_TC((unsigned char)0x60,(unsigned char)0xf0,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Clear_Errors();
+  Exec_TC((unsigned char)0x60,(unsigned char)0xfe,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Clear_Errors();
+  Exec_TC((unsigned char)0x1F,(unsigned char)0xab,41);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)read_memory_e);
+  Exec_TC((unsigned char)0x0A,(unsigned char)0x0A,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Clear_Errors();
+  telemetry_data.watchdog_failures = (unsigned char)3;
+  Exec_TC((unsigned char)0x0A,(unsigned char)0x0A,41);
+  Check_No_Errors();
+  Check_Zero((int)telemetry_data.watchdog_failures);
+  telemetry_data.checksum_failures = (unsigned char)9;
+  Exec_TC((unsigned char)0x0B,(unsigned char)0x0B,41);
+  Check_No_Errors();
+  Check_Zero((int)telemetry_data.checksum_failures);
+  Exec_TC((unsigned char)0x0F,(unsigned char)0x44,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0E,(unsigned char)0x33,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0D,(unsigned char)0x22,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0C,(unsigned char)0x11,41);
+  Check_No_Errors();
+  Check_Nonzero(internal_time == (dpu_time_t)0x44332211);
+  internal_time = (unsigned int)0x01122334;
+  Exec_TC((unsigned char)0x0F,(unsigned char)0x44,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0D,(unsigned char)0x33,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(internal_time == (dpu_time_t)0x44000000);
+  Clear_Errors();
+  internal_time = (unsigned int)0x01122334;
+  Exec_TC((unsigned char)0x0F,(unsigned char)0x44,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0E,(unsigned char)0x33,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0C,(unsigned char)0x22,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(internal_time == (dpu_time_t)0x44330000);
+  Clear_Errors();
+  internal_time = (unsigned int)0x01122334;
+  Exec_TC((unsigned char)0x0F,(unsigned char)0x44,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0E,(unsigned char)0x33,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0D,(unsigned char)0x22,41);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x0E,(unsigned char)0x11,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(internal_time == (dpu_time_t)0x44332200);
+  Clear_Errors();
+  Exec_TC((unsigned char)0x09,(unsigned char)0x09,41);
+  Check_No_Errors();
+  tmp = GetMode();
+  Check_Nonzero((int)tmp == 1);
+  Exec_TC((unsigned char)0x02,(unsigned char)0x02,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  tmp_0 = GetMode();
+  Check_Nonzero((int)tmp_0 == 1);
+  Clear_Errors();
+  return;
+}
+
+void Monitor_Health(int problem)
+{
+  start_conversion_count = (unsigned int)0;
+  end_of_adc_count = (unsigned int)0;
+  HandleHealthMonitoring();
+  Report_Start_Conversion_Count(problem);
+  Report_End_Of_ADC_Count(problem);
+  return;
+}
+
+void Monitoring_Task_Tests(void)
+{
+  int sec;
+  int tot_errors;
+  int max_errors = 20;
+  /*@ widen_hints tot_errors, 20; */
+  health_mon_round = (unsigned int)9;
+  temp_meas_count = (unsigned int)5;
+  voltage_meas_count = (unsigned int)17;
+  checksum_count = (unsigned int)59;
+  Set_AD_Nominal();
+  Set_AD_Delay(2);
+  Check_Nonzero(health_mon_round == (uint_least8_t)9);
+  Check_Nonzero(temp_meas_count == (uint_least8_t)5);
+  Check_Nonzero(voltage_meas_count == (uint_least8_t)17);
+  Check_Nonzero(checksum_count == (uint_least8_t)59);
+  sec = 1;
+  while (sec <= 9) {
+    Monitor_Health(61);
+    Check_Nonzero(health_mon_round == (uint_least8_t)(9 - sec));
+    Check_Nonzero(temp_meas_count == (uint_least8_t)5);
+    Check_Nonzero(voltage_meas_count == (uint_least8_t)17);
+    Check_Nonzero(checksum_count == (uint_least8_t)(59 - sec));
+    sec ++;
+  }
+  Monitor_Health(61);
+  Check_Nonzero(health_mon_round == (uint_least8_t)9);
+  Check_Nonzero(temp_meas_count == (uint_least8_t)(5 - 1));
+  Check_Nonzero(voltage_meas_count == (uint_least8_t)(17 - 1));
+  Check_Nonzero(checksum_count == (uint_least8_t)(59 - 10));
+  sec = 11;
+  while (sec <= 180) {
+    Monitor_Health(61);
+    sec ++;
+  }
+  Check_Nonzero(health_mon_round == (uint_least8_t)9);
+  Check_Nonzero(temp_meas_count == (uint_least8_t)5);
+  Check_Nonzero(voltage_meas_count == (uint_least8_t)17);
+  Check_Nonzero(checksum_count == (uint_least8_t)59);
+  Check_No_Errors();
+  total_adc_hits = (unsigned int)0;
+  sec = 1;
+  while (sec <= 180) {
+    max_adc_hits = (unsigned int)1;
+    Monitor_Health(62);
+    sec ++;
+  }
+  Check_Nonzero((int)total_adc_hits);
+  Check_Nonzero(health_mon_round == (uint_least8_t)9);
+  Check_Nonzero(temp_meas_count == (uint_least8_t)5);
+  Check_Nonzero(voltage_meas_count == (uint_least8_t)17);
+  Check_Nonzero(checksum_count == (uint_least8_t)59);
+  Check_No_Errors();
+  total_adc_hits = (unsigned int)0;
+  sec = 1;
+  while (sec <= 180) {
+    max_adc_hits = (unsigned int)20;
+    Monitor_Health(63);
+    sec ++;
+  }
+  Check_Nonzero((int)total_adc_hits);
+  Check_Nonzero(health_mon_round == (uint_least8_t)9);
+  Check_Nonzero(temp_meas_count == (uint_least8_t)5);
+  Check_Nonzero(voltage_meas_count == (uint_least8_t)17);
+  Check_Nonzero(checksum_count == (uint_least8_t)59);
+  Check_No_Errors();
+  Set_AD_Unlimited();
+  max_adc_hits = (unsigned int)0;
+  tot_errors = 0;
+  while (1) {
+    if (tot_errors == 4) check_current_errors = (unsigned int)5;
+    if (tot_errors == max_errors - 1) v_down_errors = (unsigned int)1;
+    sec = 1;
+    while (sec <= 180) {
+      Monitor_Health(64);
+      sec ++;
+    }
+    if ((int)telemetry_data.error_status != 0) {
+      tot_errors ++;
+      Clear_Errors();
+    }
+    if (! (tot_errors < max_errors)) break;
+  }
+  Check_No_Errors();
+  Set_AD_Unlimited();
+  tot_errors = 0;
+  while (1) {
+    if (tot_errors == 4) check_current_errors = (unsigned int)5;
+    if (tot_errors == max_errors - 1) v_down_errors = (unsigned int)1;
+    sec = 1;
+    while (sec <= 180) {
+      max_adc_hits = (unsigned int)20;
+      if (sec > 2 * tot_errors) ad_random_failures = (unsigned int)2;
+      Monitor_Health(65);
+      sec ++;
+    }
+    if ((int)telemetry_data.error_status != 0) {
+      tot_errors ++;
+      Clear_Errors();
+    }
+    if (! (tot_errors < max_errors)) break;
+  }
+  Check_No_Errors();
+  return;
+}
+
+void TM_Tests(void)
+{
+  int octets;
+  Send_TC((unsigned char)0x05,(unsigned char)0);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)register_TM_e);
+  Handle_TC(41);
+  Check_Nonzero(TC_state == (unsigned int)register_TM_e);
+  octets = 0;
+  while ((unsigned int)octets < sizeof(telemetry_data_t)) {
+    if (telemetry_pointer != (unsigned char *)(& telemetry_data.time)) 
+      TM_InterruptService();
+    else TM_InterruptService();
+    Check_Nonzero(TC_state == (unsigned int)register_TM_e);
+    octets += 2;
+  }
+  Send_TC((unsigned char)0x05,(unsigned char)22);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)register_TM_e);
+  Handle_TC(41);
+  Check_Nonzero(TC_state == (unsigned int)register_TM_e);
+  octets = 0;
+  while (octets < 40) {
+    if (telemetry_pointer != (unsigned char *)(& telemetry_data.time)) 
+      TM_InterruptService();
+    else TM_InterruptService();
+    Check_Nonzero(TC_state == (unsigned int)register_TM_e);
+    octets += 2;
+  }
+  Send_TC((unsigned char)0x03,(unsigned char)0x03);
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Handle_TC(41);
+  Check_No_Errors();
+  Send_TC((unsigned char)0x06,(unsigned char)0x06);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)SC_TM_e);
+  Handle_TC(41);
+  Check_Nonzero(TC_state == (unsigned int)SC_TM_e);
+  octets = 0;
+  /*@ loop unroll 22; */
+  while (mail_count[0] == 0) {
+    if (telemetry_pointer < telemetry_end_pointer) TM_InterruptService();
+    else TM_InterruptService();
+    octets += 2;
+    Check_Nonzero(TC_state == (unsigned int)SC_TM_e);
+  }
+  Handle_TC(41);
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  return;
+}
+
+static void Trigger_Hit(int problem)
+{
+  Check_Nonzero(mail_count[1] == 0);
+  HandleHitTrigger();
+  int tmp = mail_count[1] == 0;
+  return;
+}
+
+static void Trigger_SU_Hit(sensor_index_t SU, int problem)
+{
+  Set_Trigger_SU(SU);
+  Trigger_Hit(problem);
+  return;
+}
+
+static void Acquire_Hit(int hit_problem, int acq_problem)
+{
+  Trigger_Hit(hit_problem);
+  if (mail_count[1] > 0) HandleAcquisition();
+  return;
+}
+
+static void Hit_ISR_Tests(void)
+{
+  sensor_index_t su;
+  telemetry_data.hit_budget_exceedings = (unsigned char)0;
+  Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 0);
+  hit_budget_left = (unsigned int)0;
+  Trigger_SU_Hit((unsigned int)0,31);
+  Check_Nonzero(mail_count[1] == 0);
+  Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 1);
+  Trigger_SU_Hit((unsigned int)1,31);
+  Check_Nonzero(mail_count[1] == 0);
+  Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 2);
+  telemetry_data.hit_budget_exceedings = (unsigned char)254;
+  hit_budget_left = (unsigned int)0;
+  Trigger_SU_Hit((unsigned int)3,31);
+  Check_Nonzero(mail_count[1] == 0);
+  Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 255);
+  Trigger_SU_Hit((unsigned int)1,31);
+  Check_Nonzero(mail_count[1] == 0);
+  Check_Nonzero((int)telemetry_data.hit_budget_exceedings == 255);
+  hit_budget_left = (unsigned int)15;
+  Set_AD_Delay(2);
+  ad_conv_num = (unsigned int)0;
+  su = (unsigned int)0;
+  while (su < (sensor_index_t)4) {
+    Trigger_SU_Hit(su,31);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((sensor_index_t)mail_message[1] == su + (sensor_index_t)1);
+    FlushMail((unsigned char)1);
+    su ++;
+  }
+  Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4));
+  su = (unsigned int)0;
+  while (su < (sensor_index_t)4) {
+    self_test_SU_number = su + (sensor_index_t)1;
+    SU_state[su] = self_test_trigger_e;
+    Trigger_SU_Hit(su,31);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((sensor_number_t)mail_message[1] == self_test_SU_number);
+    Check_Nonzero(SU_state[su] == (unsigned int)self_test_e);
+    FlushMail((unsigned char)1);
+    su ++;
+  }
+  su = (unsigned int)0;
+  while (su < (sensor_index_t)4) {
+    self_test_SU_number = su + (sensor_index_t)1;
+    SU_state[su] = self_test_e;
+    Trigger_SU_Hit(su,31);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((unsigned int)mail_message[1] == (self_test_SU_number | (unsigned int)0x40));
+    Check_Nonzero(SU_state[su] == (unsigned int)self_test_e);
+    FlushMail((unsigned char)1);
+    su ++;
+  }
+  self_test_SU_number = (unsigned int)0;
+  su = (unsigned int)0;
+  while (su < (sensor_index_t)4) {
+    SU_state[su] = off_e;
+    su ++;
+  }
+  hit_budget_left = (unsigned int)15;
+  Set_AD_Delay(25);
+  ad_conv_num = (unsigned int)0;
+  su = (unsigned int)0;
+  while (su < (sensor_index_t)4) {
+    Trigger_SU_Hit(su,32);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((sensor_index_t)mail_message[1] == su + (sensor_index_t)1);
+    FlushMail((unsigned char)1);
+    su ++;
+  }
+  Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4));
+  hit_budget_left = (unsigned int)15;
+  ad_conv_delay[0] = 25 + 1;
+  su = (unsigned int)0;
+  while (su < (sensor_index_t)4) {
+    ad_conv_num = su;
+    Trigger_SU_Hit(su,32);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((unsigned int)mail_message[1] == ((su + (sensor_index_t)1) | (unsigned int)0x80));
+    FlushMail((unsigned char)1);
+    su ++;
+  }
+  Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4));
+  hit_budget_left = (unsigned int)80;
+  su = (unsigned int)(4 - 1);
+  while (hit_budget_left > (uint_least8_t)0) {
+    Random_AD_Delay();
+    Trigger_SU_Hit(su,33);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((sensor_index_t)((int)mail_message[1] & 0x07) == su + (sensor_index_t)1);
+    FlushMail((unsigned char)1);
+    if (su > (sensor_index_t)0) su --; else su = (unsigned int)(4 - 1);
+  }
+  return;
+}
+
+unsigned char switch_su_cmd[4] =
+  {(unsigned char)0x20,
+   (unsigned char)0x30,
+   (unsigned char)0x40,
+   (unsigned char)0x50};
+void Report_Event_Histo(void)
+{
+  sensor_index_t sen;
+  int class;
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    class = 0;
+    while (class < 10) class ++;
+    sen ++;
+  }
+  return;
+}
+
+static void Acquisition_Tests(void)
+{
+  sensor_index_t sen;
+  unsigned int hits;
+  int octets;
+  DEBIE_mode_t tmp;
+  DEBIE_mode_t tmp_0;
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Check_Nonzero(SU_state[sen] == (unsigned int)off_e);
+    Exec_TC(switch_su_cmd[sen],(unsigned char)0x55,41);
+    Check_No_Errors();
+    Check_Nonzero(SU_state[sen] == (unsigned int)start_switching_e);
+    sen ++;
+  }
+  Set_AD_Nominal();
+  max_adc_hits = (unsigned int)0;
+  ad_random_failures = (unsigned int)0;
+  check_current_errors = (unsigned int)0;
+  v_down_errors = (unsigned int)0;
+  Monitor_Health(61);
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Check_Nonzero(SU_state[sen] == (unsigned int)switching_e);
+    sen ++;
+  }
+  Monitor_Health(61);
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Check_Nonzero(SU_state[sen] == (unsigned int)on_e);
+    sen ++;
+  }
+  Exec_TC((unsigned char)0x30,(unsigned char)0x55,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Check_Nonzero(SU_state[1] == (unsigned int)on_e);
+  Clear_Errors();
+  Check_Nonzero(((int)telemetry_data.mode_status & 3) == 1);
+  Exec_TC((unsigned char)0x01,(unsigned char)0x01,41);
+  Check_No_Errors();
+  Check_Nonzero(((int)telemetry_data.mode_status & 3) == 2);
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Check_Nonzero(SU_state[sen] == (unsigned int)acquisition_e);
+    sen ++;
+  }
+  Exec_TC((unsigned char)0x20,(unsigned char)0x55,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  Clear_Errors();
+  Exec_TC((unsigned char)0x01,(unsigned char)0x01,41);
+  Check_Nonzero((int)telemetry_data.error_status == 1);
+  tmp = GetMode();
+  Check_Nonzero((int)tmp == 2);
+  Clear_Errors();
+  Set_AD_Delay(2);
+  hits = (unsigned int)0;
+  while (free_slot_index < max_events) {
+    hits ++;
+    internal_time ++;
+    hit_budget_left = (unsigned int)10;
+    Random_Event();
+    Acquire_Hit(31,51);
+  }
+  Report_Event_Histo();
+  while (hits > (unsigned int)0) {
+    hits --;
+    internal_time ++;
+    hit_budget_left = (unsigned int)10;
+    Random_Event();
+    Acquire_Hit(31,52);
+  }
+  Report_Event_Histo();
+  Send_TC((unsigned char)0x06,(unsigned char)0x06);
+  Check_No_Errors();
+  Check_Nonzero(TC_state == (unsigned int)SC_TM_e);
+  Handle_TC(41);
+  Check_Nonzero(TC_state == (unsigned int)SC_TM_e);
+  hits = (unsigned int)0;
+  hit_budget_left = (unsigned int)(10 + 2);
+  Check_Zero((int)event_queue_length);
+  octets = 0;
+  while (mail_count[0] == 0) {
+    if (telemetry_pointer < telemetry_end_pointer) TM_InterruptService();
+    else TM_InterruptService();
+    octets += 2;
+    Check_Nonzero(TC_state == (unsigned int)SC_TM_e);
+    if (hits < (unsigned int)(10 + 4)) {
+      internal_time ++;
+      Random_Event();
+      event_flag = (unsigned char)1;
+      Acquire_Hit(31,52);
+      hits ++;
+      if (hits <= (unsigned int)10) Check_Nonzero(event_queue_length == hits);
+      else Check_Nonzero(event_queue_length == (uint_least8_t)10);
+    }
+  }
+  Check_Zero((int)hit_budget_left);
+  Check_Nonzero(hits == (unsigned int)(10 + 4));
+  Handle_TC(41);
+  Check_Nonzero(TC_state == (unsigned int)TC_handling_e);
+  Check_Zero((int)event_queue_length);
+  Check_Nonzero(free_slot_index == (unsigned int)10);
+  tmp_0 = GetMode();
+  Check_Nonzero((int)tmp_0 == 2);
+  Check_Zero((int)telemetry_data.error_status & 1);
+  Exec_TC((unsigned char)0x30,(unsigned char)0x99,41);
+  Check_Nonzero((int)telemetry_data.error_status & 1);
+  Exec_TC((unsigned char)0x03,(unsigned char)0x03,41);
+  Check_Zero((int)telemetry_data.error_status & 1);
+  Exec_TC((unsigned char)0x02,(unsigned char)0x02,41);
+  Check_No_Errors();
+  Check_Nonzero(((int)telemetry_data.mode_status & 3) == 1);
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Check_Nonzero(SU_state[sen] == (unsigned int)on_e);
+    sen ++;
+  }
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Exec_TC(switch_su_cmd[sen],(unsigned char)0x73,41);
+    Check_No_Errors();
+    Check_Nonzero(SU_state[sen] == (unsigned int)off_e);
+    sen ++;
+  }
+  return;
+}
+
+void SU_Self_Test_Tests(void)
+{
+  sensor_index_t sen;
+  DEBIE_mode_t tmp;
+  DEBIE_mode_t tmp_0;
+  sim_self_test = (unsigned char)1;
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Check_Nonzero(SU_state[sen] == (unsigned int)off_e);
+    Exec_TC(switch_su_cmd[sen],(unsigned char)0x55,41);
+    Check_No_Errors();
+    Check_Nonzero(SU_state[sen] == (unsigned int)start_switching_e);
+    sen ++;
+  }
+  Set_AD_Nominal();
+  max_adc_hits = (unsigned int)0;
+  ad_random_failures = (unsigned int)0;
+  check_current_errors = (unsigned int)0;
+  v_down_errors = (unsigned int)0;
+  Monitor_Health(61);
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Check_Nonzero(SU_state[sen] == (unsigned int)switching_e);
+    sen ++;
+  }
+  Monitor_Health(61);
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Check_Nonzero(SU_state[sen] == (unsigned int)on_e);
+    sen ++;
+  }
+  tmp = GetMode();
+  Check_Nonzero((int)tmp == 1);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x30,(unsigned char)0x99,41);
+  Check_No_Errors();
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)2);
+  Check_Nonzero(SU_state[1] == (unsigned int)self_test_mon_e);
+  Exec_TC((unsigned char)0x40,(unsigned char)0x99,41);
+  Check_Nonzero((int)telemetry_data.error_status & 1);
+  Exec_TC((unsigned char)0x03,(unsigned char)0x03,41);
+  Check_Zero((int)telemetry_data.error_status & 1);
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)2);
+  Check_No_Errors();
+  while (health_mon_round != (uint_least8_t)round_7_e) Monitor_Health(61);
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)2);
+  Check_Nonzero(SU_state[1] == (unsigned int)self_test_mon_e);
+  Monitor_Health(61);
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)2);
+  Check_Nonzero(SU_state[1] == (unsigned int)self_test_e);
+  Check_Nonzero(health_mon_round == (uint_least8_t)round_6_e);
+  Monitor_Health(61);
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)0);
+  Check_Nonzero(SU_state[1] == (unsigned int)on_e);
+  Check_No_Errors();
+  tmp_0 = GetMode();
+  Check_Nonzero((int)tmp_0 == 1);
+  Check_No_Errors();
+  Exec_TC((unsigned char)0x30,(unsigned char)0x99,41);
+  Check_No_Errors();
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)2);
+  Check_Nonzero(SU_state[1] == (unsigned int)self_test_mon_e);
+  sim_self_test = (unsigned char)0;
+  while (health_mon_round != (uint_least8_t)round_7_e) Monitor_Health(61);
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)2);
+  Check_Nonzero(SU_state[1] == (unsigned int)self_test_mon_e);
+  Monitor_Health(61);
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)2);
+  Check_Nonzero(SU_state[1] == (unsigned int)self_test_e);
+  Check_Nonzero(health_mon_round == (uint_least8_t)round_6_e);
+  Monitor_Health(61);
+  Check_Nonzero(self_test_SU_number == (sensor_number_t)0);
+  Check_Nonzero(SU_state[1] == (unsigned int)on_e);
+  Check_Nonzero((int)telemetry_data.SU_status[1] & 0x10);
+  Check_Nonzero((int)telemetry_data.error_status == 0x20);
+  Clear_Errors();
+  hit_budget_left = (unsigned int)15;
+  Set_AD_Delay(2);
+  ad_conv_num = (unsigned int)0;
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    self_test_SU_number = sen + (sensor_index_t)1;
+    SU_state[sen] = self_test_trigger_e;
+    Trigger_SU_Hit(sen,31);
+    Check_Nonzero(SU_state[sen] == (unsigned int)self_test_e);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((sensor_index_t)mail_message[1] == sen + (sensor_index_t)1);
+    FlushMail((unsigned char)1);
+    sen ++;
+  }
+  Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4));
+  hit_budget_left = (unsigned int)15;
+  Set_AD_Delay(2);
+  ad_conv_num = (unsigned int)0;
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    self_test_SU_number = sen + (sensor_index_t)1;
+    SU_state[sen] = self_test_e;
+    Trigger_SU_Hit(sen,31);
+    Check_Nonzero(SU_state[sen] == (unsigned int)self_test_e);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((unsigned int)mail_message[1] == ((sen + (sensor_index_t)1) | (unsigned int)0x40));
+    FlushMail((unsigned char)1);
+    sen ++;
+  }
+  Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4));
+  hit_budget_left = (unsigned int)15;
+  Set_AD_Delay(2);
+  ad_conv_num = (unsigned int)0;
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    self_test_SU_number = sen + (sensor_index_t)1;
+    SU_state[sen] = on_e;
+    Trigger_SU_Hit(sen,31);
+    Check_Nonzero(SU_state[sen] == (unsigned int)on_e);
+    Check_Nonzero(mail_count[1] == 1);
+    Check_Nonzero((sensor_index_t)mail_message[1] == sen + (sensor_index_t)1);
+    FlushMail((unsigned char)1);
+    sen ++;
+  }
+  Check_Nonzero(hit_budget_left == (uint_least8_t)(15 - 4));
+  Check_No_Errors();
+  sen = (unsigned int)0;
+  while (sen < (sensor_index_t)4) {
+    Exec_TC(switch_su_cmd[sen],(unsigned char)0x73,41);
+    Check_No_Errors();
+    Check_Nonzero(SU_state[sen] == (unsigned int)off_e);
+    sen ++;
+  }
+  return;
+}
+
+static unsigned int test_round = (unsigned int)0;
+void StartSystem(unsigned char task_number)
+{
+  InitHealthMonitoring();
+  test_round ++;
+  TC_ISR_Tests();
+  Report_Checks();
+  TC_Task_Tests();
+  Report_Checks();
+  Monitoring_Task_Tests();
+  Report_Checks();
+  TM_Tests();
+  Report_Checks();
+  Hit_ISR_Tests();
+  Report_Checks();
+  Acquisition_Tests();
+  Report_Checks();
+  SU_Self_Test_Tests();
+  Report_Checks();
+  checks = (unsigned int)0;
+  exit(0);
+  return;
+}
+
+static char data_memory[65536];
+unsigned char *Data_Pointer(uint16_t address)
+{
+  unsigned char *__retres;
+  __retres = (unsigned char *)(& data_memory[address]);
+  return __retres;
+}
+
+void Set_Data_Byte(data_address_t addr, unsigned char value)
+{
+  data_memory[addr] = (char)value;
+  return;
+}
+
+unsigned char Get_Data_Byte(data_address_t addr)
+{
+  unsigned char value = (unsigned char)data_memory[addr];
+  return value;
+}
+
+unsigned char Get_Code_Byte(code_address_t addr)
+{
+  unsigned char __retres;
+  __retres = (unsigned char)0;
+  return __retres;
+}
+
+
diff --git a/debie1/.frama-c/debie1.parse/metrics.log b/debie1/.frama-c/debie1.parse/metrics.log
new file mode 100644
index 0000000000000000000000000000000000000000..3408124ef48f316571f88eefb6730573fa5421c4
--- /dev/null
+++ b/debie1/.frama-c/debie1.parse/metrics.log
@@ -0,0 +1,110 @@
+[metrics] Defined functions (191)
+=======================
+ Acquire_Hit (3 calls); AcquisitionTask (address taken) (0 call);
+ Acquisition_Tests (1 call); AttachInterrupt (1 call); Boot (1 call);
+ CalculateChecksum (1 call); CalculateQualityNumber (1 call);
+ Call_Patch (1 call); Check_Current (1 call); Check_No_Errors (71 calls);
+ Check_Nonzero (201 calls); Check_RAM (3 calls); Check_Type_Size (0 call);
+ Check_Zero (32 calls); ClassifyEvent (1 call); ClearErrorStatus (2 calls);
+ ClearEvents (3 calls); ClearModeStatusError (1 call);
+ ClearSoftwareError (2 calls); Clear_Errors (23 calls);
+ Clear_RTX_Errors (3 calls); Clear_SU_Error (2 calls);
+ Clear_TC_Timer_Overflow_Flag (1 call); Convert_AD (1 call);
+ CopyProgramCode (1 call); CreateTask (3 calls); DAC_SelfTest (0 call);
+ DPU_SelfTest (1 call); Data_Pointer (1 call); DelayAwhile (5 calls);
+ DisableAnalogSwitch (5 calls); DisableInterrupt (2 calls);
+ Disable_Hit_Trigger (4 calls); EnableAnalogSwitch (4 calls);
+ EnableInterrupt (1 call); Enable_Hit_Trigger (5 calls);
+ End_Of_ADC (3 calls); Event_Flag (1 call); ExceedsLimit (9 calls);
+ Exec_TC (107 calls); ExecuteChannelTest (10 calls); ExecuteCommand (1 call);
+ Fail_Check (2 calls); FindMinQualityRecord (1 call); FlushMail (12 calls);
+ GetElapsedTime (2 calls); GetFreeRecord (1 call);
+ GetMemoryConfiguration (1 call); GetMode (11 calls);
+ GetQualityTerm (5 calls); GetResetClass (1 call); GetVoltageStatus (0 call);
+ Get_Code_Byte (2 calls); Get_Data_Byte (3 calls); Get_LSB1_Counter (1 call);
+ Get_LSB2_Counter (1 call); Get_MSB_Counter (2 calls); Get_Result (4 calls);
+ HandleAcquisition (2 calls); HandleHealthMonitoring (2 calls);
+ HandleHitTrigger (2 calls); HandleTelecommand (4 calls);
+ Handle_TC (22 calls); HealthMonitoringTask (0 call);
+ HighVoltageCurrent (5 calls); HitTriggerTask (address taken) (0 call);
+ Hit_ISR_Tests (1 call); Hit_Trigger_Flag (1 call);
+ IncrementCounters (2 calls); InitAcquisitionTask (2 calls);
+ InitClassification (2 calls); InitCode_RAM (1 call); InitData_RAM (1 call);
+ InitHealthMonitoring (2 calls); InitHitTriggerTask (2 calls);
+ InitSystem (1 call); InitTC_LookUp (1 call); InitTelecommandTask (2 calls);
+ Init_DPU (1 call); Init_SU_Settings (4 calls); LowVoltageCurrent (2 calls);
+ MeasureTemperature (2 calls); MeasureVoltage (5 calls);
+ MemoryPatch (1 call); Monitor (1 call); Monitor_DPU_Voltage (1 call);
+ Monitor_Health (17 calls); Monitor_SU_Voltage (1 call);
+ Monitoring_Task_Tests (1 call); Next (1 call); Next_Rand (10 calls);
+ PatchCode (1 call); PatchExecCommandOk (1 call); Random_AD_Delay (1 call);
+ Random_Event (3 calls); ReadDelayCounters (1 call);
+ ReadRiseTimeCounter (1 call); ReadSensorUnit (2 calls);
+ Read_AD_Channel (3 calls); Read_Data_Memory (1 call); Read_TC_LSB (1 call);
+ Read_TC_MSB (1 call); Reboot (4 calls); RecordEvent (1 call);
+ Report_Checks (7 calls); Report_End_Of_ADC_Count (1 call);
+ Report_Event_Histo (2 calls); Report_Start_Conversion_Count (1 call);
+ ResetDelayCounters (6 calls); ResetEventQueueLength (2 calls);
+ ResetInterruptMask (1 call); ResetPeakDetector (12 calls);
+ RestoreSettings (1 call); Rise_Time_Counter (1 call);
+ RoughLogarithm (1 call); SU_Self_Test_Tests (1 call);
+ SelectSelfTestChannel (2 calls); SelectStartSwitchLevel (0 call);
+ SelectTriggerSwitchLevel (0 call); SelfTestChannel (1 call);
+ SelfTest_SU (1 call); SendTaskMail (2 calls); Send_Patch_Code (7 calls);
+ Send_Patch_Data (4 calls); Send_TC (17 calls); Send_TC_Word (12 calls);
+ SetErrorStatus (5 calls); SetInterruptMask (3 calls);
+ SetMemoryConfiguration (2 calls); SetMode (3 calls);
+ SetModeStatusError (8 calls); SetSensorUnitOff (7 calls);
+ SetSoftwareError (3 calls); SetTestPulseLevel (6 calls);
+ SetTimeSlice (1 call); SetTriggerLevel (32 calls); Set_AD_Delay (7 calls);
+ Set_AD_Nominal (3 calls); Set_AD_Unlimited (2 calls);
+ Set_DAC_Output (1 call); Set_Data_Byte (9 calls); Set_SU_Error (14 calls);
+ Set_SU_Self_Test_Ch (4 calls); Set_SU_TriggerLevels (4 calls);
+ Set_TC_Error (15 calls); Set_TC_Timer_Overflow_Flag (1 call);
+ Set_Test_Pulse_Level (1 call); Set_Trigger_SU (1 call);
+ ShortDelay (5 calls); Short_Value (14 calls); SignalMemoryErrors (1 call);
+ SignalPeakDetectorReset (1 call); Sim_Self_Test_Trigger (3 calls);
+ StartSystem (1 call); Start_Conversion (4 calls);
+ Start_SU_SwitchingOn (1 call); Switch_SU_Off (1 call);
+ Switch_SU_On (1 call); Switch_SU_State (11 calls); TC_ISR_Tests (1 call);
+ TC_Interrupt (4 calls); TC_InterruptService (1 call);
+ TC_Task_Tests (1 call); TC_Timer_Overflow_Flag (1 call);
+ TM_InterruptService (10 calls); TM_Tests (1 call);
+ TelecommandExecutionTask (address taken) (0 call);
+ TemperatureFailure (2 calls); TestMemBits (1 call); TestMemData (1 call);
+ TestMemSeq (1 call); Trigger_Hit (2 calls); Trigger_SU_Hit (13 calls);
+ Trigger_Source_0 (1 call); Trigger_Source_1 (1 call);
+ UpdatePeriodCounter (4 calls); UpdateTarget (1 call); UpdateTime (1 call);
+ Update_ADC_Channel_Reg (5 calls); Update_SU_State (4 calls);
+ V_Down (2 calls); VoltageFailure (0 call); WaitInterrupt (1 call);
+ WaitInterval (2 calls); WaitMail (2 calls); WaitTimeout (11 calls);
+ WriteMemory (1 call); Write_TM_LSB (10 calls); Write_TM_MSB (10 calls);
+ isr_send_message (7 calls); main (0 call); 
+
+Undefined functions (0)
+=======================
+ 
+
+'Extern' global variables (0)
+=============================
+ 
+
+Potential entry points (8)
+==========================
+ Check_Type_Size; DAC_SelfTest; GetVoltageStatus; HealthMonitoringTask;
+  SelectStartSwitchLevel; SelectTriggerSwitchLevel; VoltageFailure; main; 
+
+Global metrics
+============== 
+Sloc = 3077
+Decision point = 417
+Global variables = 104
+If = 310
+Loop = 75
+Goto = 42
+Assignment = 1118
+Exit point = 191
+Function = 191
+Function call = 1071
+Pointer dereferencing = 249
+Cyclomatic complexity = 608
diff --git a/debie1/.frama-c/debie1.parse/warnings.log b/debie1/.frama-c/debie1.parse/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..fab31b42d3db8183d2888a84967557d4bb8879e2
--- /dev/null
+++ b/debie1/.frama-c/debie1.parse/warnings.log
@@ -0,0 +1,2 @@
+code/health.c:2035:[kernel:parser:decimal-float] warning: Floating-point constant 1.085 is not represented exactly. Will use 0x1.15c28f5c28f5cp0.
+(warn-once: no further messages from category 'parser:decimal-float' will be emitted)
diff --git a/debie1/.frama-c/path.mk b/debie1/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/debie1/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/debie1/GNUmakefile b/debie1/GNUmakefile
deleted file mode 100644
index 7e5b3101beeefa91d29efb0978cbae4d84d789b9..0000000000000000000000000000000000000000
--- a/debie1/GNUmakefile
+++ /dev/null
@@ -1,69 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -I code/harness -I code -I code/intel/linux \
-               -DTRACE_HARNESS -DTRACE_TARGET
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-domains equality \
-  -eva-auto-loop-unroll 170 -eva-ilevel 16 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := debie1
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: $(sort $(wildcard code/*.c)) code/harness/harness.c code/intel/linux/target.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/debie1/frama-c-path.mk b/debie1/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/debie1/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/frama-c b/frama-c
index 5e840bb7060585b81d8fc0d76b3627ca2b8d004d..82ccc1c0c7e8e2d3261b4b7d198fa0ba64173a0b 160000
--- a/frama-c
+++ b/frama-c
@@ -1 +1 @@
-Subproject commit 5e840bb7060585b81d8fc0d76b3627ca2b8d004d
+Subproject commit 82ccc1c0c7e8e2d3261b4b7d198fa0ba64173a0b
diff --git a/gzip124/.frama-c/GNUmakefile b/gzip124/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..ab966e75bc7a355396cab144aa8ecc682114d89b
--- /dev/null
+++ b/gzip124/.frama-c/GNUmakefile
@@ -0,0 +1,67 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -include$(shell $(FRAMAC)-config -print-share-path)/libc/string.h \
+  -DSTDC_HEADERS=1 \
+  -DHAVE_UNISTD_H=1 \
+  -DDIRENT=1 \
+  -DNO_UTIME=1 \
+  -I$(shell $(FRAMAC)-config -print-share-path)/libc \
+  -I$(DIR) \
+
+## General flags
+FCFLAGS  += \
+  -add-symbolic-path=.:.. \
+  -nonterm-ignore do_exit \
+  -main eva_main \
+
+## Eva-specific flags
+EVAFLAGS += \
+  -slevel 4 \
+  -eva-no-alloc-returns-null \
+  -eva-no-builtins-auto \
+  -eva-widening-delay 3 \
+  -eva-widening-period 3 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = gzip124.eva
+
+gzip124.parse: \
+  ../gzip.c \
+  ../zip.c \
+  ../deflate.c \
+  ../trees.c \
+  ../bits.c \
+  ../unzip.c \
+  ../inflate.c \
+  ../util.c \
+  ../crypt.c \
+  ../lzw.c \
+  ../unlzw.c \
+  ../unpack.c \
+  ../unlzh.c \
+  ../getopt.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/stdlib.c \
+  fc_stubs.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/gzip124/fc_stubs.c b/gzip124/.frama-c/fc_stubs.c
similarity index 51%
rename from gzip124/fc_stubs.c
rename to gzip124/.frama-c/fc_stubs.c
index 1c583f0ce0d8de7f8f359ad4331b1b8ab7410f31..7c6c3e698dc050339cdaa9a156f6d3dfefb678e6 100644
--- a/gzip124/fc_stubs.c
+++ b/gzip124/.frama-c/fc_stubs.c
@@ -1,8 +1,14 @@
+// Stub for a main function which reads arguments from the command line, to be
+// used by the Eva plug-in.
+// This stub emulates non-deterministic input of up to 5 arguments, each up
+// to 256 characters long. This is sufficient to ensure arbitrary input in
+// virtually every case.
+// Do not forget to add option '-main eva_main' in order to use this stub.
+
 #ifdef __FRAMAC__
 # include "__fc_builtin.h"
 int main(int, char**);
-volatile int nondet;
-// main for EVA
+static volatile int nondet;
 int eva_main() {
   int argc = Frama_C_interval(0, 5);
   char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256];
diff --git a/gzip124/gzip124.eva/alarms.csv b/gzip124/.frama-c/gzip124.eva/alarms.csv
similarity index 100%
rename from gzip124/gzip124.eva/alarms.csv
rename to gzip124/.frama-c/gzip124.eva/alarms.csv
diff --git a/gzip124/gzip124.eva/metrics.log b/gzip124/.frama-c/gzip124.eva/metrics.log
similarity index 100%
rename from gzip124/gzip124.eva/metrics.log
rename to gzip124/.frama-c/gzip124.eva/metrics.log
diff --git a/gzip124/gzip124.eva/nonterm.log b/gzip124/.frama-c/gzip124.eva/nonterm.log
similarity index 88%
rename from gzip124/gzip124.eva/nonterm.log
rename to gzip124/.frama-c/gzip124.eva/nonterm.log
index b771bc0c66ba3649d0c4bee58b6e0852879cd540..ce66f210f70704c6a688452388ff86128e79daf8 100644
--- a/gzip124/gzip124.eva/nonterm.log
+++ b/gzip124/.frama-c/gzip124.eva/nonterm.log
@@ -4,7 +4,7 @@ stack: same_file :: gzip.c:1443 <-
        name_too_long :: gzip.c:903 <-
        create_outfile :: gzip.c:799 <-
        treat_file :: gzip.c:593 <-
-       main :: fc_stubs.c:15 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 gzip.c:1747:[nonterm] warning: unreachable return
 inflate.c:412:[nonterm] warning: non-terminating statement
@@ -15,7 +15,7 @@ stack 1: huft_build :: inflate.c:763 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 2: huft_build :: inflate.c:675 <-
          inflate_fixed :: inflate.c:904 <-
@@ -24,7 +24,7 @@ stack 2: huft_build :: inflate.c:675 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 3: huft_build :: inflate.c:683 <-
          inflate_fixed :: inflate.c:904 <-
@@ -33,7 +33,7 @@ stack 3: huft_build :: inflate.c:683 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 inflate.c:439:[nonterm] warning: non-terminating statement
 stack: huft_build :: inflate.c:763 <-
@@ -43,7 +43,7 @@ stack: huft_build :: inflate.c:763 <-
        unzip :: gzip.c:675 <-
        treat_stdin :: gzip.c:710 <-
        treat_file :: gzip.c:593 <-
-       main :: fc_stubs.c:15 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 inflate.c:454:[nonterm] warning: non-terminating statement
 stack 1: huft_build :: inflate.c:763 <-
@@ -53,7 +53,7 @@ stack 1: huft_build :: inflate.c:763 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 2: huft_build :: inflate.c:675 <-
          inflate_fixed :: inflate.c:904 <-
@@ -62,7 +62,7 @@ stack 2: huft_build :: inflate.c:675 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 3: huft_build :: inflate.c:683 <-
          inflate_fixed :: inflate.c:904 <-
@@ -71,7 +71,7 @@ stack 3: huft_build :: inflate.c:683 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 inflate.c:513:[nonterm] warning: non-terminating loop
 stack 1: inflate_codes :: inflate.c:691 <-
@@ -81,7 +81,7 @@ stack 1: inflate_codes :: inflate.c:691 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 2: inflate_codes :: inflate.c:691 <-
          inflate_fixed :: inflate.c:904 <-
@@ -89,7 +89,7 @@ stack 2: inflate_codes :: inflate.c:691 <-
          inflate :: unzip.c:120 <-
          unzip :: gzip.c:817 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 inflate.c:516:[nonterm] warning: non-terminating statement
 stack 1: inflate_codes :: inflate.c:691 <-
@@ -99,7 +99,7 @@ stack 1: inflate_codes :: inflate.c:691 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 2: inflate_codes :: inflate.c:691 <-
          inflate_fixed :: inflate.c:904 <-
@@ -107,7 +107,7 @@ stack 2: inflate_codes :: inflate.c:691 <-
          inflate :: unzip.c:120 <-
          unzip :: gzip.c:817 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 inflate.c:778:[nonterm] warning: non-terminating statement
 stack 1: inflate_dynamic :: inflate.c:900 <-
@@ -116,18 +116,18 @@ stack 1: inflate_dynamic :: inflate.c:900 <-
          unzip :: gzip.c:675 <-
          treat_stdin :: gzip.c:710 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 2: inflate_dynamic :: inflate.c:900 <-
          inflate_block :: inflate.c:931 <-
          inflate :: unzip.c:120 <-
          unzip :: gzip.c:817 <-
          treat_file :: gzip.c:593 <-
-         main :: fc_stubs.c:15 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 util.c:294:[nonterm] warning: non-terminating function call
-stack: add_envopt :: gzip.c:443 <- main :: fc_stubs.c:15 <- eva_main
+stack: add_envopt :: gzip.c:443 <- main :: fc_stubs.c:21 <- eva_main
 util.c:341:[nonterm] warning: unreachable return
 util.c:358:[nonterm] warning: unreachable return
 util.c:365:[nonterm] warning: unreachable return
-fc_stubs.c:15:[nonterm] warning: unreachable return
+fc_stubs.c:21:[nonterm] warning: unreachable return
diff --git a/gzip124/gzip124.eva/warnings.log b/gzip124/.frama-c/gzip124.eva/warnings.log
similarity index 95%
rename from gzip124/gzip124.eva/warnings.log
rename to gzip124/.frama-c/gzip124.eva/warnings.log
index ffa413dfa29bf7a062467fa2a62befbb5964450c..e8cbb7e3c62cd057762217956a56ad284f9fd58f 100644
--- a/gzip124/gzip124.eva/warnings.log
+++ b/gzip124/.frama-c/gzip124.eva/warnings.log
@@ -11,7 +11,7 @@ stack: huft_build :: inflate.c:763 <-
        unzip :: gzip.c:675 <-
        treat_stdin :: gzip.c:710 <-
        treat_file :: gzip.c:593 <-
-       main :: fc_stubs.c:15 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 inflate.c:412:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: huft_build :: inflate.c:675 <-
@@ -21,7 +21,7 @@ stack: huft_build :: inflate.c:675 <-
        unzip :: gzip.c:675 <-
        treat_stdin :: gzip.c:710 <-
        treat_file :: gzip.c:593 <-
-       main :: fc_stubs.c:15 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 inflate.c:412:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: huft_build :: inflate.c:683 <-
@@ -31,7 +31,7 @@ stack: huft_build :: inflate.c:683 <-
        unzip :: gzip.c:675 <-
        treat_stdin :: gzip.c:710 <-
        treat_file :: gzip.c:593 <-
-       main :: fc_stubs.c:15 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 gzip.c:675:[eva:locals-escaping] warning: locals {attr} escaping the scope of zip through file_type
 gzip.c:1487:[eva:garbled-mix] warning: The specification of function strrchr has generated a garbled mix for assigns clause assigns clause \result.
diff --git a/gzip124/gzip124.parse/framac.ast b/gzip124/.frama-c/gzip124.parse/framac.ast
similarity index 99%
rename from gzip124/gzip124.parse/framac.ast
rename to gzip124/.frama-c/gzip124.parse/framac.ast
index 8cd18d636b2c25d921eabfd29008fd9707632c14..6ef9d9cb19aaa3ac0cddbb85cfcf685752d09467 100644
--- a/gzip124/gzip124.parse/framac.ast
+++ b/gzip124/.frama-c/gzip124.parse/framac.ast
@@ -8064,7 +8064,6 @@ int getopt_long(int argc, char * const *argv, char const *options,
   return tmp;
 }
 
-int volatile nondet;
 int eva_main(void)
 {
   char argv0[256];
diff --git a/gzip124/gzip124.parse/metrics.log b/gzip124/.frama-c/gzip124.parse/metrics.log
similarity index 99%
rename from gzip124/gzip124.parse/metrics.log
rename to gzip124/.frama-c/gzip124.parse/metrics.log
index 3a40c43843130f616753ac4e42c23fdc184d691d..8533e57144fce36430f92998b5e1e9c7c0e5000b 100644
--- a/gzip124/gzip124.parse/metrics.log
+++ b/gzip124/.frama-c/gzip124.parse/metrics.log
@@ -51,7 +51,7 @@ Global metrics
 ============== 
 Sloc = 4942
 Decision point = 919
-Global variables = 149
+Global variables = 148
 If = 899
 Loop = 191
 Goto = 159
diff --git a/gzip124/gzip124.parse/warnings.log b/gzip124/.frama-c/gzip124.parse/warnings.log
similarity index 100%
rename from gzip124/gzip124.parse/warnings.log
rename to gzip124/.frama-c/gzip124.parse/warnings.log
diff --git a/gzip124/.frama-c/path.mk b/gzip124/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/gzip124/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/gzip124/GNUmakefile b/gzip124/GNUmakefile
deleted file mode 100644
index 4660fbd2bc8dd0647f651547ea8a84a34751b671..0000000000000000000000000000000000000000
--- a/gzip124/GNUmakefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH.
--include frama-c-path.mk
-
-FRAMAC_CONFIG ?= frama-c-config
-include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-
-# Define global parameters
-CPPFLAGS  = -include$(shell $(FRAMAC) -print-path)/libc/string.h \
-            -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DDIRENT=1 -DNO_UTIME=1 \
-            -I$(shell $(FRAMAC) -print-path)/libc -I$(DIR)/
-
-FCFLAGS  += \
-  -nonterm-ignore do_exit \
-  -main eva_main \
-
-EVAFLAGS += \
-  -slevel 4 \
-  -eva-no-alloc-returns-null \
-  -eva-no-builtins-auto \
-  -eva-widening-delay 3 \
-  -eva-widening-period 3 \
-
-# Export environment variable for Frama-C
-export FRAMA_C_MEMORY_FOOTPRINT	= 8
-
-MAIN_TARGET := gzip124
-TARGETS = $(MAIN_TARGET).eva
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-gzip124.parse: gzip.c zip.c deflate.c trees.c bits.c unzip.c inflate.c util.c \
-              crypt.c lzw.c unlzw.c unpack.c unlzh.c getopt.c \
-              $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdlib.c \
-              fc_stubs.c
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/gzip124/frama-c-path.mk b/gzip124/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/gzip124/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/hiredis/.frama-c/GNUmakefile b/hiredis/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..bdc4570a94bdcca3858924814ca1d561d3040f71
--- /dev/null
+++ b/hiredis/.frama-c/GNUmakefile
@@ -0,0 +1,69 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+FRAMAC_SHARE = $(shell $(FRAMAC)-config -print-share-path)
+
+MACHDEP = x86_32
+
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -include__fc_builtin.h \
+  -D_POSIX_C_SOURCE=200809L \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -main eva_main \
+  -warn-special-float none \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-ilevel 16 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+TEST_SRCS := \
+  $(sort $(wildcard ../*.c)) \
+  $(FRAMAC_SHARE)/libc/string.c \
+  $(FRAMAC_SHARE)/libc/netdb.c \
+  fc_stubs.c \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = hiredis-format.eva hiredis-misc.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+hiredis-format.parse: CPPFLAGS += -DEVA_TEST_FORMAT
+hiredis-format.parse: $(TEST_SRCS)
+
+hiredis-misc.parse: CPPFLAGS += -DEVA_TEST_MISC
+hiredis-misc.parse: $(TEST_SRCS)
+
+hiredis-tcp.parse: CPPFLAGS += -DEVA_TEST_TCP
+hiredis-tcp.parse: $(TEST_SRCS)
+
+hiredis-unix.parse: CPPFLAGS += -DEVA_TEST_UNIX
+hiredis-unix.parse: $(TEST_SRCS)
+
+hiredis-tcp-long.parse: CPPFLAGS += -DEVA_TEST_TCP -DEVA_TEST_BLOCKING_LONG
+hiredis-tcp-long.parse: $(TEST_SRCS)
+
+hiredis-unix-long.parse: CPPFLAGS += -DEVA_TEST_UNIX -DEVA_TEST_BLOCKING_LONG
+hiredis-unix-long.parse: $(TEST_SRCS)
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/itc-benchmarks/fc_stubs.c b/hiredis/.frama-c/fc_stubs.c
similarity index 100%
rename from itc-benchmarks/fc_stubs.c
rename to hiredis/.frama-c/fc_stubs.c
diff --git a/hiredis/hiredis-format.eva/alarms.csv b/hiredis/.frama-c/hiredis-format.eva/alarms.csv
similarity index 100%
rename from hiredis/hiredis-format.eva/alarms.csv
rename to hiredis/.frama-c/hiredis-format.eva/alarms.csv
diff --git a/hiredis/hiredis-format.eva/metrics.log b/hiredis/.frama-c/hiredis-format.eva/metrics.log
similarity index 89%
rename from hiredis/hiredis-format.eva/metrics.log
rename to hiredis/.frama-c/hiredis-format.eva/metrics.log
index 4adf0ad55b7ead32d9ff84f4df3a4c6228d428b4..49abbc215d14716f443cf1031e402d7becfb73ae 100644
--- a/hiredis/hiredis-format.eva/metrics.log
+++ b/hiredis/.frama-c/hiredis-format.eva/metrics.log
@@ -1,15 +1,16 @@
 [metrics] Eva coverage statistics
 =======================
-Syntactically reachable functions = 27 (out of 256)
+Syntactically reachable functions = 27 (out of 255)
 Semantically reached functions = 27
 Coverage estimation = 100.0%
 [metrics] References to non-analyzed functions
 ------------------------------------
 [metrics] Statements analyzed by Eva
 --------------------------
-1377 stmts in analyzed functions, 1282 stmts analyzed (93.1%)
+1373 stmts in analyzed functions, 1279 stmts analyzed (93.2%)
 bulklen: 5 stmts out of 5 (100.0%)
 countDigits: 21 stmts out of 21 (100.0%)
+eva_main: 13 stmts out of 13 (100.0%)
 redisFormatCommand: 5 stmts out of 5 (100.0%)
 sdsMakeRoomFor: 39 stmts out of 39 (100.0%)
 sdsReqType: 18 stmts out of 18 (100.0%)
@@ -28,7 +29,6 @@ main: 74 stmts out of 75 (98.7%)
 redisvFormatCommand: 237 stmts out of 244 (97.1%)
 redisFormatSdsCommandArgv: 52 stmts out of 55 (94.5%)
 redisFormatCommandArgv: 50 stmts out of 53 (94.3%)
-eva_main: 16 stmts out of 17 (94.1%)
 sdscatvprintf: 26 stmts out of 31 (83.9%)
 sdsull2str: 18 stmts out of 24 (75.0%)
 sdsHdrSize: 13 stmts out of 18 (72.2%)
diff --git a/hiredis/hiredis-format.eva/nonterm.log b/hiredis/.frama-c/hiredis-format.eva/nonterm.log
similarity index 86%
rename from hiredis/hiredis-format.eva/nonterm.log
rename to hiredis/.frama-c/hiredis-format.eva/nonterm.log
index fcc667e839f6fa2469f77fafb525b443ef7c1e02..2b765da1c78ed49519c26011e3c1e52d2855dbbf 100644
--- a/hiredis/hiredis-format.eva/nonterm.log
+++ b/hiredis/.frama-c/hiredis-format.eva/nonterm.log
@@ -2,11 +2,11 @@ hiredis.c:378:[nonterm] warning: non-terminating statement
 stack: redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 hiredis.c:384:[nonterm] warning: non-terminating statement
 stack: redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
diff --git a/hiredis/hiredis-format.eva/warnings.log b/hiredis/.frama-c/hiredis-format.eva/warnings.log
similarity index 97%
rename from hiredis/hiredis-format.eva/warnings.log
rename to hiredis/.frama-c/hiredis-format.eva/warnings.log
index db6715bf4f6faaa8e3360a69c97ecfb970910db7..3a1a5d6cc7e8429c0ddfb41d31efd1aa9b0ac768 100644
--- a/hiredis/hiredis-format.eva/warnings.log
+++ b/hiredis/.frama-c/hiredis-format.eva/warnings.log
@@ -5,7 +5,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:180 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -14,7 +14,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:180 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -23,7 +23,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:180 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -31,7 +31,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:180 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -39,7 +39,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:180 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -48,7 +48,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -57,7 +57,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -66,7 +66,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -74,7 +74,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -82,7 +82,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -91,7 +91,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -100,7 +100,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -109,7 +109,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -117,7 +117,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -125,7 +125,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:186 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -134,7 +134,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -143,7 +143,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -152,7 +152,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -160,7 +160,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -168,7 +168,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -177,7 +177,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -186,7 +186,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -195,7 +195,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -203,7 +203,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -211,7 +211,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:192 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -220,7 +220,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -229,7 +229,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -238,7 +238,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -246,7 +246,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -254,7 +254,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -263,7 +263,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -272,7 +272,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -281,7 +281,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -289,7 +289,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -297,7 +297,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:198 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -306,7 +306,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -315,7 +315,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -324,7 +324,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -332,7 +332,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -340,7 +340,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -349,7 +349,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -358,7 +358,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -367,7 +367,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -375,7 +375,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -383,7 +383,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:204 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -392,7 +392,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -401,7 +401,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -410,7 +410,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -418,7 +418,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -426,7 +426,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -435,7 +435,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -444,7 +444,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -453,7 +453,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -461,7 +461,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -469,7 +469,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:210 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -478,7 +478,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -487,7 +487,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -496,7 +496,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -504,7 +504,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -512,7 +512,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -522,7 +522,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -532,7 +532,7 @@ stack: sdssetlen_3 :: sds.c:236 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:215:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetalloc_3 :: sds.c:238 <-
@@ -542,7 +542,7 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -551,7 +551,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
@@ -560,7 +560,7 @@ stack: sdssetlen_3 :: sds.c:385 <-
        redisvFormatCommand :: hiredis.c:532 <-
        redisFormatCommand :: test.c:216 <-
        test_format_commands :: test.c:1022 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.c:523:[eva:garbled-mix] warning: The specification of function vsnprintf has generated a garbled mix for assigns clause assigns clause *
 (s + (0 .. n - 1)).
diff --git a/hiredis/hiredis-format.parse/framac.ast b/hiredis/.frama-c/hiredis-format.parse/framac.ast
similarity index 99%
rename from hiredis/hiredis-format.parse/framac.ast
rename to hiredis/.frama-c/hiredis-format.parse/framac.ast
index ef8a673ece23a8ddf16ac8cb7ee6d5773ee1d034..9ea662a630e8a04d3ead0d828ee0c91dd8cf6ed6 100644
--- a/hiredis/hiredis-format.parse/framac.ast
+++ b/hiredis/.frama-c/hiredis-format.parse/framac.ast
@@ -9,6 +9,7 @@
 #include "netdb.c"
 #include "netdb.h"
 #include "netinet/in.h"
+#include "poll.h"
 #include "signal.h"
 #include "stdarg.h"
 #include "stddef.h"
@@ -233,12 +234,6 @@ struct dictIterator {
    dictEntry *nextEntry ;
 };
 typedef struct dictIterator dictIterator;
-typedef unsigned long nfds_t;
-struct pollfd {
-   int fd ;
-   short events ;
-   short revents ;
-};
 enum connection_type {
     CONN_TCP = 0,
     CONN_UNIX = 1,
@@ -2258,35 +2253,6 @@ static int _dictKeyIndex_0(dict *ht, void const *key)
   return_label: return __retres;
 }
 
-int main(int argc, char **argv);
-
-int eva_main(void)
-{
-  int __retres;
-  char argv0[256];
-  char argv1[256];
-  char argv2[256];
-  char argv3[256];
-  char argv4[256];
-  int tmp_0;
-  int argc = Frama_C_interval(0,5);
-  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0};
-  {
-    int i = 0;
-    /*@ loop unroll 5; */
-    while (i < 5) {
-      Frama_C_make_unknown(argv[i],(unsigned int)255);
-      *(argv[i] + 255) = (char)0;
-      i ++;
-    }
-  }
-  tmp_0 = main(argc,argv);
-  __retres = tmp_0;
-  goto return_label;
-  __retres = 0;
-  return_label: return __retres;
-}
-
 __inline static size_t sdslen_0(sds const s)
 {
   size_t __retres;
@@ -4007,8 +3973,6 @@ __inline static void sdssetalloc_1(sds s, size_t newlen)
   return;
 }
 
-extern int poll(struct pollfd *__fds, nfds_t __nfds, int __timeout);
-
 void redisNetClose(redisContext *c)
 {
   if (c) 
@@ -13003,4 +12967,27 @@ int main(int argc, char **argv)
   return_label: return __retres;
 }
 
+int eva_main(void)
+{
+  char argv0[256];
+  char argv1[256];
+  char argv2[256];
+  char argv3[256];
+  char argv4[256];
+  int tmp_0;
+  int argc = Frama_C_interval(0,5);
+  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0};
+  {
+    int i = 0;
+    /*@ loop unroll 5; */
+    while (i < 5) {
+      Frama_C_make_unknown(argv[i],(unsigned int)255);
+      *(argv[i] + 255) = (char)0;
+      i ++;
+    }
+  }
+  tmp_0 = main(argc,argv);
+  return tmp_0;
+}
+
 
diff --git a/hiredis/hiredis-format.parse/metrics.log b/hiredis/.frama-c/hiredis-format.parse/metrics.log
similarity index 98%
rename from hiredis/hiredis-format.parse/metrics.log
rename to hiredis/.frama-c/hiredis-format.parse/metrics.log
index 40cd77542ac8459d7f28887a36d82b0c6eaffbb1..522c0e137bed2a875f9fcd411b80a1efb623261e 100644
--- a/hiredis/hiredis-format.parse/metrics.log
+++ b/hiredis/.frama-c/hiredis-format.parse/metrics.log
@@ -113,9 +113,9 @@
  test_free_null (0 call); test_invalid_timeout_errors (0 call);
  test_reply_reader (0 call); test_throughput (0 call); usec (12 calls); 
 
-Undefined functions (1)
+Undefined functions (0)
 =======================
- poll (1 call); 
+ 
 
 'Extern' global variables (0)
 =============================
@@ -150,15 +150,15 @@ Potential entry points (94)
 
 Global metrics
 ============== 
-Sloc = 6244
+Sloc = 6240
 Decision point = 1175
 Global variables = 8
 If = 919
 Loop = 88
-Goto = 495
-Assignment = 2506
+Goto = 494
+Assignment = 2504
 Exit point = 255
-Function = 256
+Function = 255
 Function call = 1397
 Pointer dereferencing = 1784
 Cyclomatic complexity = 1430
diff --git a/hiredis/hiredis-format.parse/warnings.log b/hiredis/.frama-c/hiredis-format.parse/warnings.log
similarity index 89%
rename from hiredis/hiredis-format.parse/warnings.log
rename to hiredis/.frama-c/hiredis-format.parse/warnings.log
index 0a40b6e2b673f6f73e219447184b03ecab79e61e..0b87cdd9cd8cce54c4de097e36a067c50ec236bc 100644
--- a/hiredis/hiredis-format.parse/warnings.log
+++ b/hiredis/.frama-c/hiredis-format.parse/warnings.log
@@ -2,7 +2,6 @@ async.c:279:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion
 async.c:285:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisCallback *
 async.c:475:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisReply *
 async.c:479:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisReply *
-fc_stubs.c:10:[kernel:typing:implicit-function-declaration] warning: Calling undeclared function main. Old style K&R code?
 test.c:309:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to void **
 test.c:477:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisContext *
 test.c:817:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to void **
diff --git a/hiredis/hiredis-misc.eva/alarms.csv b/hiredis/.frama-c/hiredis-misc.eva/alarms.csv
similarity index 99%
rename from hiredis/hiredis-misc.eva/alarms.csv
rename to hiredis/.frama-c/hiredis-misc.eva/alarms.csv
index 15545cec04c3760f5cd9a9f3c57ecaa16c367f69..13d95aae76109f1eb4b4a85ec2af9d2005ebee02 100644
--- a/hiredis/hiredis-misc.eva/alarms.csv
+++ b/hiredis/.frama-c/hiredis-misc.eva/alarms.csv
@@ -337,6 +337,3 @@ FRAMAC_SHARE/libc	unistd.h	738	access	precondition	Unknown	valid_string_path: va
 FRAMAC_SHARE/libc/sys	socket.h	334	connect	precondition	Unknown	valid_sockfd: 0 ≤ sockfd < 1024
 FRAMAC_SHARE/libc/sys	socket.h	370	getsockopt	precondition	Unknown	valid_sockfd: 0 ≤ sockfd < 1024
 FRAMAC_SHARE/libc/sys	socket.h	490	setsockopt	precondition	Unknown	valid_sockfd: 0 ≤ sockfd < 1024
-sys	poll.h	57	poll	assigns clause	Unknown	assigns \result, *__fds;
-sys	poll.h	57	poll	from clause	Unknown	assigns *__fds \from *__fds, __nfds, __timeout;
-sys	poll.h	57	poll	from clause	Unknown	assigns \result \from *__fds, __nfds, __timeout;
diff --git a/hiredis/hiredis-misc.eva/metrics.log b/hiredis/.frama-c/hiredis-misc.eva/metrics.log
similarity index 95%
rename from hiredis/hiredis-misc.eva/metrics.log
rename to hiredis/.frama-c/hiredis-misc.eva/metrics.log
index cb09aeed039664f18039f48531368702852e0385..f8a1485e12327a6bd7d53dadd0b561fd8485de58 100644
--- a/hiredis/hiredis-misc.eva/metrics.log
+++ b/hiredis/.frama-c/hiredis-misc.eva/metrics.log
@@ -1,8 +1,8 @@
 [metrics] Eva coverage statistics
 =======================
-Syntactically reachable functions = 96 (out of 256)
-Semantically reached functions = 66
-Coverage estimation = 68.8% 
+Syntactically reachable functions = 95 (out of 255)
+Semantically reached functions = 65
+Coverage estimation = 68.4% 
 
 Unreached functions (30) =
   <async.c>: __redisAsyncCopyError; __redisAsyncDisconnect; __redisAsyncFree;
@@ -27,7 +27,7 @@ Initializer of redisContextDefaultFuncs references redisNetRead (at hiredis.c:51
 Initializer of redisContextDefaultFuncs references redisNetWrite (at hiredis.c:52)
 [metrics] Statements analyzed by Eva
 --------------------------
-1924 stmts in analyzed functions, 1788 stmts analyzed (92.9%)
+1920 stmts in analyzed functions, 1785 stmts analyzed (93.0%)
 __redisReaderSetError: 21 stmts out of 21 (100.0%)
 __redisReaderSetErrorOOM: 2 stmts out of 2 (100.0%)
 __redisReaderSetErrorProtocolByte: 4 stmts out of 4 (100.0%)
@@ -40,6 +40,7 @@ createIntegerObject: 19 stmts out of 19 (100.0%)
 createNilObject: 18 stmts out of 18 (100.0%)
 createReplyObject: 8 stmts out of 8 (100.0%)
 createStringObject: 36 stmts out of 36 (100.0%)
+eva_main: 13 stmts out of 13 (100.0%)
 freeReplyObject: 13 stmts out of 13 (100.0%)
 hi_malloc: 4 stmts out of 4 (100.0%)
 hi_strdup: 4 stmts out of 4 (100.0%)
@@ -80,7 +81,6 @@ main: 76 stmts out of 77 (98.7%)
 redisContextWaitReady: 32 stmts out of 33 (97.0%)
 processLineItem: 87 stmts out of 90 (96.7%)
 moveToNextTask: 26 stmts out of 27 (96.3%)
-eva_main: 16 stmts out of 17 (94.1%)
 processItem: 47 stmts out of 50 (94.0%)
 redisFree: 15 stmts out of 16 (93.8%)
 redisContextConnectUnix: 48 stmts out of 55 (87.3%)
diff --git a/hiredis/hiredis-misc.eva/nonterm.log b/hiredis/.frama-c/hiredis-misc.eva/nonterm.log
similarity index 81%
rename from hiredis/hiredis-misc.eva/nonterm.log
rename to hiredis/.frama-c/hiredis-misc.eva/nonterm.log
index cbaaf458868363776dfd0607ba7b94099a643682..132db8bb24a827adfc4fadc0b2e871ada887a1a6 100644
--- a/hiredis/hiredis-misc.eva/nonterm.log
+++ b/hiredis/.frama-c/hiredis-misc.eva/nonterm.log
@@ -2,85 +2,85 @@ read.c:553:[nonterm] warning: non-terminating function call
 stack 1: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:326 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 2: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:338 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 3: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:350 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 4: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:358 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 5: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:368 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 6: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:377 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 7: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:387 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 8: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:396 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 9: processItem :: read.c:644 <-
          redisReaderGetReply :: test.c:405 <-
          test_reply_reader :: test.c:1024 <-
-         main :: fc_stubs.c:10 <-
+         main :: fc_stubs.c:21 <-
          eva_main
 stack 10: processItem :: read.c:644 <-
           redisReaderGetReply :: test.c:415 <-
           test_reply_reader :: test.c:1024 <-
-          main :: fc_stubs.c:10 <-
+          main :: fc_stubs.c:21 <-
           eva_main
 stack 11: processItem :: read.c:644 <-
           redisReaderGetReply :: test.c:424 <-
           test_reply_reader :: test.c:1024 <-
-          main :: fc_stubs.c:10 <-
+          main :: fc_stubs.c:21 <-
           eva_main
 stack 12: processItem :: read.c:644 <-
           redisReaderGetReply :: test.c:435 <-
           test_reply_reader :: test.c:1024 <-
-          main :: fc_stubs.c:10 <-
+          main :: fc_stubs.c:21 <-
           eva_main
 stack 13: processItem :: read.c:644 <-
           redisReaderGetReply :: test.c:443 <-
           test_reply_reader :: test.c:1024 <-
-          main :: fc_stubs.c:10 <-
+          main :: fc_stubs.c:21 <-
           eva_main
 stack 14: processItem :: read.c:644 <-
           redisReaderGetReply :: test.c:446 <-
           test_reply_reader :: test.c:1024 <-
-          main :: fc_stubs.c:10 <-
+          main :: fc_stubs.c:21 <-
           eva_main
 stack 15: processItem :: read.c:644 <-
           redisReaderGetReply :: test.c:454 <-
           test_reply_reader :: test.c:1024 <-
-          main :: fc_stubs.c:10 <-
+          main :: fc_stubs.c:21 <-
           eva_main
 stack 16: processItem :: read.c:644 <-
           redisReaderGetReply :: test.c:456 <-
           test_reply_reader :: test.c:1024 <-
-          main :: fc_stubs.c:10 <-
+          main :: fc_stubs.c:21 <-
           eva_main
 stack 17: processItem :: read.c:644 <-
           redisReaderGetReply :: test.c:464 <-
           test_reply_reader :: test.c:1024 <-
-          main :: fc_stubs.c:10 <-
+          main :: fc_stubs.c:21 <-
           eva_main
diff --git a/hiredis/hiredis-misc.eva/warnings.log b/hiredis/.frama-c/hiredis-misc.eva/warnings.log
similarity index 99%
rename from hiredis/hiredis-misc.eva/warnings.log
rename to hiredis/.frama-c/hiredis-misc.eva/warnings.log
index 19d3471c886d32804edb6926cbd3466373f20846..e7439bb58de3d9991f96057fe8f8125ee2522f7a 100644
--- a/hiredis/hiredis-misc.eva/warnings.log
+++ b/hiredis/.frama-c/hiredis-misc.eva/warnings.log
@@ -10,21 +10,21 @@ stack: sdssetalloc_3 :: sds.c:238 <-
        sdscatlen :: read.c:605 <-
        redisReaderFeed :: test.c:347 <-
        test_reply_reader :: test.c:1024 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:148:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
        sdscatlen :: read.c:605 <-
        redisReaderFeed :: test.c:347 <-
        test_reply_reader :: test.c:1024 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:385 <-
        sdscatlen :: read.c:605 <-
        redisReaderFeed :: test.c:347 <-
        test_reply_reader :: test.c:1024 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 sds.h:151:[kernel] warning: all target addresses were invalid. This path is assumed to be dead.
 stack: sdssetlen_3 :: sds.c:236 <-
@@ -32,10 +32,9 @@ stack: sdssetlen_3 :: sds.c:236 <-
        sdscatlen :: read.c:605 <-
        redisReaderFeed :: test.c:347 <-
        test_reply_reader :: test.c:1024 <-
-       main :: fc_stubs.c:10 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 net.c:102:[kernel:annot:missing-spec] warning: Neither code nor specification for function strerror_r, generating default assigns from the prototype
-net.c:250:[kernel:annot:missing-spec] warning: Neither code nor specification for function poll, generating default assigns from the prototype
 net.c:495:[eva] warning: ignoring unsupported \allocates clause
 test.c:511:[eva] warning: ignoring unsupported \allocates clause
 [eva:garbled-mix] warning: Garbled mix generated during analysis:
diff --git a/hiredis/hiredis-misc.parse/framac.ast b/hiredis/.frama-c/hiredis-misc.parse/framac.ast
similarity index 99%
rename from hiredis/hiredis-misc.parse/framac.ast
rename to hiredis/.frama-c/hiredis-misc.parse/framac.ast
index 1a7212e5d0f19e84412a7403f3c3de46fd47c471..f85de624a6debf7f1580ad367fd47bf28e1ccfcd 100644
--- a/hiredis/hiredis-misc.parse/framac.ast
+++ b/hiredis/.frama-c/hiredis-misc.parse/framac.ast
@@ -9,6 +9,7 @@
 #include "netdb.c"
 #include "netdb.h"
 #include "netinet/in.h"
+#include "poll.h"
 #include "signal.h"
 #include "stdarg.h"
 #include "stddef.h"
@@ -233,12 +234,6 @@ struct dictIterator {
    dictEntry *nextEntry ;
 };
 typedef struct dictIterator dictIterator;
-typedef unsigned long nfds_t;
-struct pollfd {
-   int fd ;
-   short events ;
-   short revents ;
-};
 enum connection_type {
     CONN_TCP = 0,
     CONN_UNIX = 1,
@@ -2258,35 +2253,6 @@ static int _dictKeyIndex_0(dict *ht, void const *key)
   return_label: return __retres;
 }
 
-int main(int argc, char **argv);
-
-int eva_main(void)
-{
-  int __retres;
-  char argv0[256];
-  char argv1[256];
-  char argv2[256];
-  char argv3[256];
-  char argv4[256];
-  int tmp_0;
-  int argc = Frama_C_interval(0,5);
-  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0};
-  {
-    int i = 0;
-    /*@ loop unroll 5; */
-    while (i < 5) {
-      Frama_C_make_unknown(argv[i],(unsigned int)255);
-      *(argv[i] + 255) = (char)0;
-      i ++;
-    }
-  }
-  tmp_0 = main(argc,argv);
-  __retres = tmp_0;
-  goto return_label;
-  __retres = 0;
-  return_label: return __retres;
-}
-
 __inline static size_t sdslen_0(sds const s)
 {
   size_t __retres;
@@ -4007,8 +3973,6 @@ __inline static void sdssetalloc_1(sds s, size_t newlen)
   return;
 }
 
-extern int poll(struct pollfd *__fds, nfds_t __nfds, int __timeout);
-
 void redisNetClose(redisContext *c)
 {
   if (c) 
@@ -13005,4 +12969,27 @@ int main(int argc, char **argv)
   return_label: return __retres;
 }
 
+int eva_main(void)
+{
+  char argv0[256];
+  char argv1[256];
+  char argv2[256];
+  char argv3[256];
+  char argv4[256];
+  int tmp_0;
+  int argc = Frama_C_interval(0,5);
+  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, (char *)0};
+  {
+    int i = 0;
+    /*@ loop unroll 5; */
+    while (i < 5) {
+      Frama_C_make_unknown(argv[i],(unsigned int)255);
+      *(argv[i] + 255) = (char)0;
+      i ++;
+    }
+  }
+  tmp_0 = main(argc,argv);
+  return tmp_0;
+}
+
 
diff --git a/hiredis/hiredis-misc.parse/metrics.log b/hiredis/.frama-c/hiredis-misc.parse/metrics.log
similarity index 98%
rename from hiredis/hiredis-misc.parse/metrics.log
rename to hiredis/.frama-c/hiredis-misc.parse/metrics.log
index 1ae3025709a5ccda711668ad479605fc725fee87..e4c204773f558f41f77783ab0b6ec759462597a6 100644
--- a/hiredis/hiredis-misc.parse/metrics.log
+++ b/hiredis/.frama-c/hiredis-misc.parse/metrics.log
@@ -113,9 +113,9 @@
  test_free_null (1 call); test_invalid_timeout_errors (0 call);
  test_reply_reader (1 call); test_throughput (0 call); usec (12 calls); 
 
-Undefined functions (1)
+Undefined functions (0)
 =======================
- poll (1 call); 
+ 
 
 'Extern' global variables (0)
 =============================
@@ -150,15 +150,15 @@ Potential entry points (92)
 
 Global metrics
 ============== 
-Sloc = 6246
+Sloc = 6242
 Decision point = 1175
 Global variables = 8
 If = 919
 Loop = 88
-Goto = 495
-Assignment = 2506
+Goto = 494
+Assignment = 2504
 Exit point = 255
-Function = 256
+Function = 255
 Function call = 1399
 Pointer dereferencing = 1784
 Cyclomatic complexity = 1430
diff --git a/hiredis/hiredis-misc.parse/warnings.log b/hiredis/.frama-c/hiredis-misc.parse/warnings.log
similarity index 89%
rename from hiredis/hiredis-misc.parse/warnings.log
rename to hiredis/.frama-c/hiredis-misc.parse/warnings.log
index 0a40b6e2b673f6f73e219447184b03ecab79e61e..0b87cdd9cd8cce54c4de097e36a067c50ec236bc 100644
--- a/hiredis/hiredis-misc.parse/warnings.log
+++ b/hiredis/.frama-c/hiredis-misc.parse/warnings.log
@@ -2,7 +2,6 @@ async.c:279:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion
 async.c:285:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisCallback *
 async.c:475:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisReply *
 async.c:479:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisReply *
-fc_stubs.c:10:[kernel:typing:implicit-function-declaration] warning: Calling undeclared function main. Old style K&R code?
 test.c:309:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to void **
 test.c:477:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to redisContext *
 test.c:817:[kernel:typing:implicit-conv-void-ptr] warning: implicit conversion from void * to void **
diff --git a/hiredis/.frama-c/path.mk b/hiredis/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/hiredis/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/hiredis/GNUmakefile b/hiredis/GNUmakefile
deleted file mode 100644
index 42cf3651f2951b20a549eaa516594ffda8508d05..0000000000000000000000000000000000000000
--- a/hiredis/GNUmakefile
+++ /dev/null
@@ -1,83 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-FRAMAC_SHARE = $(shell $(FRAMAC_CONFIG) -print-share-path)
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += \
-  -include__fc_builtin.h \
-  -D_POSIX_C_SOURCE=200809L \
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -main eva_main \
-  -warn-special-float none \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-ilevel 16 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := hiredis-format
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva hiredis-misc.eva
-
-TEST_SRCS := \
-  $(sort $(wildcard *.c)) \
-  $(FRAMAC_SHARE)/libc/string.c \
-  $(FRAMAC_SHARE)/libc/netdb.c \
-
-# Default target
-all: $(TARGETS)
-
-hiredis-format.parse: CPPFLAGS += -DEVA_TEST_FORMAT
-hiredis-format.parse: $(TEST_SRCS)
-
-hiredis-misc.parse: CPPFLAGS += -DEVA_TEST_MISC
-hiredis-misc.parse: $(TEST_SRCS)
-
-hiredis-tcp.parse: CPPFLAGS += -DEVA_TEST_TCP
-hiredis-tcp.parse: $(TEST_SRCS)
-
-hiredis-unix.parse: CPPFLAGS += -DEVA_TEST_UNIX
-hiredis-unix.parse: $(TEST_SRCS)
-
-hiredis-tcp-long.parse: CPPFLAGS += -DEVA_TEST_TCP -DEVA_TEST_BLOCKING_LONG
-hiredis-tcp-long.parse: $(TEST_SRCS)
-
-hiredis-unix-long.parse: CPPFLAGS += -DEVA_TEST_UNIX -DEVA_TEST_BLOCKING_LONG
-hiredis-unix-long.parse: $(TEST_SRCS)
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/hiredis/fc_stubs.c b/hiredis/fc_stubs.c
deleted file mode 100644
index 1ccf70aa018fc5aa9a2b46a1b350062135087141..0000000000000000000000000000000000000000
--- a/hiredis/fc_stubs.c
+++ /dev/null
@@ -1,12 +0,0 @@
-int eva_main() {
-  int argc = Frama_C_interval(0, 5);
-  char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256];
-  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0};
-  //@ loop unroll 5;
-  for (int i = 0; i < 5; i++) {
-    Frama_C_make_unknown(argv[i], 255);
-    argv[i][255] = 0;
-  }
-  return main(argc, argv);
-  return 0;
-}
diff --git a/hiredis/frama-c-path.mk b/hiredis/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/hiredis/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/icpc/.frama-c/GNUmakefile b/icpc/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..7890738ac04cb2719c217ccffabcc6c5ec07e755
--- /dev/null
+++ b/icpc/.frama-c/GNUmakefile
@@ -0,0 +1,46 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -warn-special-float none \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -slevel 16 \
+  -eva-domains equality \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = icpc.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+icpc.parse: \
+  ../src/impls.c \
+  ../src/roco.c \
+  ../src/sim.c \
+  ../src/main.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/icpc/.frama-c/icpc.eva/alarms.csv b/icpc/.frama-c/icpc.eva/alarms.csv
new file mode 100644
index 0000000000000000000000000000000000000000..885b59dc3253d8a2d837b1af7d0980340a25296d
--- /dev/null
+++ b/icpc/.frama-c/icpc.eva/alarms.csv
@@ -0,0 +1,10 @@
+directory	file	line	function	property kind	status	property
+FRAMAC_SHARE/libc	math.h	325	exp	precondition	Unknown	finite_domain: x ≤ 0x1.62e42fefa39efp+9
+FRAMAC_SHARE/libc	math.h	449	fabs	precondition	Unknown	finite_arg: \is_finite(x)
+FRAMAC_SHARE/libc	stdio.h	207	fprintf	assigns clause	Unknown	assigns \result, *stream;
+FRAMAC_SHARE/libc	stdio.h	207	fprintf	from clause	Unknown	assigns *stream \from *stream, *(format + (0 ..));
+FRAMAC_SHARE/libc	stdio.h	207	fprintf	from clause	Unknown	assigns \result \from *stream, *(format + (0 ..));
+src	impls.c	26	PT1_Filter	precondition of exp	Unknown	finite_domain: x ≤ 0x1.62e42fefa39efp+9
+src	impls.c	96	Sleep	signed_overflow	Unknown	_t + delayMs ≤ 2147483647
+src	roco.c	170	RoCo_process	precondition of fabs	Unknown	finite_arg: \is_finite(x)
+src	roco.c	228	RoCo_process	precondition of fabs	Unknown	finite_arg: \is_finite(x)
diff --git a/icpc/.frama-c/icpc.eva/metrics.log b/icpc/.frama-c/icpc.eva/metrics.log
new file mode 100644
index 0000000000000000000000000000000000000000..21bf7dc4fa0a86a1eae9c66ae754df479a7e4d7e
--- /dev/null
+++ b/icpc/.frama-c/icpc.eva/metrics.log
@@ -0,0 +1,26 @@
+[metrics] Eva coverage statistics
+=======================
+Syntactically reachable functions = 16 (out of 18)
+Semantically reached functions = 16
+Coverage estimation = 100.0%
+[metrics] References to non-analyzed functions
+------------------------------------
+[metrics] Statements analyzed by Eva
+--------------------------
+433 stmts in analyzed functions, 415 stmts analyzed (95.8%)
+Interpolate_from_curve: 15 stmts out of 15 (100.0%)
+Limiter_out: 6 stmts out of 6 (100.0%)
+Ramp_getDir: 2 stmts out of 2 (100.0%)
+RoCo_init: 35 stmts out of 35 (100.0%)
+Sim_init: 12 stmts out of 12 (100.0%)
+Sim_process: 37 stmts out of 37 (100.0%)
+Sleep: 2 stmts out of 2 (100.0%)
+Time: 1 stmts out of 1 (100.0%)
+Timer_elapsedTime: 2 stmts out of 2 (100.0%)
+Timer_start: 2 stmts out of 2 (100.0%)
+Timer_tick: 2 stmts out of 2 (100.0%)
+Turn_on_delay: 8 stmts out of 8 (100.0%)
+main: 51 stmts out of 51 (100.0%)
+Ramp_out: 22 stmts out of 23 (95.7%)
+RoCo_process: 213 stmts out of 229 (93.0%)
+PT1_Filter: 5 stmts out of 6 (83.3%)
diff --git a/itc-benchmarks/02_wo_Defects.eva/nonterm.log b/icpc/.frama-c/icpc.eva/nonterm.log
similarity index 100%
rename from itc-benchmarks/02_wo_Defects.eva/nonterm.log
rename to icpc/.frama-c/icpc.eva/nonterm.log
diff --git a/icpc/.frama-c/icpc.eva/warnings.log b/icpc/.frama-c/icpc.eva/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..7bab5cda38b83c985b521856c5610c427916dc55
--- /dev/null
+++ b/icpc/.frama-c/icpc.eva/warnings.log
@@ -0,0 +1 @@
+src/main.c:33:[kernel:annot:missing-spec] warning: Neither code nor specification for function fprintf, generating default assigns from the prototype
diff --git a/icpc/.frama-c/icpc.parse/framac.ast b/icpc/.frama-c/icpc.parse/framac.ast
new file mode 100644
index 0000000000000000000000000000000000000000..36fa337d6c05cbe07a9d1107d96cc5d9d3f86f38
--- /dev/null
+++ b/icpc/.frama-c/icpc.parse/framac.ast
@@ -0,0 +1,822 @@
+/* Generated by Frama-C */
+#include "errno.h"
+#include "math.h"
+#include "stdarg.h"
+#include "stddef.h"
+#include "stdio.h"
+typedef unsigned int uint32;
+typedef int sint32;
+typedef short sint16;
+typedef unsigned short uint16;
+typedef char boolean;
+typedef double real64;
+typedef real64 PT1_t;
+struct __anonstruct_Curve_t_1 {
+   uint16 numPoints ;
+   real64 x[10] ;
+   real64 y[10] ;
+};
+typedef struct __anonstruct_Curve_t_1 Curve_t;
+typedef real64 Delay_t;
+typedef real64 Timer_t;
+struct __anonstruct_Ramp_t_2 {
+   sint16 dir ;
+   real64 state ;
+   real64 target ;
+};
+typedef struct __anonstruct_Ramp_t_2 Ramp_t;
+real64 Engine_maxVoltage_PARAM;
+
+real64 Engine_minVoltage_PARAM;
+
+real64 Battery_voltage;
+real64 dT;
+real64 Engine_realVoltage;
+real64 Env_humidity;
+real64 Env_temperature;
+boolean Global_emergencyMode;
+boolean LegSensor_atMark;
+real64 LegSensor_signal;
+real64 PT1_Filter(PT1_t *state, real64 x, real64 t1, real64 dt);
+
+real64 Interpolate_from_curve(Curve_t *curve, real64 x);
+
+boolean Turn_on_delay(Delay_t *delay, boolean signal, real64 timeLimit,
+                      real64 dt);
+
+void Timer_start(Timer_t *timer);
+
+real64 Timer_elapsedTime(Timer_t *timer);
+
+void Timer_tick(Timer_t *timer, real64 dt);
+
+real64 Ramp_out(Ramp_t *data, real64 target, real64 slopePos,
+                real64 slopeNeg, real64 dt);
+
+sint16 Ramp_getDir(Ramp_t *data);
+
+real64 Ramp_getValue(Ramp_t *data);
+
+boolean Ramp_targetReached(Ramp_t *data);
+
+real64 Limiter_out(real64 min, real64 input, real64 max);
+
+void Sleep(sint32 delayMs);
+
+sint32 Time(void);
+
+real64 PT1_Filter(PT1_t *state, real64 x, real64 t1, real64 dt)
+{
+  real64 __retres;
+  if (t1 == 0.0) *state = x;
+  else {
+    real64 c = exp(- dt / t1);
+    *state = (1.0 - c) * x + c * *state;
+  }
+  __retres = *state;
+  return __retres;
+}
+
+real64 Interpolate_from_curve(Curve_t *curve, real64 x)
+{
+  sint16 i;
+  real64 result = 0.0;
+  if (x <= curve->x[0]) result = curve->y[0];
+  else 
+    if (x >= curve->x[(int)curve->numPoints - 1]) result = curve->y[(int)curve->numPoints - 1];
+    else {
+      i = (short)((int)curve->numPoints - 2);
+      while ((int)i >= 0) {
+        if (x >= curve->x[i]) {
+          result = curve->y[i] + ((x - curve->x[i]) / (curve->x[(int)i + 1] - curve->x[i])) * (
+                                 curve->y[(int)i + 1] - curve->y[i]);
+          break;
+        }
+        i = (sint16)((int)i - 1);
+      }
+    }
+  return result;
+}
+
+boolean Turn_on_delay(Delay_t *delay, boolean signal, real64 timeLimit,
+                      real64 dt)
+{
+  boolean result;
+  if (signal) 
+    if (*delay < timeLimit) {
+      *delay += dt;
+      result = (char)0;
+    }
+    else result = (char)1;
+  else {
+    *delay = 0.0;
+    result = (char)0;
+  }
+  return result;
+}
+
+void Timer_start(Timer_t *timer)
+{
+  *timer = 0.0;
+  return;
+}
+
+real64 Timer_elapsedTime(Timer_t *timer)
+{
+  real64 __retres;
+  __retres = *timer;
+  return __retres;
+}
+
+void Timer_tick(Timer_t *timer, real64 dt)
+{
+  *timer += dt;
+  return;
+}
+
+static sint32 _t;
+void Sleep(sint32 delayMs)
+{
+  _t += delayMs;
+  return;
+}
+
+sint32 Time(void)
+{
+  return _t;
+}
+
+real64 Ramp_out(Ramp_t *data, real64 target, real64 slopePos,
+                real64 slopeNeg, real64 dt)
+{
+  real64 __retres;
+  data->target = target;
+  if (data->state < target) {
+    if (slopePos != 0.0) 
+      if ((int)data->dir == -1) data->state = target;
+      else {
+        data->state += slopePos * dt;
+        if (data->state > target) data->state = target;
+        data->dir = (short)1;
+      }
+    else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (data->state > target) 
+      if (slopeNeg != 0.0) 
+        if ((int)data->dir == 1) data->state = target;
+        else {
+          data->state -= slopeNeg * dt;
+          if (data->state < target) data->state = target;
+          data->dir = (short)(-1);
+        }
+  }
+  if (data->state == target) data->dir = (short)0;
+  __retres = data->state;
+  return __retres;
+}
+
+sint16 Ramp_getDir(Ramp_t *data)
+{
+  sint16 __retres;
+  __retres = data->dir;
+  return __retres;
+}
+
+real64 Ramp_getValue(Ramp_t *data)
+{
+  real64 __retres;
+  __retres = data->state;
+  return __retres;
+}
+
+boolean Ramp_targetReached(Ramp_t *data)
+{
+  boolean __retres;
+  __retres = (char)(data->state == data->target);
+  return __retres;
+}
+
+real64 Limiter_out(real64 min, real64 input, real64 max)
+{
+  real64 result = input;
+  if (result < min) result = min;
+  if (result > max) result = max;
+  return result;
+}
+
+void RoCo_init(void);
+
+void RoCo_process(void);
+
+Curve_t RoCo_acceleration_CURVE;
+
+Curve_t RoCo_accelerationFast_CURVE;
+
+Curve_t RoCo_deceleration_CURVE;
+
+Curve_t RoCo_decelerationFast_CURVE;
+
+real64 RoCo_angleAtMark_PARAM;
+
+Curve_t LegSensorSignalToAngle_CURVE;
+
+real64 RoCo_angleReachedThreshold1_PARAM;
+
+real64 RoCo_angleReachedThreshold2_PARAM;
+
+real64 RoCo_batteryLowLimit_PARAM;
+
+real64 RoCo_batteryLowDelay_PARAM;
+
+boolean RoCo_checkBatteryVoltage_PARAM;
+
+real64 RoCo_humidityLimit_PARAM;
+
+boolean RoCo_checkHumidity_PARAM;
+
+real64 RoCo_envTempLowerLimit_PARAM;
+
+real64 RoCo_envTempUpperLimit_PARAM;
+
+real64 RoCo_TempFltT_PARAM;
+
+boolean RoCo_hasMinMaxAngles_PARAM;
+
+real64 RoCo_maxAngle_PARAM;
+
+real64 RoCo_minAngle_PARAM;
+
+real64 RoCo_initMoveSpeed_PARAM;
+
+real64 RoCo_initRampSlopeNeg_PARAM;
+
+real64 RoCo_initRampSlopePos_PARAM;
+
+real64 RoCo_idlePosition_PARAM;
+
+real64 RoCo_initTimeout_PARAM;
+
+real64 RoCo_shutdownTimeout_PARAM;
+
+real64 RoCo_stepSpeed_PARAM;
+
+real64 RoCo_TimeSlopeNeg_PARAM;
+
+real64 RoCo_TimeSlopePos_PARAM;
+
+Curve_t EngineSpeedToVoltage_CURVE;
+
+real64 RoCo_voltageFilter_PARAM;
+
+boolean RoCo_activeDesired;
+boolean RoCo_commandMoveByAngle;
+real64 RoCo_desiredDeltaAngle;
+boolean RoCo_commandMoveToAngle;
+real64 RoCo_desiredTargetAngle;
+boolean RoCo_moveFast;
+boolean RoCo_commandShutOff;
+boolean RoCo_error;
+boolean RoCo_isActive;
+real64 RoCo_legAngle;
+boolean RoCo_legAngleValid;
+real64 RoCo_engineVoltage;
+Curve_t RoCo_acceleration_CURVE =
+  {.numPoints = (unsigned short)4,
+   .x = {0.0, 0.33, 0.67, 1.0},
+   .y = {0.0, 0.2, 0.5, 1.0}};
+Curve_t RoCo_accelerationFast_CURVE =
+  {.numPoints = (unsigned short)4,
+   .x = {0.0, 0.33, 0.67, 1.0},
+   .y = {0.0, 2.0, 4.0, 5.0}};
+boolean RoCo_adaptationActive = (char)1;
+real64 RoCo_angleAtMark_PARAM = 19.0;
+real64 RoCo_angleReachedThreshold1_PARAM = 5.0;
+real64 RoCo_angleReachedThreshold1Fast_PARAM = 10.0;
+real64 RoCo_angleReachedThreshold2_PARAM = 0.5;
+real64 RoCo_batteryLowLimit_PARAM = 19.5;
+real64 RoCo_batteryLowDelay_PARAM = 60.0;
+boolean RoCo_checkBatteryVoltage_PARAM = (char)1;
+boolean RoCo_checkHumidity_PARAM = (char)0;
+Curve_t RoCo_deceleration_CURVE =
+  {.numPoints = (unsigned short)4,
+   .x = {0.0, 0.33, 0.67, 1.0},
+   .y = {0.0, 0.25, 0.75, 1.0}};
+Curve_t RoCo_decelerationFast_CURVE =
+  {.numPoints = (unsigned short)4,
+   .x = {0.0, 0.33, 0.67, 1.0},
+   .y = {0.0, 2.0, 4.0, 5.0}};
+real64 RoCo_envTempLowerLimit_PARAM = 5.0;
+real64 RoCo_envTempUpperLimit_PARAM = 30.0;
+boolean RoCo_hasMinMaxAngles_PARAM = (char)1;
+real64 RoCo_humidityLimit_PARAM = 0.8;
+real64 RoCo_idlePosition_PARAM = 0.0;
+real64 RoCo_initMoveSpeed_PARAM = 1.0;
+real64 RoCo_initRampSlopeNeg_PARAM = 1.0;
+real64 RoCo_initRampSlopePos_PARAM = 1.0;
+real64 RoCo_initStandstillTimeout_PARAM = 2.0;
+real64 RoCo_initTimeout_PARAM = 20.0;
+real64 RoCo_initialDeltaSearchRange_PARAM = 2.0;
+real64 RoCo_initialDeltaSearchTimeout_PARAM = 2.0;
+real64 RoCo_maxAngle_PARAM = 120.0;
+real64 RoCo_minAngle_PARAM = - 120.0;
+real64 RoCo_shutdownTimeout_PARAM = 30.0;
+real64 RoCo_stepSpeed_PARAM = 2.0;
+real64 RoCo_TempFltT_PARAM = 0.1;
+real64 RoCo_TimeSlopeNeg_PARAM = 1.0;
+real64 RoCo_TimeSlopePos_PARAM = 0.5;
+real64 RoCo_voltageFilter_PARAM = 0.1;
+real64 Engine_maxVoltage_PARAM = 24.0;
+real64 Engine_minVoltage_PARAM = - 24.0;
+Curve_t EngineSpeedToVoltage_CURVE =
+  {.numPoints = (unsigned short)5,
+   .x = {- 3.0, - 1.5, 0.0, 1.5, 3.0},
+   .y = {- 24.0, - 15.0, 0.0, 15.0, 24.0}};
+Curve_t LegSensorSignalToAngle_CURVE =
+  {.numPoints = (unsigned short)4,
+   .x = {- 24.0, - 12.0, 12.0, 24.0},
+   .y = {- 60.0, - 30.0, 30.0, 60.0}};
+boolean RoCo_isAdapted;
+static real64 angleDiffRequest;
+static real64 desiredEngineVoltage;
+static boolean initBackwards;
+static boolean limitationActive;
+static real64 prevAngleSignal;
+static real64 rampValue;
+static boolean wasActive;
+static boolean wasInit;
+static boolean enabled;
+static real64 rampTarget;
+static real64 filteredEnvTemp;
+static sint32 direction;
+static real64 targetAngle;
+static boolean init;
+static boolean final;
+static boolean deltaSearchPhase;
+static Ramp_t initRamp = {.dir = (short)0, .state = 0.0, .target = 0.0};
+static Timer_t initTimer;
+static Ramp_t moveTimeRamp = {.dir = (short)0, .state = 0.0, .target = 0.0};
+static PT1_t envTempFilter;
+static Timer_t shutdownTimer;
+static real64 voltageFilter;
+static Delay_t batteryLowDelay;
+static Delay_t standstillDelay;
+static real64 adaptation[2] = {0.0, 0.0};
+static boolean rampHighReached = (char)0;
+static boolean wasRampEnded;
+void RoCo_init(void)
+{
+  enabled = (char)0;
+  angleDiffRequest = 0.0;
+  desiredEngineVoltage = 0.0;
+  initBackwards = (char)0;
+  initTimer = 0.0;
+  limitationActive = (char)0;
+  prevAngleSignal = 0.0;
+  envTempFilter = Env_temperature;
+  rampValue = 0.0;
+  filteredEnvTemp = 0.0;
+  direction = 0;
+  targetAngle = 0.0;
+  batteryLowDelay = 0.0;
+  shutdownTimer = 0.0;
+  rampTarget = 0.0;
+  voltageFilter = 0.0;
+  wasActive = (char)0;
+  wasInit = (char)0;
+  deltaSearchPhase = (char)0;
+  init = (char)0;
+  final = (char)0;
+  RoCo_activeDesired = (char)0;
+  RoCo_commandMoveByAngle = (char)0;
+  RoCo_commandMoveToAngle = (char)0;
+  RoCo_commandShutOff = (char)0;
+  RoCo_desiredDeltaAngle = 0.0;
+  RoCo_desiredTargetAngle = 0.0;
+  RoCo_moveFast = (char)0;
+  RoCo_isActive = (char)0;
+  RoCo_legAngle = 0.0;
+  RoCo_legAngleValid = (char)0;
+  RoCo_error = (char)0;
+  RoCo_engineVoltage = 0.0;
+  RoCo_isAdapted = (char)0;
+  return;
+}
+
+void RoCo_process(void)
+{
+  real64 t9;
+  real64 t10;
+  real64 t11;
+  Curve_t *t12;
+  real64 t13;
+  boolean t14;
+  real64 t15;
+  int tmp_2;
+  int tmp_0;
+  real64 t1 = Battery_voltage;
+  real64 t2 = Env_humidity;
+  real64 t3 = Env_temperature;
+  boolean t4 = LegSensor_atMark;
+  real64 t5 = LegSensor_signal;
+  filteredEnvTemp = PT1_Filter(& envTempFilter,t3,RoCo_TempFltT_PARAM,dT);
+  if (filteredEnvTemp > RoCo_envTempLowerLimit_PARAM) 
+    if (filteredEnvTemp < RoCo_envTempUpperLimit_PARAM) {
+      int tmp;
+      if (t2 < RoCo_humidityLimit_PARAM) tmp = 1;
+      else 
+        if (! RoCo_checkHumidity_PARAM) tmp = 1; else tmp = 0;
+      tmp_0 = tmp;
+    }
+    else tmp_0 = 0;
+  else tmp_0 = 0;
+  if (tmp_0) {
+    boolean tmp_1;
+    tmp_1 = Turn_on_delay(& batteryLowDelay,
+                          (char)(t1 < RoCo_batteryLowLimit_PARAM),
+                          RoCo_batteryLowDelay_PARAM,dT);
+    if (tmp_1) 
+      if (! RoCo_checkBatteryVoltage_PARAM) 
+        _LOR: if (! RoCo_error) tmp_2 = 1; else tmp_2 = 0;
+      else tmp_2 = 0;
+    else goto _LOR;
+  }
+  else tmp_2 = 0;
+  enabled = (char)tmp_2;
+  if (! enabled) {
+    int tmp_3;
+    if (wasActive) 
+      if (RoCo_activeDesired) tmp_3 = 1; else tmp_3 = 0;
+    else tmp_3 = 0;
+    wasActive = (char)tmp_3;
+    RoCo_isActive = (char)0;
+    RoCo_engineVoltage = 0.0;
+  }
+  else 
+    if (RoCo_activeDesired) goto _LOR_4;
+    else 
+      if (RoCo_isActive) {
+        _LOR_4:
+        {
+          int tmp_19;
+          t13 = RoCo_voltageFilter_PARAM;
+          t15 = Interpolate_from_curve(& LegSensorSignalToAngle_CURVE,t5);
+          RoCo_legAngle += t15;
+          if (t4) {
+            RoCo_legAngle = RoCo_angleAtMark_PARAM;
+            RoCo_legAngleValid = (char)1;
+          }
+          if (RoCo_activeDesired) 
+            if (! wasActive) {
+              if (! RoCo_legAngleValid) init = (char)1;
+              RoCo_isActive = (char)1;
+            }
+          if (! RoCo_activeDesired) 
+            if (wasActive) 
+              if (! init) 
+                if (! final) RoCo_commandShutOff = (char)1;
+          if (init) {
+            real64 tmp_4;
+            t14 = (char)(RoCo_angleAtMark_PARAM > RoCo_idlePosition_PARAM);
+            if (! wasActive) Timer_start(& initTimer);
+            tmp_4 = Timer_elapsedTime(& initTimer);
+            ;
+            if (tmp_4 > RoCo_initTimeout_PARAM) goto _LOR_0;
+            else {
+              boolean tmp_6;
+              double tmp_5;
+              ;
+              ;
+              tmp_5 = fabs(t15);
+              tmp_6 = Turn_on_delay(& standstillDelay,(char)(tmp_5 < 0.001),
+                                    RoCo_initStandstillTimeout_PARAM,dT);
+              if (tmp_6) 
+                _LOR_0:
+                if (! initBackwards) {
+                  initBackwards = (char)1;
+                  Timer_start(& initTimer);
+                  Turn_on_delay(& standstillDelay,(char)0,
+                                RoCo_initStandstillTimeout_PARAM,dT);
+                }
+                else {
+                  RoCo_error = (char)1;
+                  RoCo_isActive = (char)0;
+                  init = (char)0;
+                }
+            }
+            if ((int)initBackwards ^ (int)t14) rampTarget = RoCo_initMoveSpeed_PARAM;
+            else rampTarget = - RoCo_initMoveSpeed_PARAM;
+            angleDiffRequest = Ramp_out(& initRamp,rampTarget,
+                                        RoCo_initRampSlopePos_PARAM,
+                                        RoCo_initRampSlopeNeg_PARAM,dT);
+            if (RoCo_legAngleValid) {
+              init = (char)0;
+              initBackwards = (char)0;
+            }
+          }
+          if (! init) {
+            double tmp_9;
+            sint16 tmp_11;
+            double tmp_12;
+            if (RoCo_commandShutOff) {
+              final = (char)1;
+              RoCo_commandShutOff = (char)0;
+              targetAngle = RoCo_idlePosition_PARAM;
+              Timer_start(& shutdownTimer);
+              RoCo_activeDesired = (char)0;
+            }
+            if (! final) {
+              if (RoCo_commandMoveToAngle) {
+                targetAngle = RoCo_desiredTargetAngle;
+                RoCo_commandMoveToAngle = (char)0;
+                direction = 0;
+              }
+              else goto _LAND;
+            }
+            else 
+              _LAND:
+              if (! final) 
+                if (RoCo_commandMoveByAngle) {
+                  targetAngle = RoCo_legAngle + RoCo_desiredDeltaAngle;
+                  if (RoCo_desiredDeltaAngle == 0.0) direction = 0;
+                  else 
+                    if (RoCo_desiredDeltaAngle > 0.0) direction = -1;
+                    else direction = 1;
+                  RoCo_commandMoveByAngle = (char)0;
+                }
+            if (RoCo_hasMinMaxAngles_PARAM) targetAngle = Limiter_out
+                                            (RoCo_minAngle_PARAM,targetAngle,
+                                             RoCo_maxAngle_PARAM);
+            t9 = RoCo_legAngle - targetAngle;
+            if (RoCo_moveFast) t11 = RoCo_angleReachedThreshold1Fast_PARAM;
+            else t11 = RoCo_angleReachedThreshold1_PARAM;
+            if (RoCo_adaptationActive) t11 += adaptation[RoCo_moveFast];
+            tmp_9 = fabs(t9);
+            ;
+            if (tmp_9 > t11) 
+              if (direction == 0) {
+                real64 tmp_8;
+                if (! RoCo_hasMinMaxAngles_PARAM) tmp_8 = t9;
+                else {
+                  double tmp_7;
+                  tmp_7 = fabs(t9);
+                  if (tmp_7 >= 180.0) tmp_8 = t9; else tmp_8 = - t9;
+                }
+                if (tmp_8 > 0.0) direction = 1; else direction = -1;
+              }
+            rampTarget = 0.0;
+            if (RoCo_legAngleValid) {
+              double tmp_10;
+              tmp_10 = fabs(t9);
+              ;
+              if (tmp_10 > t11) 
+                if (t9 > 0.0) {
+                  if (0 > direction) goto _LOR_1; else goto _LAND_0;
+                }
+                else {
+                  _LAND_0: ;
+                  if (t9 < 0.0) 
+                    if (0 < direction) _LOR_1: rampTarget = 1.0;
+                }
+            }
+            rampValue = Ramp_out(& moveTimeRamp,rampTarget,
+                                 RoCo_TimeSlopePos_PARAM,
+                                 RoCo_TimeSlopeNeg_PARAM,dT);
+            tmp_11 = Ramp_getDir(& moveTimeRamp);
+            if (-1 == (int)tmp_11) 
+              if (RoCo_moveFast) t12 = & RoCo_decelerationFast_CURVE;
+              else t12 = & RoCo_deceleration_CURVE;
+            else 
+              if (RoCo_moveFast) t12 = & RoCo_accelerationFast_CURVE;
+              else t12 = & RoCo_acceleration_CURVE;
+            angleDiffRequest = Interpolate_from_curve(t12,rampValue);
+            angleDiffRequest *= (double)direction;
+            t10 = RoCo_legAngle - targetAngle;
+            tmp_12 = fabs(rampValue);
+            if (tmp_12 == 1.0) rampHighReached = (char)1;
+            if (rampValue == 0.0) {
+              double tmp_15;
+              if (RoCo_adaptationActive) 
+                if (! wasRampEnded) 
+                  if (rampHighReached) 
+                    if (direction > 0) {
+                      if (t10 > 0.0) goto _LOR_2; else goto _LAND_1;
+                    }
+                    else {
+                      _LAND_1: ;
+                      if (direction < 0) 
+                        if (t10 < 0.0) {
+                          _LOR_2:
+                          {
+                            double tmp_13;
+                            tmp_13 = fabs(t10);
+                            adaptation[RoCo_moveFast] += tmp_13;
+                            RoCo_isAdapted = (char)1;
+                          }
+                        }
+                    }
+              tmp_15 = fabs(t10);
+              ;
+              if (tmp_15 > RoCo_angleReachedThreshold2_PARAM) {
+                double tmp_14;
+                if (t10 > 0.0) tmp_14 = - 1.0; else tmp_14 = 1.0;
+                angleDiffRequest += (tmp_14 * RoCo_stepSpeed_PARAM) * dT;
+              }
+              rampHighReached = (char)0;
+            }
+            wasRampEnded = (char)(rampValue == 0.0);
+          }
+          if (final) 
+            if (RoCo_legAngleValid) {
+              double tmp_16;
+              tmp_16 = fabs(RoCo_legAngle - RoCo_idlePosition_PARAM);
+              ;
+              if (tmp_16 < RoCo_angleReachedThreshold2_PARAM) {
+                double tmp_17;
+                tmp_17 = fabs(angleDiffRequest);
+                if (tmp_17 < 0.05) goto _LOR_3; else goto _LAND_3;
+              }
+              else goto _LAND_3;
+            }
+            else {
+              real64 tmp_18;
+              _LAND_3:
+              { /* sequence */
+                tmp_18 = Timer_elapsedTime(& shutdownTimer);
+                ;
+              }
+              if (tmp_18 > RoCo_shutdownTimeout_PARAM) {
+                _LOR_3:
+                {
+                  final = (char)0;
+                  RoCo_isActive = (char)0;
+                  RoCo_legAngleValid = (char)0;
+                }
+              }
+            }
+          desiredEngineVoltage = Interpolate_from_curve(& EngineSpeedToVoltage_CURVE,
+                                                        angleDiffRequest);
+          desiredEngineVoltage = Limiter_out(Engine_minVoltage_PARAM,
+                                             desiredEngineVoltage,
+                                             Engine_maxVoltage_PARAM);
+          if (Engine_maxVoltage_PARAM == desiredEngineVoltage) tmp_19 = 1;
+          else 
+            if (Engine_minVoltage_PARAM == desiredEngineVoltage) tmp_19 = 1;
+            else tmp_19 = 0;
+          limitationActive = (char)tmp_19;
+          RoCo_engineVoltage = PT1_Filter(& voltageFilter,
+                                          desiredEngineVoltage,t13,dT);
+          wasInit = init;
+          wasActive = RoCo_isActive;
+          Timer_tick(& shutdownTimer,dT);
+          Timer_tick(& initTimer,dT);
+        }
+      }
+      else RoCo_engineVoltage = 0.0;
+  return;
+}
+
+void Sim_process(void);
+
+void Sim_init(void);
+
+real64 buf1;
+real64 buf2;
+real64 buf3;
+real64 buf4;
+real64 buf5;
+real64 internalPosition = 22.5;
+real64 oldInternalPosition;
+real64 Sim_maxPos_PARAM = 100.0;
+real64 Sim_minPos_PARAM = - 100.0;
+PT1_t Srv_PT1;
+void Sim_process(void)
+{
+  real64 tmp;
+  int tmp_0;
+  real64 t1 = RoCo_engineVoltage;
+  real64 t2 = Engine_realVoltage;
+  uint32 t3 = (unsigned int)LegSensor_atMark;
+  real64 t4 = LegSensor_signal;
+  buf5 = buf4;
+  buf4 = buf3;
+  buf3 = buf2;
+  buf2 = buf1;
+  buf1 = t1;
+  Sim_maxPos_PARAM = RoCo_maxAngle_PARAM + 1.0;
+  Sim_minPos_PARAM = RoCo_minAngle_PARAM - 1.0;
+  ;
+  ;
+  tmp = PT1_Filter(& Srv_PT1,buf5 * 0.9,0.15,dT);
+  ;
+  internalPosition = Limiter_out(internalPosition + tmp * dT,
+                                 Sim_minPos_PARAM,Sim_maxPos_PARAM);
+  t4 = internalPosition - oldInternalPosition;
+  if (oldInternalPosition < RoCo_angleAtMark_PARAM) {
+    if (RoCo_angleAtMark_PARAM <= internalPosition) tmp_0 = 1;
+    else goto _LAND;
+  }
+  else {
+    _LAND: ;
+    if (oldInternalPosition > RoCo_angleAtMark_PARAM) 
+      if (RoCo_angleAtMark_PARAM >= internalPosition) tmp_0 = 1;
+      else tmp_0 = 0;
+    else tmp_0 = 0;
+  }
+  t3 = (unsigned int)((unsigned char)tmp_0);
+  t2 = buf5 * 0.9;
+  oldInternalPosition = internalPosition;
+  Engine_realVoltage = t2;
+  LegSensor_atMark = (char)t3;
+  LegSensor_signal = t4 / 2.5;
+  return;
+}
+
+void Sim_init(void)
+{
+  Engine_realVoltage = 0.0;
+  LegSensor_atMark = (char)0;
+  LegSensor_signal = 0.0;
+  buf1 = 0.0;
+  buf2 = 0.0;
+  buf3 = 0.0;
+  buf4 = 0.0;
+  buf5 = 0.0;
+  internalPosition = 20.0;
+  oldInternalPosition = 0.0;
+  Srv_PT1 = 0.0;
+  return;
+}
+
+char *output_header =
+  (char *)"time(ms)\tengineVoltage\tlegAngle\tlegAngleValid\tisActive\n";
+char *output_row_fmt_string = (char *)"%d\t%f\t%f\t%d\t%d\n";
+int main(void)
+{
+  int __retres;
+  sint32 lastTime = Time();
+  dT = 0.02;
+  RoCo_init();
+  Sim_init();
+  Battery_voltage = 21.3;
+  Env_humidity = 0.5;
+  Env_temperature = 20.0;
+  Global_emergencyMode = (char)0;
+  RoCo_activeDesired = (char)1;
+  RoCo_moveFast = (char)0;
+  int cnt = 0;
+  {
+    void *__va_args[1] = {(void *)0};
+    fprintf(__fc_stderr,(char const *)output_header,
+            (void * const *)(__va_args));
+  }
+  while (cnt < 9000) {
+    sint32 tmp_0;
+    tmp_0 = Time();
+    dT = (double)(tmp_0 - lastTime) / 1000.0;
+    lastTime = Time();
+    RoCo_process();
+    Sim_process();
+    if (cnt % 5 == 0) {
+      {
+        sint32 __va_arg0 = lastTime;
+        real64 __va_arg1 = RoCo_engineVoltage;
+        real64 __va_arg2 = RoCo_legAngle;
+        int __va_arg3 = (int)RoCo_legAngleValid;
+        int __va_arg4 = (int)RoCo_isActive;
+        void *__va_args_12[5] =
+          {& __va_arg0, & __va_arg1, & __va_arg2, & __va_arg3, & __va_arg4};
+        fprintf(__fc_stderr,(char const *)output_row_fmt_string,
+                (void * const *)(__va_args_12));
+      }
+    }
+    Sleep(20);
+    cnt ++;
+    if (cnt == 2500) {
+      RoCo_commandMoveToAngle = (char)1;
+      RoCo_desiredTargetAngle = 15.0;
+    }
+    else 
+      if (cnt == 3500) {
+        RoCo_commandMoveToAngle = (char)1;
+        RoCo_desiredTargetAngle = - 55.0;
+      }
+      else 
+        if (cnt == 5000) {
+          RoCo_commandMoveToAngle = (char)1;
+          RoCo_desiredTargetAngle = 30.0;
+        }
+        else 
+          if (cnt == 7000) {
+            RoCo_commandMoveToAngle = (char)1;
+            RoCo_desiredTargetAngle = - 5.0;
+          }
+          else 
+            if (cnt == 8000) RoCo_commandShutOff = (char)1;
+  }
+  __retres = 0;
+  return __retres;
+}
+
+
diff --git a/icpc/.frama-c/icpc.parse/metrics.log b/icpc/.frama-c/icpc.parse/metrics.log
new file mode 100644
index 0000000000000000000000000000000000000000..cdf6037811f72e03244ff2b2d148ded4e5de9a13
--- /dev/null
+++ b/icpc/.frama-c/icpc.parse/metrics.log
@@ -0,0 +1,36 @@
+[metrics] Defined functions (18)
+======================
+ Interpolate_from_curve (3 calls); Limiter_out (3 calls);
+ PT1_Filter (3 calls); Ramp_getDir (1 call); Ramp_getValue (0 call);
+ Ramp_out (2 calls); Ramp_targetReached (0 call); RoCo_init (1 call);
+ RoCo_process (1 call); Sim_init (1 call); Sim_process (1 call);
+ Sleep (1 call); Time (3 calls); Timer_elapsedTime (2 calls);
+ Timer_start (3 calls); Timer_tick (2 calls); Turn_on_delay (3 calls);
+ main (0 call); 
+
+Undefined functions (0)
+=======================
+ 
+
+'Extern' global variables (0)
+=============================
+ 
+
+Potential entry points (3)
+==========================
+ Ramp_getValue; Ramp_targetReached; main; 
+
+Global metrics
+============== 
+Sloc = 437
+Decision point = 100
+Global variables = 98
+If = 100
+Loop = 2
+Goto = 13
+Assignment = 243
+Exit point = 18
+Function = 18
+Function call = 42
+Pointer dereferencing = 50
+Cyclomatic complexity = 118
diff --git a/icpc/.frama-c/icpc.parse/warnings.log b/icpc/.frama-c/icpc.parse/warnings.log
new file mode 100644
index 0000000000000000000000000000000000000000..8b1d91a78af480ef6a7ecf7f1b01daa9193d9e85
--- /dev/null
+++ b/icpc/.frama-c/icpc.parse/warnings.log
@@ -0,0 +1,6 @@
+src/roco_config.h:7:[kernel:parser:decimal-float] warning: Floating-point constant 0.33 is not represented exactly. Will use 0x1.51eb851eb851fp-2.
+(warn-once: no further messages from category 'parser:decimal-float' will be emitted)
+src/main.c:33:[variadic] warning: Call to function fprintf with non-static format argument:
+no specification will be generated.
+src/main.c:41:[variadic] warning: Call to function fprintf with non-static format argument:
+no specification will be generated.
diff --git a/icpc/.frama-c/path.mk b/icpc/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/icpc/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/icpc/GNUmakefile b/icpc/GNUmakefile
deleted file mode 100644
index f03bae3c4ba41e7a6bade9a0749de347b0345f9d..0000000000000000000000000000000000000000
--- a/icpc/GNUmakefile
+++ /dev/null
@@ -1,64 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -warn-special-float none \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -slevel 16 \
-  -eva-domains equality \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := icpc
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained
-# via a JSON compilation database + analysis-scripts/list_files.py
-$(MAIN_TARGET).parse: src/impls.c src/roco.c src/sim.c src/main.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/icpc/frama-c-path.mk b/icpc/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/icpc/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/itc-benchmarks/01_w_Defects.eva/alarms.csv b/itc-benchmarks/.frama-c/01_w_Defects.eva/alarms.csv
similarity index 100%
rename from itc-benchmarks/01_w_Defects.eva/alarms.csv
rename to itc-benchmarks/.frama-c/01_w_Defects.eva/alarms.csv
diff --git a/itc-benchmarks/01_w_Defects.eva/metrics.log b/itc-benchmarks/.frama-c/01_w_Defects.eva/metrics.log
similarity index 100%
rename from itc-benchmarks/01_w_Defects.eva/metrics.log
rename to itc-benchmarks/.frama-c/01_w_Defects.eva/metrics.log
diff --git a/itc-benchmarks/01_w_Defects.eva/nonterm.log b/itc-benchmarks/.frama-c/01_w_Defects.eva/nonterm.log
similarity index 100%
rename from itc-benchmarks/01_w_Defects.eva/nonterm.log
rename to itc-benchmarks/.frama-c/01_w_Defects.eva/nonterm.log
diff --git a/itc-benchmarks/01_w_Defects.eva/warnings.log b/itc-benchmarks/.frama-c/01_w_Defects.eva/warnings.log
similarity index 100%
rename from itc-benchmarks/01_w_Defects.eva/warnings.log
rename to itc-benchmarks/.frama-c/01_w_Defects.eva/warnings.log
diff --git a/itc-benchmarks/01_w_Defects.parse/framac.ast b/itc-benchmarks/.frama-c/01_w_Defects.parse/framac.ast
similarity index 100%
rename from itc-benchmarks/01_w_Defects.parse/framac.ast
rename to itc-benchmarks/.frama-c/01_w_Defects.parse/framac.ast
diff --git a/itc-benchmarks/01_w_Defects.parse/metrics.log b/itc-benchmarks/.frama-c/01_w_Defects.parse/metrics.log
similarity index 100%
rename from itc-benchmarks/01_w_Defects.parse/metrics.log
rename to itc-benchmarks/.frama-c/01_w_Defects.parse/metrics.log
diff --git a/itc-benchmarks/01_w_Defects.parse/warnings.log b/itc-benchmarks/.frama-c/01_w_Defects.parse/warnings.log
similarity index 100%
rename from itc-benchmarks/01_w_Defects.parse/warnings.log
rename to itc-benchmarks/.frama-c/01_w_Defects.parse/warnings.log
diff --git a/itc-benchmarks/02_wo_Defects.eva/alarms.csv b/itc-benchmarks/.frama-c/02_wo_Defects.eva/alarms.csv
similarity index 100%
rename from itc-benchmarks/02_wo_Defects.eva/alarms.csv
rename to itc-benchmarks/.frama-c/02_wo_Defects.eva/alarms.csv
diff --git a/itc-benchmarks/02_wo_Defects.eva/metrics.log b/itc-benchmarks/.frama-c/02_wo_Defects.eva/metrics.log
similarity index 100%
rename from itc-benchmarks/02_wo_Defects.eva/metrics.log
rename to itc-benchmarks/.frama-c/02_wo_Defects.eva/metrics.log
diff --git a/jsmn/jsmn-example.eva/nonterm.log b/itc-benchmarks/.frama-c/02_wo_Defects.eva/nonterm.log
similarity index 100%
rename from jsmn/jsmn-example.eva/nonterm.log
rename to itc-benchmarks/.frama-c/02_wo_Defects.eva/nonterm.log
diff --git a/itc-benchmarks/02_wo_Defects.eva/warnings.log b/itc-benchmarks/.frama-c/02_wo_Defects.eva/warnings.log
similarity index 100%
rename from itc-benchmarks/02_wo_Defects.eva/warnings.log
rename to itc-benchmarks/.frama-c/02_wo_Defects.eva/warnings.log
diff --git a/itc-benchmarks/02_wo_Defects.parse/framac.ast b/itc-benchmarks/.frama-c/02_wo_Defects.parse/framac.ast
similarity index 100%
rename from itc-benchmarks/02_wo_Defects.parse/framac.ast
rename to itc-benchmarks/.frama-c/02_wo_Defects.parse/framac.ast
diff --git a/itc-benchmarks/02_wo_Defects.parse/metrics.log b/itc-benchmarks/.frama-c/02_wo_Defects.parse/metrics.log
similarity index 100%
rename from itc-benchmarks/02_wo_Defects.parse/metrics.log
rename to itc-benchmarks/.frama-c/02_wo_Defects.parse/metrics.log
diff --git a/itc-benchmarks/02_wo_Defects.parse/warnings.log b/itc-benchmarks/.frama-c/02_wo_Defects.parse/warnings.log
similarity index 100%
rename from itc-benchmarks/02_wo_Defects.parse/warnings.log
rename to itc-benchmarks/.frama-c/02_wo_Defects.parse/warnings.log
diff --git a/itc-benchmarks/.frama-c/GNUmakefile b/itc-benchmarks/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..d73fa04c851cf7132aad701cff87be94bfaed725
--- /dev/null
+++ b/itc-benchmarks/.frama-c/GNUmakefile
@@ -0,0 +1,96 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -I../include \
+  -includefc_stubs.h \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+  -warn-signed-downcast \
+  -warn-unsigned-downcast \
+  -warn-unsigned-overflow \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-no-alloc-returns-null \
+  -eva-mlevel 10 \
+  -main eva_main \
+  -eva-precision 3 \
+  -eva-builtin titcb_pow:Frama_C_pow \
+
+# -eva-precision 3 reduces 1 unknown w.r.t. -eva-precision 2
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = 01_w_Defects.eva 02_wo_Defects.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+# NOTE: string.c is required due to the usage of strdup() in some tests,
+# and also to avoid loss of precision when strcpy() is used.
+# Both are related to tests in st_underrun.c
+
+SUBDIR_SRCS=\
+  main.c \
+  bit_shift.c \
+  buffer_overrun_dynamic.c \
+  buffer_underrun_dynamic.c \
+  data_lost.c \
+  data_overflow.c \
+  data_underflow.c \
+  double_free.c \
+  endless_loop.c \
+  free_nondynamic_allocated_memory.c \
+  invalid_memory_access.c \
+  littlemem_st.c \
+  memory_allocation_failure.c \
+  not_return.c \
+  null_pointer.c \
+  overrun_st.c \
+  pow_related_errors.c \
+  ptr_subtraction.c \
+  return_local.c \
+  sign_conv.c \
+  st_underrun.c \
+  underrun_st.c \
+  uninit_memory_access.c \
+  uninit_pointer.c \
+  uninit_var.c \
+  zero_division.c \
+
+01_w_Defects.parse: \
+  fc_stubs.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/stdio.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \
+  $(foreach file,$(SUBDIR_SRCS),$(wildcard ../01_w_Defects/$(file))) \
+
+02_wo_Defects.parse: \
+  fc_stubs.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/stdio.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \
+  $(foreach file,$(SUBDIR_SRCS),$(wildcard ../02_wo_Defects/$(file))) \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/libspng/fc_stubs.c b/itc-benchmarks/.frama-c/fc_stubs.c
similarity index 100%
rename from libspng/fc_stubs.c
rename to itc-benchmarks/.frama-c/fc_stubs.c
diff --git a/itc-benchmarks/fc_stubs.h b/itc-benchmarks/.frama-c/fc_stubs.h
similarity index 100%
rename from itc-benchmarks/fc_stubs.h
rename to itc-benchmarks/.frama-c/fc_stubs.h
diff --git a/itc-benchmarks/.frama-c/path.mk b/itc-benchmarks/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/itc-benchmarks/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/itc-benchmarks/GNUmakefile b/itc-benchmarks/GNUmakefile
deleted file mode 100644
index d08c24cb0d2f456370df6926aae82b0880ac1ec2..0000000000000000000000000000000000000000
--- a/itc-benchmarks/GNUmakefile
+++ /dev/null
@@ -1,112 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -Iinclude -includefc_stubs.h
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-  -warn-signed-downcast \
-  -warn-unsigned-downcast \
-  -warn-unsigned-overflow \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-no-alloc-returns-null \
-  -eva-mlevel 10 \
-  -main eva_main \
-  -eva-precision 3 \
-  -eva-builtin titcb_pow:Frama_C_pow \
-
-# -eva-precision 3 reduces 1 unknown w.r.t. -eva-precision 2
-
-SUBDIR_SRCS=\
-main.c \
-bit_shift.c \
-buffer_overrun_dynamic.c \
-buffer_underrun_dynamic.c \
-data_lost.c \
-data_overflow.c \
-data_underflow.c \
-double_free.c \
-endless_loop.c \
-free_nondynamic_allocated_memory.c \
-invalid_memory_access.c \
-littlemem_st.c \
-memory_allocation_failure.c \
-not_return.c \
-null_pointer.c \
-overrun_st.c \
-pow_related_errors.c \
-ptr_subtraction.c \
-return_local.c \
-sign_conv.c \
-st_underrun.c \
-underrun_st.c \
-uninit_memory_access.c \
-uninit_pointer.c \
-uninit_var.c \
-zero_division.c \
-
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := 01_w_Defects
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva 02_wo_Defects.eva
-
-# Default target
-all: $(TARGETS)
-
-# NOTE: string.c is required due to the usage of strdup() in some tests,
-# and also to avoid loss of precision when strcpy() is used.
-# Both are related to tests in st_underrun.c
-
-01_w_Defects.parse: \
-fc_stubs.c \
-$(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdio.c \
-$(shell $(FRAMAC_CONFIG) -print-share-path)/libc/string.c \
-$(foreach file,$(SUBDIR_SRCS),$(wildcard 01_w_Defects/$(file))) \
-
-02_wo_Defects.parse: \
-fc_stubs.c \
-$(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdio.c \
-$(shell $(FRAMAC_CONFIG) -print-share-path)/libc/string.c \
-$(foreach file,$(SUBDIR_SRCS),$(wildcard 02_wo_Defects/$(file))) \
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
-
diff --git a/itc-benchmarks/frama-c-path.mk b/itc-benchmarks/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/itc-benchmarks/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/jsmn/.frama-c/GNUmakefile b/jsmn/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..e2bd5ce794d4358d51c824cbca1c69d3be45145e
--- /dev/null
+++ b/jsmn/.frama-c/GNUmakefile
@@ -0,0 +1,49 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-no-alloc-returns-null \
+  -slevel 300 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = jsmn-main.eva jsmn-example.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+jsmn-main.parse: \
+  ../test/tests.c \
+
+jsmn-example.parse: \
+  ../jsmn.c \
+  ../example/simple.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/jsmn/jsmn-example.eva/alarms.csv b/jsmn/.frama-c/jsmn-example.eva/alarms.csv
similarity index 100%
rename from jsmn/jsmn-example.eva/alarms.csv
rename to jsmn/.frama-c/jsmn-example.eva/alarms.csv
diff --git a/jsmn/jsmn-example.eva/metrics.log b/jsmn/.frama-c/jsmn-example.eva/metrics.log
similarity index 100%
rename from jsmn/jsmn-example.eva/metrics.log
rename to jsmn/.frama-c/jsmn-example.eva/metrics.log
diff --git a/jsmn/jsmn-main.eva/nonterm.log b/jsmn/.frama-c/jsmn-example.eva/nonterm.log
similarity index 100%
rename from jsmn/jsmn-main.eva/nonterm.log
rename to jsmn/.frama-c/jsmn-example.eva/nonterm.log
diff --git a/cerberus/unspecified_value_struct_copy.parse/warnings.log b/jsmn/.frama-c/jsmn-example.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_struct_copy.parse/warnings.log
rename to jsmn/.frama-c/jsmn-example.eva/warnings.log
diff --git a/jsmn/jsmn-example.parse/framac.ast b/jsmn/.frama-c/jsmn-example.parse/framac.ast
similarity index 100%
rename from jsmn/jsmn-example.parse/framac.ast
rename to jsmn/.frama-c/jsmn-example.parse/framac.ast
diff --git a/jsmn/jsmn-example.parse/metrics.log b/jsmn/.frama-c/jsmn-example.parse/metrics.log
similarity index 100%
rename from jsmn/jsmn-example.parse/metrics.log
rename to jsmn/.frama-c/jsmn-example.parse/metrics.log
diff --git a/cerberus/unspecified_value_union_1.eva/warnings.log b/jsmn/.frama-c/jsmn-example.parse/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_union_1.eva/warnings.log
rename to jsmn/.frama-c/jsmn-example.parse/warnings.log
diff --git a/jsmn/jsmn-main.eva/alarms.csv b/jsmn/.frama-c/jsmn-main.eva/alarms.csv
similarity index 100%
rename from jsmn/jsmn-main.eva/alarms.csv
rename to jsmn/.frama-c/jsmn-main.eva/alarms.csv
diff --git a/jsmn/jsmn-main.eva/metrics.log b/jsmn/.frama-c/jsmn-main.eva/metrics.log
similarity index 100%
rename from jsmn/jsmn-main.eva/metrics.log
rename to jsmn/.frama-c/jsmn-main.eva/metrics.log
diff --git a/khash/khash.eva/nonterm.log b/jsmn/.frama-c/jsmn-main.eva/nonterm.log
similarity index 100%
rename from khash/khash.eva/nonterm.log
rename to jsmn/.frama-c/jsmn-main.eva/nonterm.log
diff --git a/cerberus/unspecified_value_union_1.parse/warnings.log b/jsmn/.frama-c/jsmn-main.eva/warnings.log
similarity index 100%
rename from cerberus/unspecified_value_union_1.parse/warnings.log
rename to jsmn/.frama-c/jsmn-main.eva/warnings.log
diff --git a/jsmn/jsmn-main.parse/framac.ast b/jsmn/.frama-c/jsmn-main.parse/framac.ast
similarity index 100%
rename from jsmn/jsmn-main.parse/framac.ast
rename to jsmn/.frama-c/jsmn-main.parse/framac.ast
diff --git a/jsmn/jsmn-main.parse/metrics.log b/jsmn/.frama-c/jsmn-main.parse/metrics.log
similarity index 100%
rename from jsmn/jsmn-main.parse/metrics.log
rename to jsmn/.frama-c/jsmn-main.parse/metrics.log
diff --git a/jsmn/jsmn-main.parse/warnings.log b/jsmn/.frama-c/jsmn-main.parse/warnings.log
similarity index 100%
rename from jsmn/jsmn-main.parse/warnings.log
rename to jsmn/.frama-c/jsmn-main.parse/warnings.log
diff --git a/jsmn/.frama-c/path.mk b/jsmn/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/jsmn/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/jsmn/GNUmakefile b/jsmn/GNUmakefile
deleted file mode 100644
index 5133fac8a94921bdc66da4f489044f18ddfeae10..0000000000000000000000000000000000000000
--- a/jsmn/GNUmakefile
+++ /dev/null
@@ -1,69 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-no-alloc-returns-null \
-  -slevel 300 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := jsmn-main
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva jsmn-example.eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: test/tests.c
-
-jsmn-example.parse: jsmn.c example/simple.c
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/jsmn/frama-c-path.mk b/jsmn/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/jsmn/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/khash/.frama-c/GNUmakefile b/khash/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..34c025af28ffeb0ce8a0d9668947d5436a3a3b59
--- /dev/null
+++ b/khash/.frama-c/GNUmakefile
@@ -0,0 +1,44 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-no-alloc-returns-null \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = khash.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+khash.parse: \
+  ../khash.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/khash/khash.eva/alarms.csv b/khash/.frama-c/khash.eva/alarms.csv
similarity index 100%
rename from khash/khash.eva/alarms.csv
rename to khash/.frama-c/khash.eva/alarms.csv
diff --git a/khash/khash.eva/metrics.log b/khash/.frama-c/khash.eva/metrics.log
similarity index 100%
rename from khash/khash.eva/metrics.log
rename to khash/.frama-c/khash.eva/metrics.log
diff --git a/libmodbus/libmodbus-random-client.eva/nonterm.log b/khash/.frama-c/khash.eva/nonterm.log
similarity index 100%
rename from libmodbus/libmodbus-random-client.eva/nonterm.log
rename to khash/.frama-c/khash.eva/nonterm.log
diff --git a/cerberus/write_union_same_prefix_visible.eva/warnings.log b/khash/.frama-c/khash.eva/warnings.log
similarity index 100%
rename from cerberus/write_union_same_prefix_visible.eva/warnings.log
rename to khash/.frama-c/khash.eva/warnings.log
diff --git a/khash/khash.parse/framac.ast b/khash/.frama-c/khash.parse/framac.ast
similarity index 100%
rename from khash/khash.parse/framac.ast
rename to khash/.frama-c/khash.parse/framac.ast
diff --git a/khash/khash.parse/metrics.log b/khash/.frama-c/khash.parse/metrics.log
similarity index 100%
rename from khash/khash.parse/metrics.log
rename to khash/.frama-c/khash.parse/metrics.log
diff --git a/khash/khash.parse/warnings.log b/khash/.frama-c/khash.parse/warnings.log
similarity index 100%
rename from khash/khash.parse/warnings.log
rename to khash/.frama-c/khash.parse/warnings.log
diff --git a/khash/.frama-c/path.mk b/khash/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/khash/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/khash/GNUmakefile b/khash/GNUmakefile
deleted file mode 100644
index df973995a39d62c9ea1b5f9421228a77c6235d51..0000000000000000000000000000000000000000
--- a/khash/GNUmakefile
+++ /dev/null
@@ -1,67 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-no-alloc-returns-null \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := khash
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: khash.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/khash/frama-c-path.mk b/khash/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/khash/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/kilo/.frama-c/GNUmakefile b/kilo/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..3a778976ed29eb3a9184fc6627eb2953a12c079a
--- /dev/null
+++ b/kilo/.frama-c/GNUmakefile
@@ -0,0 +1,47 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -includefc_stubs.h -D__FRAMAC__EVA \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-no-alloc-returns-null \
+  -main eva_main \
+  -slevel 2 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = kilo.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+kilo.parse: \
+  ../kilo.c \
+  fc_stubs.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/kilo/fc_stubs.c b/kilo/.frama-c/fc_stubs.c
similarity index 83%
rename from kilo/fc_stubs.c
rename to kilo/.frama-c/fc_stubs.c
index 5de3a800bb6f4b818da74c5415a7f6cdc3f4d1cc..2fa087e8800260981379f920d509274ea03c4d50 100644
--- a/kilo/fc_stubs.c
+++ b/kilo/.frama-c/fc_stubs.c
@@ -61,11 +61,17 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) {
   return c == EOF && i == 0 ? -1 : i;
 }
 
-int main(int argc, char **argv);
+// Stub for a main function which reads arguments from the command line, to be
+// used by the Eva plug-in.
+// This stub emulates non-deterministic input of up to 5 arguments, each up
+// to 256 characters long. This is sufficient to ensure arbitrary input in
+// virtually every case.
+// Do not forget to add option '-main eva_main' in order to use this stub.
 
-#include "__fc_builtin.h"
-volatile int nondet;
-// main for EVA
+#ifdef __FRAMAC__
+# include "__fc_builtin.h"
+int main(int, char **);
+static volatile int nondet;
 int eva_main() {
   int argc = Frama_C_interval(0, 5);
   char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256];
@@ -77,3 +83,4 @@ int eva_main() {
   }
   return main(argc, argv);
 }
+#endif // __FRAMAC__
diff --git a/kilo/fc_stubs.h b/kilo/.frama-c/fc_stubs.h
similarity index 100%
rename from kilo/fc_stubs.h
rename to kilo/.frama-c/fc_stubs.h
diff --git a/kilo/kilo.eva/alarms.csv b/kilo/.frama-c/kilo.eva/alarms.csv
similarity index 100%
rename from kilo/kilo.eva/alarms.csv
rename to kilo/.frama-c/kilo.eva/alarms.csv
diff --git a/kilo/kilo.eva/metrics.log b/kilo/.frama-c/kilo.eva/metrics.log
similarity index 100%
rename from kilo/kilo.eva/metrics.log
rename to kilo/.frama-c/kilo.eva/metrics.log
diff --git a/kilo/.frama-c/kilo.eva/nonterm.log b/kilo/.frama-c/kilo.eva/nonterm.log
new file mode 100644
index 0000000000000000000000000000000000000000..6f91af36b54d2c061057662696b7cf5e00d63bd9
--- /dev/null
+++ b/kilo/.frama-c/kilo.eva/nonterm.log
@@ -0,0 +1,3 @@
+kilo.c:1271:[nonterm] warning: non-terminating loop
+stack: main :: fc_stubs.c:84 <- eva_main
+fc_stubs.c:84:[nonterm] warning: unreachable return
diff --git a/kilo/kilo.eva/warnings.log b/kilo/.frama-c/kilo.eva/warnings.log
similarity index 100%
rename from kilo/kilo.eva/warnings.log
rename to kilo/.frama-c/kilo.eva/warnings.log
diff --git a/kilo/kilo.parse/framac.ast b/kilo/.frama-c/kilo.parse/framac.ast
similarity index 99%
rename from kilo/kilo.parse/framac.ast
rename to kilo/.frama-c/kilo.parse/framac.ast
index 157b4412b902ea4d2e7288d1553c1f48c0306c5c..dcdd85abfe598d96e30f2d1cbd948d2fb6a2b26c 100644
--- a/kilo/kilo.parse/framac.ast
+++ b/kilo/.frama-c/kilo.parse/framac.ast
@@ -1643,7 +1643,6 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream)
   return_label: return __retres;
 }
 
-int volatile nondet;
 int eva_main(void)
 {
   char argv0[256];
diff --git a/kilo/kilo.parse/metrics.log b/kilo/.frama-c/kilo.parse/metrics.log
similarity index 98%
rename from kilo/kilo.parse/metrics.log
rename to kilo/.frama-c/kilo.parse/metrics.log
index 436d3f6c59f202c2e558370bddb61be2f07491b0..b7496877d3d8983bbe1ee0ab83b6595bca6eba04 100644
--- a/kilo/kilo.parse/metrics.log
+++ b/kilo/.frama-c/kilo.parse/metrics.log
@@ -33,7 +33,7 @@ Global metrics
 ============== 
 Sloc = 1135
 Decision point = 243
-Global variables = 7
+Global variables = 6
 If = 211
 Loop = 28
 Goto = 79
diff --git a/cerberus/write_union_same_prefix_visible.parse/warnings.log b/kilo/.frama-c/kilo.parse/warnings.log
similarity index 100%
rename from cerberus/write_union_same_prefix_visible.parse/warnings.log
rename to kilo/.frama-c/kilo.parse/warnings.log
diff --git a/kilo/.frama-c/path.mk b/kilo/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/kilo/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/kilo/GNUmakefile b/kilo/GNUmakefile
deleted file mode 100644
index 5c17153965dcfb470143b2ac87700093eceffe99..0000000000000000000000000000000000000000
--- a/kilo/GNUmakefile
+++ /dev/null
@@ -1,68 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -includefc_stubs.h -D__FRAMAC__EVA
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-no-alloc-returns-null \
-  -main eva_main \
-  -slevel 2 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := kilo
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: kilo.c fc_stubs.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/kilo/frama-c-path.mk b/kilo/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/kilo/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/kilo/kilo.eva/nonterm.log b/kilo/kilo.eva/nonterm.log
deleted file mode 100644
index 1014676a0a990765545467de862a1655133bccf3..0000000000000000000000000000000000000000
--- a/kilo/kilo.eva/nonterm.log
+++ /dev/null
@@ -1,3 +0,0 @@
-kilo.c:1271:[nonterm] warning: non-terminating loop
-stack: main :: fc_stubs.c:78 <- eva_main
-fc_stubs.c:78:[nonterm] warning: unreachable return
diff --git a/libmodbus/.frama-c/GNUmakefile b/libmodbus/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..c1274769df7ba39a94d6c842a431803930aeac77
--- /dev/null
+++ b/libmodbus/.frama-c/GNUmakefile
@@ -0,0 +1,60 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = gcc_x86_64
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -include__fc_libc_fixes.h \
+  -I../src \
+  -I.. \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-precision 4 \
+  -eva-split-return full \
+  -eva-no-alloc-returns-null \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = \
+  libmodbus-random-client.eva \
+  libmodbus-unit-server.eva \
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+
+libmodbus-random-client.parse: \
+  $(sort $(wildcard ../src/*.c)) \
+  ../tests/random-test-client.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \
+
+libmodbus-unit-server.parse: \
+  $(sort $(wildcard ../src/*.c)) \
+  ../tests/unit-test-server.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/netdb.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/string.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/libmodbus/__fc_libc_fixes.h b/libmodbus/.frama-c/__fc_libc_fixes.h
similarity index 100%
rename from libmodbus/__fc_libc_fixes.h
rename to libmodbus/.frama-c/__fc_libc_fixes.h
diff --git a/libmodbus/libmodbus-random-client.eva/alarms.csv b/libmodbus/.frama-c/libmodbus-random-client.eva/alarms.csv
similarity index 100%
rename from libmodbus/libmodbus-random-client.eva/alarms.csv
rename to libmodbus/.frama-c/libmodbus-random-client.eva/alarms.csv
diff --git a/libmodbus/libmodbus-random-client.eva/metrics.log b/libmodbus/.frama-c/libmodbus-random-client.eva/metrics.log
similarity index 100%
rename from libmodbus/libmodbus-random-client.eva/metrics.log
rename to libmodbus/.frama-c/libmodbus-random-client.eva/metrics.log
diff --git a/libmodbus/libmodbus-unit-server.eva/nonterm.log b/libmodbus/.frama-c/libmodbus-random-client.eva/nonterm.log
similarity index 100%
rename from libmodbus/libmodbus-unit-server.eva/nonterm.log
rename to libmodbus/.frama-c/libmodbus-random-client.eva/nonterm.log
diff --git a/jsmn/jsmn-example.eva/warnings.log b/libmodbus/.frama-c/libmodbus-random-client.eva/warnings.log
similarity index 100%
rename from jsmn/jsmn-example.eva/warnings.log
rename to libmodbus/.frama-c/libmodbus-random-client.eva/warnings.log
diff --git a/libmodbus/libmodbus-random-client.parse/framac.ast b/libmodbus/.frama-c/libmodbus-random-client.parse/framac.ast
similarity index 100%
rename from libmodbus/libmodbus-random-client.parse/framac.ast
rename to libmodbus/.frama-c/libmodbus-random-client.parse/framac.ast
diff --git a/libmodbus/libmodbus-random-client.parse/metrics.log b/libmodbus/.frama-c/libmodbus-random-client.parse/metrics.log
similarity index 100%
rename from libmodbus/libmodbus-random-client.parse/metrics.log
rename to libmodbus/.frama-c/libmodbus-random-client.parse/metrics.log
diff --git a/libmodbus/libmodbus-random-client.parse/warnings.log b/libmodbus/.frama-c/libmodbus-random-client.parse/warnings.log
similarity index 100%
rename from libmodbus/libmodbus-random-client.parse/warnings.log
rename to libmodbus/.frama-c/libmodbus-random-client.parse/warnings.log
diff --git a/libmodbus/libmodbus-unit-server.eva/alarms.csv b/libmodbus/.frama-c/libmodbus-unit-server.eva/alarms.csv
similarity index 100%
rename from libmodbus/libmodbus-unit-server.eva/alarms.csv
rename to libmodbus/.frama-c/libmodbus-unit-server.eva/alarms.csv
diff --git a/libmodbus/libmodbus-unit-server.eva/metrics.log b/libmodbus/.frama-c/libmodbus-unit-server.eva/metrics.log
similarity index 100%
rename from libmodbus/libmodbus-unit-server.eva/metrics.log
rename to libmodbus/.frama-c/libmodbus-unit-server.eva/metrics.log
diff --git a/libspng/libspng_example.eva/nonterm.log b/libmodbus/.frama-c/libmodbus-unit-server.eva/nonterm.log
similarity index 100%
rename from libspng/libspng_example.eva/nonterm.log
rename to libmodbus/.frama-c/libmodbus-unit-server.eva/nonterm.log
diff --git a/libmodbus/libmodbus-unit-server.eva/warnings.log b/libmodbus/.frama-c/libmodbus-unit-server.eva/warnings.log
similarity index 100%
rename from libmodbus/libmodbus-unit-server.eva/warnings.log
rename to libmodbus/.frama-c/libmodbus-unit-server.eva/warnings.log
diff --git a/libmodbus/libmodbus-unit-server.parse/framac.ast b/libmodbus/.frama-c/libmodbus-unit-server.parse/framac.ast
similarity index 100%
rename from libmodbus/libmodbus-unit-server.parse/framac.ast
rename to libmodbus/.frama-c/libmodbus-unit-server.parse/framac.ast
diff --git a/libmodbus/libmodbus-unit-server.parse/metrics.log b/libmodbus/.frama-c/libmodbus-unit-server.parse/metrics.log
similarity index 100%
rename from libmodbus/libmodbus-unit-server.parse/metrics.log
rename to libmodbus/.frama-c/libmodbus-unit-server.parse/metrics.log
diff --git a/libmodbus/libmodbus-unit-server.parse/warnings.log b/libmodbus/.frama-c/libmodbus-unit-server.parse/warnings.log
similarity index 100%
rename from libmodbus/libmodbus-unit-server.parse/warnings.log
rename to libmodbus/.frama-c/libmodbus-unit-server.parse/warnings.log
diff --git a/libmodbus/.frama-c/path.mk b/libmodbus/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/libmodbus/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/libmodbus/GNUmakefile b/libmodbus/GNUmakefile
deleted file mode 100644
index 76da693ca6f6b3435bb4b479951c6d6425a0fa4b..0000000000000000000000000000000000000000
--- a/libmodbus/GNUmakefile
+++ /dev/null
@@ -1,47 +0,0 @@
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH.
--include frama-c-path.mk
-
-FRAMAC_CONFIG ?= frama-c-config
-FRAMAC_SHARE=$(shell $(FRAMAC_CONFIG) -print-share-path)
-include $(FRAMAC_SHARE)/analysis-scripts/frama-c.mk
-
-# Define global parameters
-CPPFLAGS     = -include__fc_libc_fixes.h -I src
-FCFLAGS     += \
-  -machdep gcc_x86_64 \
-
-EVAFLAGS    += \
-  -eva-precision 4 \
-  -eva-split-return full \
-  -eva-no-alloc-returns-null \
-
-# Export environment variable for Frama-C
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-
-MAIN_TARGET := libmodbus-random-client
-TARGETS = $(MAIN_TARGET).eva libmodbus-unit-server.eva
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-libmodbus-random-client.parse: $(sort $(wildcard src/*.c)) \
-  tests/random-test-client.c $(FRAMAC_SHARE)/libc/string.c
-
-libmodbus-unit-server.parse: $(sort $(wildcard src/*.c)) \
-  tests/unit-test-server.c $(FRAMAC_SHARE)/libc/netdb.c \
-  $(FRAMAC_SHARE)/libc/string.c
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/libmodbus/frama-c-path.mk b/libmodbus/frama-c-path.mk
deleted file mode 120000
index cb903a567fa039de4515a5da123faf75c237ccc0..0000000000000000000000000000000000000000
--- a/libmodbus/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../gzip124/frama-c-path.mk
\ No newline at end of file
diff --git a/libspng/.frama-c/GNUmakefile b/libspng/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..3f04db6634c0969c186c9522486cf5a38c083007
--- /dev/null
+++ b/libspng/.frama-c/GNUmakefile
@@ -0,0 +1,49 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -I.. \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-plevel 256 \
+  -eva-precision 5 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = libspng-example.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+libspng-example.parse: \
+  fc_stubs.c \
+  ../examples/example.c \
+  ../spng.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/stdio.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/microstrain/fc_stubs.c b/libspng/.frama-c/fc_stubs.c
similarity index 100%
rename from microstrain/fc_stubs.c
rename to libspng/.frama-c/fc_stubs.c
diff --git a/libspng/libspng_example.eva/alarms.csv b/libspng/.frama-c/libspng-example.eva/alarms.csv
similarity index 97%
rename from libspng/libspng_example.eva/alarms.csv
rename to libspng/.frama-c/libspng-example.eva/alarms.csv
index 38dc04567afe8c89e968f7812ac8ed68b1900baa..83509d222e95d82f2e108d1932d3a2f5af17227a 100644
--- a/libspng/libspng_example.eva/alarms.csv
+++ b/libspng/.frama-c/libspng-example.eva/alarms.csv
@@ -159,6 +159,7 @@ directory	file	line	function	property kind	status	property
 .	spng.c	2304	spng_ctx_free	dangling_pointer	Unknown	¬\dangling(&(ctx->splt_list + i)->entries)
 .	spng.c	2304	spng_ctx_free	initialization	Unknown	\initialized(&(ctx->splt_list + i)->entries)
 .	spng.c	2304	spng_ctx_free	mem_access	Unknown	\valid_read(&(ctx->splt_list + i)->entries)
+FRAMAC_SHARE/libc	stdio.h	150	fopen	precondition	Unknown	valid_filename: valid_read_string(filename)
 FRAMAC_SHARE/libc	stdio.h	351	fread	precondition	Unknown	valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1))
 FRAMAC_SHARE/libc	stdlib.h	405	free	precondition	Unknown	freeable: p ≡ \null ∨ \freeable(p)
 FRAMAC_SHARE/libc	string.h	55	memcmp	precondition	Unknown	valid_s1: valid_read_or_empty(s1, n)
@@ -174,6 +175,10 @@ FRAMAC_SHARE/libc	string.h	125	strlen	precondition	Unknown	valid_string_s: valid
 FRAMAC_SHARE/libc	string.h	137	strcmp	precondition	Unknown	valid_string_s1: valid_read_string(s1)
 FRAMAC_SHARE/libc	string.h	138	strcmp	precondition	Unknown	valid_string_s2: valid_read_string(s2)
 FRAMAC_SHARE/libc	string.h	220	strstr	precondition	Unknown	valid_string_haystack: valid_read_string(haystack)
+examples	example.c	20	main	mem_access	Unknown	\valid_read(argv + 1)
+examples	example.c	20	main	precondition of fopen	Unknown	valid_filename: valid_read_string(filename)
+examples	example.c	23	main	precondition of printf_va_2	Unknown	valid_read_string(param0)
+examples	example.c	23	printf_va_2	precondition	Unknown	valid_read_string(param0)
 examples	example.c	41	main	precondition of fread	Unknown	valid_ptr_block: \valid((char *)ptr + (0 .. nmemb * size - 1))
 examples	example.c	120	main	dangling_pointer	Unknown	¬\dangling(&out)
 tests	framac_stubs.h	78	crc32	ptr_comparison	Unknown	\pointer_comparable((void *)buf, (void *)0)
diff --git a/libspng/libspng_example.eva/metrics.log b/libspng/.frama-c/libspng-example.eva/metrics.log
similarity index 92%
rename from libspng/libspng_example.eva/metrics.log
rename to libspng/.frama-c/libspng-example.eva/metrics.log
index 3ae2c80e7bc581584c0a6b505545bc104f3c26f5..64faf3de661513ca7a1a0ef7342c823c2482eb0d 100644
--- a/libspng/libspng_example.eva/metrics.log
+++ b/libspng/.frama-c/libspng-example.eva/metrics.log
@@ -1,8 +1,8 @@
 [metrics] Eva coverage statistics
 =======================
-Syntactically reachable functions = 53 (out of 94)
-Semantically reached functions = 45
-Coverage estimation = 84.9% 
+Syntactically reachable functions = 52 (out of 94)
+Semantically reached functions = 44
+Coverage estimation = 84.6% 
 
 Unreached functions (8) =
   <spng.c>: defilter_scanline; gamma_correct_row; paeth;
@@ -18,10 +18,9 @@ Function spng_decode_image calls gamma_correct_row (at spng.c:2192)
 Function spng_decode_image calls read_chunks_after_idat (at spng.c:2242)
 [metrics] Statements analyzed by Eva
 --------------------------
-2380 stmts in analyzed functions, 1712 stmts analyzed (71.9%)
+2367 stmts in analyzed functions, 1699 stmts analyzed (71.8%)
 buffer_read_fn: 9 stmts out of 9 (100.0%)
 crc32: 6 stmts out of 6 (100.0%)
-eva_main: 13 stmts out of 13 (100.0%)
 get_ancillary: 4 stmts out of 4 (100.0%)
 read_s32: 4 stmts out of 4 (100.0%)
 read_u16: 3 stmts out of 3 (100.0%)
diff --git a/polarssl/polarssl-server.eva/nonterm.log b/libspng/.frama-c/libspng-example.eva/nonterm.log
similarity index 100%
rename from polarssl/polarssl-server.eva/nonterm.log
rename to libspng/.frama-c/libspng-example.eva/nonterm.log
diff --git a/libspng/libspng_example.eva/warnings.log b/libspng/.frama-c/libspng-example.eva/warnings.log
similarity index 100%
rename from libspng/libspng_example.eva/warnings.log
rename to libspng/.frama-c/libspng-example.eva/warnings.log
diff --git a/libspng/libspng_example.parse/framac.ast b/libspng/.frama-c/libspng-example.parse/framac.ast
similarity index 100%
rename from libspng/libspng_example.parse/framac.ast
rename to libspng/.frama-c/libspng-example.parse/framac.ast
diff --git a/libspng/libspng_example.parse/metrics.log b/libspng/.frama-c/libspng-example.parse/metrics.log
similarity index 100%
rename from libspng/libspng_example.parse/metrics.log
rename to libspng/.frama-c/libspng-example.parse/metrics.log
diff --git a/libspng/libspng_example.parse/warnings.log b/libspng/.frama-c/libspng-example.parse/warnings.log
similarity index 100%
rename from libspng/libspng_example.parse/warnings.log
rename to libspng/.frama-c/libspng-example.parse/warnings.log
diff --git a/libspng/.frama-c/path.mk b/libspng/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/libspng/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/libspng/GNUmakefile b/libspng/GNUmakefile
deleted file mode 100644
index 208d319d099ae413a0b42a905c57c122510b8edf..0000000000000000000000000000000000000000
--- a/libspng/GNUmakefile
+++ /dev/null
@@ -1,68 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -main eva_main \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-plevel 256 \
-  -eva-precision 5 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := libspng_example
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: \
-  fc_stubs.c \
-  examples/example.c \
-  spng.c \
-  $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/stdio.c \
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/libspng/frama-c-path.mk b/libspng/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/libspng/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/microstrain/.frama-c/GNUmakefile b/microstrain/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..2f00c594e154f864df7b16796fe1ff18fba2b659
--- /dev/null
+++ b/microstrain/.frama-c/GNUmakefile
@@ -0,0 +1,55 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -I ../MIPSDK/C/Library/Include \
+  -I ../include/microstrain_mips \
+  -I ../MIPSDK/C/Utilities/Include \
+  -D FIONREAD=0x541B \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+  -eva-precision 2 \
+  -main eva_main \
+
+#  -eva-precision 6: about 709 unknown/invalid (2 invalid), with 9 red alarms
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = microstrain_gx4_45_test.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+microstrain_gx4_45_test.parse: \
+  fc_stubs.c \
+  $(sort $(wildcard ../MIPSDK/C/Library/Source/*.c)) \
+  ../MIPSDK/C/Utilities/Source/byteswap_utilities.c \
+  ../src/mip_sdk_user_functions.c \
+  ../MIPSDK/C/Examples/Linux/GX4-45/GX4_45_Test/GX4-45_Test.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/microstrain/.frama-c/fc_stubs.c b/microstrain/.frama-c/fc_stubs.c
new file mode 100644
index 0000000000000000000000000000000000000000..fad866f2160ba5533c8658794a520c2bf0880962
--- /dev/null
+++ b/microstrain/.frama-c/fc_stubs.c
@@ -0,0 +1,23 @@
+// Stub for a main function which reads arguments from the command line, to be
+// used by the Eva plug-in.
+// This stub emulates non-deterministic input of up to 5 arguments, each up
+// to 256 characters long. This is sufficient to ensure arbitrary input in
+// virtually every case.
+// Do not forget to add option '-main eva_main' in order to use this stub.
+
+#ifdef __FRAMAC__
+# include "__fc_builtin.h"
+int main(int, char **);
+static volatile int nondet;
+int eva_main() {
+  int argc = Frama_C_interval(0, 5);
+  char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256];
+  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0};
+  //@ loop unroll 5;
+  for (int i = 0; i < 5; i++) {
+    Frama_C_make_unknown(argv[i], 255);
+    argv[i][255] = 0;
+  }
+  return main(argc, argv);
+}
+#endif // __FRAMAC__
diff --git a/microstrain/microstrain_gx4_45_test.eva/alarms.csv b/microstrain/.frama-c/microstrain_gx4_45_test.eva/alarms.csv
similarity index 100%
rename from microstrain/microstrain_gx4_45_test.eva/alarms.csv
rename to microstrain/.frama-c/microstrain_gx4_45_test.eva/alarms.csv
diff --git a/microstrain/microstrain_gx4_45_test.eva/metrics.log b/microstrain/.frama-c/microstrain_gx4_45_test.eva/metrics.log
similarity index 100%
rename from microstrain/microstrain_gx4_45_test.eva/metrics.log
rename to microstrain/.frama-c/microstrain_gx4_45_test.eva/metrics.log
diff --git a/microstrain/microstrain_gx4_45_test.eva/nonterm.log b/microstrain/.frama-c/microstrain_gx4_45_test.eva/nonterm.log
similarity index 100%
rename from microstrain/microstrain_gx4_45_test.eva/nonterm.log
rename to microstrain/.frama-c/microstrain_gx4_45_test.eva/nonterm.log
diff --git a/microstrain/microstrain_gx4_45_test.eva/warnings.log b/microstrain/.frama-c/microstrain_gx4_45_test.eva/warnings.log
similarity index 100%
rename from microstrain/microstrain_gx4_45_test.eva/warnings.log
rename to microstrain/.frama-c/microstrain_gx4_45_test.eva/warnings.log
diff --git a/microstrain/microstrain_gx4_45_test.parse/framac.ast b/microstrain/.frama-c/microstrain_gx4_45_test.parse/framac.ast
similarity index 100%
rename from microstrain/microstrain_gx4_45_test.parse/framac.ast
rename to microstrain/.frama-c/microstrain_gx4_45_test.parse/framac.ast
diff --git a/microstrain/microstrain_gx4_45_test.parse/metrics.log b/microstrain/.frama-c/microstrain_gx4_45_test.parse/metrics.log
similarity index 100%
rename from microstrain/microstrain_gx4_45_test.parse/metrics.log
rename to microstrain/.frama-c/microstrain_gx4_45_test.parse/metrics.log
diff --git a/microstrain/microstrain_gx4_45_test.parse/warnings.log b/microstrain/.frama-c/microstrain_gx4_45_test.parse/warnings.log
similarity index 100%
rename from microstrain/microstrain_gx4_45_test.parse/warnings.log
rename to microstrain/.frama-c/microstrain_gx4_45_test.parse/warnings.log
diff --git a/microstrain/.frama-c/path.mk b/microstrain/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/microstrain/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/microstrain/GNUmakefile b/microstrain/GNUmakefile
deleted file mode 100644
index dae48256c56ebcbdf2bf1693566f88e1d4028362..0000000000000000000000000000000000000000
--- a/microstrain/GNUmakefile
+++ /dev/null
@@ -1,81 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += \
-  -I MIPSDK/C/Library/Include \
-  -I include/microstrain_mips \
-  -I MIPSDK/C/Utilities/Include \
-  -D FIONREAD=0x541B \
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -machdep x86_32 \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-  -eva-precision 2 \
-  -main eva_main \
-
-#  -eva-precision 6: about 709 unknown/invalid (2 invalid), with 9 red alarms
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := microstrain_gx4_45_test
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-microstrain_gx4_45_test.parse: \
-  fc_stubs.c \
-  $(sort $(wildcard MIPSDK/C/Library/Source/*.c)) \
-  MIPSDK/C/Utilities/Source/byteswap_utilities.c \
-  src/mip_sdk_user_functions.c \
-  MIPSDK/C/Examples/Linux/GX4-45/GX4_45_Test/GX4-45_Test.c \
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-loop: $(TARGETS:%.eva=%.parse.loop) $(TARGETS:%=%.loop)
-gui: $(MAIN_TARGET).eva.gui
-
-# Run 'make <TARGET>.eva.loop' to obtain a .loop file, fine-tune it by hand,
-# then rename it to <TARGET>.slevel to prevent it from being overwritten.
-# If such file exists, use it to define per-function slevel values.
-ifneq (,$(wildcard $(MAIN_TARGET).slevel))
-$(MAIN_TARGET).eva: \
-  EVAFLAGS += $(shell cat $(MAIN_TARGET).slevel | tr -d '\n\\')
-endif
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/microstrain/frama-c-path.mk b/microstrain/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/microstrain/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/mini-gmp/.frama-c/GNUmakefile b/mini-gmp/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..8a914899a0ab033ce297e0e61b25e2f24a8571ba
--- /dev/null
+++ b/mini-gmp/.frama-c/GNUmakefile
@@ -0,0 +1,53 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = gcc_x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -std=c99 \
+  -I .. \
+
+# note: '-std=c99' is used to avoid issues with old GCCs (< 5) due to the
+#       presence of inline attributes.
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+  -main testmain \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = mini-gmp.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+mini-gmp.parse: \
+  ../tests/t-add.c \
+  ../mini-gmp.c \
+  ../tests/hex-random.c \
+  ../tests/mini-random.c \
+  fc_stubs.h \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/mini-gmp/fc_stubs.h b/mini-gmp/.frama-c/fc_stubs.h
similarity index 100%
rename from mini-gmp/fc_stubs.h
rename to mini-gmp/.frama-c/fc_stubs.h
diff --git a/mini-gmp/mini-gmp.eva/alarms.csv b/mini-gmp/.frama-c/mini-gmp.eva/alarms.csv
similarity index 100%
rename from mini-gmp/mini-gmp.eva/alarms.csv
rename to mini-gmp/.frama-c/mini-gmp.eva/alarms.csv
diff --git a/mini-gmp/mini-gmp.eva/metrics.log b/mini-gmp/.frama-c/mini-gmp.eva/metrics.log
similarity index 100%
rename from mini-gmp/mini-gmp.eva/metrics.log
rename to mini-gmp/.frama-c/mini-gmp.eva/metrics.log
diff --git a/mini-gmp/mini-gmp.eva/nonterm.log b/mini-gmp/.frama-c/mini-gmp.eva/nonterm.log
similarity index 100%
rename from mini-gmp/mini-gmp.eva/nonterm.log
rename to mini-gmp/.frama-c/mini-gmp.eva/nonterm.log
diff --git a/mini-gmp/mini-gmp.eva/warnings.log b/mini-gmp/.frama-c/mini-gmp.eva/warnings.log
similarity index 100%
rename from mini-gmp/mini-gmp.eva/warnings.log
rename to mini-gmp/.frama-c/mini-gmp.eva/warnings.log
diff --git a/mini-gmp/mini-gmp.parse/framac.ast b/mini-gmp/.frama-c/mini-gmp.parse/framac.ast
similarity index 99%
rename from mini-gmp/mini-gmp.parse/framac.ast
rename to mini-gmp/.frama-c/mini-gmp.parse/framac.ast
index 648cfb1867052f9667e72dc274e1779ccad9b68a..e2fa7185547337d0375ef72c22b184ea7457558a 100644
--- a/mini-gmp/mini-gmp.parse/framac.ast
+++ b/mini-gmp/.frama-c/mini-gmp.parse/framac.ast
@@ -1,11 +1,11 @@
 /* Generated by Frama-C */
-#include "__fc_builtin.h"
 #include "assert.h"
 #include "ctype.h"
 #include "errno.h"
 #include "signal.h"
 #include "stdarg.h"
 #include "stddef.h"
+#include "stdint.h"
 #include "stdio.h"
 #include "stdlib.h"
 #include "string.h"
diff --git a/mini-gmp/mini-gmp.parse/metrics.log b/mini-gmp/.frama-c/mini-gmp.parse/metrics.log
similarity index 100%
rename from mini-gmp/mini-gmp.parse/metrics.log
rename to mini-gmp/.frama-c/mini-gmp.parse/metrics.log
diff --git a/jsmn/jsmn-example.parse/warnings.log b/mini-gmp/.frama-c/mini-gmp.parse/warnings.log
similarity index 100%
rename from jsmn/jsmn-example.parse/warnings.log
rename to mini-gmp/.frama-c/mini-gmp.parse/warnings.log
diff --git a/mini-gmp/.frama-c/path.mk b/mini-gmp/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/mini-gmp/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/mini-gmp/GNUmakefile b/mini-gmp/GNUmakefile
deleted file mode 100644
index e7f31b863f781ed7ca8f583704e852846c6fd2a2..0000000000000000000000000000000000000000
--- a/mini-gmp/GNUmakefile
+++ /dev/null
@@ -1,71 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -include__fc_builtin.h -std=c99
-# note: '-std=c99' is used to avoid issues with old GCCs (< 5) due to the
-#       presence of inline attributes.
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -machdep gcc_x86_32 \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-  -main testmain \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := mini-gmp
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: tests/t-add.c mini-gmp.c tests/hex-random.c tests/mini-random.c fc_stubs.h
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/mini-gmp/frama-c-path.mk b/mini-gmp/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/mini-gmp/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/monocypher/.frama-c/GNUmakefile b/monocypher/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..c9675cf9b471a64ded57c57eaa8457264636b3d6
--- /dev/null
+++ b/monocypher/.frama-c/GNUmakefile
@@ -0,0 +1,54 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_64
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -I../src \
+  -I../src/optional \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+  -no-warn-signed-overflow \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -slevel 8 \
+  -eva-split-return auto \
+  -eva-warn-key signed-overflow=inactive \
+  -eva-warn-key builtins:missing-spec=abort \
+
+# -eva-domains gauges : -6 alarms, +1m30 analysis time
+# -eva-domains equality : +3 alarms (!), +1m30 analysis time
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = monocypher.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+monocypher.parse: \
+  ../src/monocypher.c \
+  ../src/optional/sha512.c \
+  ../tests/test.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/monocypher/monocypher.eva/alarms.csv b/monocypher/.frama-c/monocypher.eva/alarms.csv
similarity index 100%
rename from monocypher/monocypher.eva/alarms.csv
rename to monocypher/.frama-c/monocypher.eva/alarms.csv
diff --git a/monocypher/monocypher.eva/metrics.log b/monocypher/.frama-c/monocypher.eva/metrics.log
similarity index 100%
rename from monocypher/monocypher.eva/metrics.log
rename to monocypher/.frama-c/monocypher.eva/metrics.log
diff --git a/monocypher/monocypher.eva/nonterm.log b/monocypher/.frama-c/monocypher.eva/nonterm.log
similarity index 100%
rename from monocypher/monocypher.eva/nonterm.log
rename to monocypher/.frama-c/monocypher.eva/nonterm.log
diff --git a/monocypher/monocypher.eva/warnings.log b/monocypher/.frama-c/monocypher.eva/warnings.log
similarity index 100%
rename from monocypher/monocypher.eva/warnings.log
rename to monocypher/.frama-c/monocypher.eva/warnings.log
diff --git a/monocypher/monocypher.parse/framac.ast b/monocypher/.frama-c/monocypher.parse/framac.ast
similarity index 100%
rename from monocypher/monocypher.parse/framac.ast
rename to monocypher/.frama-c/monocypher.parse/framac.ast
diff --git a/monocypher/monocypher.parse/metrics.log b/monocypher/.frama-c/monocypher.parse/metrics.log
similarity index 100%
rename from monocypher/monocypher.parse/metrics.log
rename to monocypher/.frama-c/monocypher.parse/metrics.log
diff --git a/jsmn/jsmn-main.eva/warnings.log b/monocypher/.frama-c/monocypher.parse/warnings.log
similarity index 100%
rename from jsmn/jsmn-main.eva/warnings.log
rename to monocypher/.frama-c/monocypher.parse/warnings.log
diff --git a/monocypher/.frama-c/path.mk b/monocypher/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/monocypher/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/monocypher/GNUmakefile b/monocypher/GNUmakefile
deleted file mode 100644
index d46169131dd000f5bf70447dfaf49f3ff8d8b37c..0000000000000000000000000000000000000000
--- a/monocypher/GNUmakefile
+++ /dev/null
@@ -1,75 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -Isrc -Isrc/optional
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -machdep x86_64 \
-  -no-warn-signed-overflow \
-
-# msg key callstack is too unstable and causes oracle changes more often than
-# 
-# -kernel-msg-key callstack \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -slevel 8 \
-  -eva-split-return auto \
-  -eva-warn-key signed-overflow=inactive \
-
-# -eva-gauges-domain : -6 alarms, +1m30 analysis time
-# -eva-equality-domain : +3 alarms (!), +1m30 analysis time
-
-#FCGUIFLAGS += -kernel-msg-key callstack
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := monocypher
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained
-# via a JSON compilation database + analysis-scripts/list_files.py
-$(MAIN_TARGET).parse: src/monocypher.c src/optional/sha512.c tests/test.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/monocypher/frama-c-path.mk b/monocypher/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/monocypher/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/papabench/.frama-c/GNUmakefile b/papabench/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..6fa8d7ff440db37b3af07f5d303302dbf988266f
--- /dev/null
+++ b/papabench/.frama-c/GNUmakefile
@@ -0,0 +1,57 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -DUBX \
+  -D__FAKE_FOR_IA32__ \
+  -D_XOPEN_SOURCE=700 \
+  -I../sw/airborne/fly_by_wire \
+  -I../sw/var/include \
+  -I../sw/airborne/autopilot \
+  -I../avr/include \
+  -iquote ../sw/include \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+  -absolute-valid-range 0-0xFF -warn-special-float nan \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -slevel 1 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = papabench.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+papabench.parse: \
+  $(sort $(wildcard ../sw/airborne/autopilot/*.c)) \
+  ../sw/lib/c/math.c \
+  $(shell $(FRAMAC)-config -print-share-path)/libc/math.c \
+  fc_stubs.h \
+
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/papabench/.frama-c/fc_stubs.h b/papabench/.frama-c/fc_stubs.h
new file mode 100644
index 0000000000000000000000000000000000000000..da9095782aa902c5cb2ae3af9fba3c9028e8d106
--- /dev/null
+++ b/papabench/.frama-c/fc_stubs.h
@@ -0,0 +1,10 @@
+/*@
+  requires valid_exp: \valid(exp);
+  assigns \result, *exp \from x;
+ */
+float frexpf(float x, int *exp);
+
+/*@
+  assigns \result \from x, exp;
+ */
+double ldexp(double x, int exp);
diff --git a/papabench/papabench.eva/alarms.csv b/papabench/.frama-c/papabench.eva/alarms.csv
similarity index 94%
rename from papabench/papabench.eva/alarms.csv
rename to papabench/.frama-c/papabench.eva/alarms.csv
index b808f21c31204f3c6fa75c62db17790da1df540e..10a41edf2d257bff7cc02767e3214884e6f77c2a 100644
--- a/papabench/papabench.eva/alarms.csv
+++ b/papabench/.frama-c/papabench.eva/alarms.csv
@@ -1,9 +1,4 @@
 directory	file	line	function	property kind	status	property
-FRAMAC_SHARE/libc	math.h	351	frexpf	assigns clause	Unknown	assigns \result, *exp;
-FRAMAC_SHARE/libc	math.h	351	frexpf	from clause	Unknown	assigns *exp \from *exp, value;
-FRAMAC_SHARE/libc	math.h	351	frexpf	from clause	Unknown	assigns \result \from *exp, value;
-FRAMAC_SHARE/libc	math.h	358	ldexp	assigns clause	Unknown	assigns \nothing;
-FRAMAC_SHARE/libc	math.h	358	ldexp	from clause	Unknown	assigns \result \from x, exp;
 sw/airborne/autopilot	estimator.c	116	estimator_update_state_infrared	is_nan	Unknown	¬\is_NaN(\mul_float(rad_of_ir, (float)ir_roll))
 sw/airborne/autopilot	estimator.c	118	estimator_update_state_infrared	is_nan	Unknown	¬\is_NaN(\mul_float(rad_of_ir, (float)ir_pitch))
 sw/airborne/autopilot	estimator.c	158	estimator_update_ir_estim	is_nan	Unknown	¬\is_NaN(\div_float(estimator_update_ir_estim_sum_xy, estimator_update_ir_estim_sum_xx))
diff --git a/papabench/papabench.eva/metrics.log b/papabench/.frama-c/papabench.eva/metrics.log
similarity index 100%
rename from papabench/papabench.eva/metrics.log
rename to papabench/.frama-c/papabench.eva/metrics.log
diff --git a/papabench/papabench.eva/nonterm.log b/papabench/.frama-c/papabench.eva/nonterm.log
similarity index 100%
rename from papabench/papabench.eva/nonterm.log
rename to papabench/.frama-c/papabench.eva/nonterm.log
diff --git a/khash/khash.eva/warnings.log b/papabench/.frama-c/papabench.eva/warnings.log
similarity index 100%
rename from khash/khash.eva/warnings.log
rename to papabench/.frama-c/papabench.eva/warnings.log
diff --git a/papabench/papabench.parse/framac.ast b/papabench/.frama-c/papabench.parse/framac.ast
similarity index 100%
rename from papabench/papabench.parse/framac.ast
rename to papabench/.frama-c/papabench.parse/framac.ast
diff --git a/papabench/papabench.parse/metrics.log b/papabench/.frama-c/papabench.parse/metrics.log
similarity index 100%
rename from papabench/papabench.parse/metrics.log
rename to papabench/.frama-c/papabench.parse/metrics.log
diff --git a/papabench/papabench.parse/warnings.log b/papabench/.frama-c/papabench.parse/warnings.log
similarity index 100%
rename from papabench/papabench.parse/warnings.log
rename to papabench/.frama-c/papabench.parse/warnings.log
diff --git a/papabench/.frama-c/path.mk b/papabench/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/papabench/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/papabench/GNUmakefile b/papabench/GNUmakefile
deleted file mode 100644
index 3dfe7cd645cd993012691ab5d1680fb867170c80..0000000000000000000000000000000000000000
--- a/papabench/GNUmakefile
+++ /dev/null
@@ -1,73 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -DUBX -D__FAKE_FOR_IA32__ -D_XOPEN_SOURCE=700 \
-  -Isw/airborne/fly_by_wire \
-  -Isw/var/include \
-  -Isw/airborne/autopilot \
-  -Iavr/include \
-  -iquote sw/include \
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-  -absolute-valid-range 0-0xFF -warn-special-float nan \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -slevel 1 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := papabench
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: $(sort $(wildcard sw/airborne/autopilot/*.c)) sw/lib/c/math.c \
-  $(shell $(FRAMAC_CONFIG) -print-share-path)/libc/math.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/papabench/frama-c-path.mk b/papabench/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/papabench/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/papabench/papabench.eva/warnings.log b/papabench/papabench.eva/warnings.log
deleted file mode 100644
index 75cd138033ad149abcfb48a96fb282337c05fffb..0000000000000000000000000000000000000000
--- a/papabench/papabench.eva/warnings.log
+++ /dev/null
@@ -1,2 +0,0 @@
-sw/lib/c/math.c:85:[kernel:annot:missing-spec] warning: Neither code nor specification for function frexpf, generating default assigns from the prototype
-sw/lib/c/math.c:86:[kernel:annot:missing-spec] warning: Neither code nor specification for function ldexp, generating default assigns from the prototype
diff --git a/frama-c-path.mk b/path.mk
similarity index 69%
rename from frama-c-path.mk
rename to path.mk
index 6a457608bc70478d26391614aa523cccf57fd22f..87880529425588265c3d9b841cbe2d23886386d2 100644
--- a/frama-c-path.mk
+++ b/path.mk
@@ -1,8 +1,7 @@
-FRAMAC_DIR=../frama-c/build/bin
+FRAMAC_DIR=../../frama-c/build/bin
 ifeq ($(wildcard $(FRAMAC_DIR)),)
 # Frama-C not installed locally; using the version in the PATH
 else
 FRAMAC=$(FRAMAC_DIR)/frama-c
 FRAMAC_GUI=$(FRAMAC_DIR)/frama-c-gui
-FRAMAC_CONFIG=$(FRAMAC_DIR)/frama-c-config
 endif
diff --git a/polarssl/.frama-c/GNUmakefile b/polarssl/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..5ca7506930d1041951137908906000df7dfb2d67
--- /dev/null
+++ b/polarssl/.frama-c/GNUmakefile
@@ -0,0 +1,98 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -CC \
+  -I.. \
+
+# -CC is used to preserve loop unroll annotations from expanded macros
+
+## General flags
+FCFLAGS     += \
+  -json-compilation-database .. \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+# (Optional) Eva-specific flags
+EVAFLAGS    += \
+  -eva-subdivide-non-linear 16 \
+  -eva-ilevel 13 \
+  -eva-no-alloc-returns-null \
+  -eva-use-spec $(call fc_list,$(USE_SPEC)) \
+  -eva-slevel 2 \
+
+USE_SPEC  += \
+  my_set_session \
+  my_get_session \
+  aes_setkey_enc \
+  aes_setkey_dec \
+  aes_crypt_cbc \
+  des3_crypt_ecb \
+  des3_crypt_cbc \
+  des_setkey \
+  arc4_crypt \
+  ssl_free \
+  x509_free \
+  x509parse_crt \
+  x509parse_key \
+  x509parse_verifycrl \
+  hardclock \
+  sha4_update \
+  sha4_process \
+  sha1_process \
+  sha1_finish \
+  aes_crypt_ecb \
+  md5_process \
+  ctr_drbg_random \
+  dhm_check_range \
+  dhm_make_params \
+  mpi_free \
+  mpi_exp_mod \
+  mpi_fill_random \
+  mpi_read_string \
+  mpi_read_binary \
+  mpi_msb \
+  mpi_write_binary \
+  mpi_cmp_mpi \
+  mpi_cmp_abs \
+  mpi_copy \
+  mpi_sub_mpi \
+  mpi_mod_mpi \
+  mpi_mul_mpi \
+  mpi_add_abs \
+  mpi_sub_abs \
+  camellia_crypt_cbc \
+  camellia_feistel \
+  sha4 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = polarssl-server.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+polarssl-server.parse: \
+  fc_stubs.h \
+  $(sort $(wildcard ../library/*.c)) \
+  ../programs/ssl/ssl_server.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/polarssl/stubs.h b/polarssl/.frama-c/fc_stubs.h
similarity index 100%
rename from polarssl/stubs.h
rename to polarssl/.frama-c/fc_stubs.h
diff --git a/polarssl/.frama-c/path.mk b/polarssl/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/polarssl/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/polarssl/polarssl-server.eva/alarms.csv b/polarssl/.frama-c/polarssl-server.eva/alarms.csv
similarity index 75%
rename from polarssl/polarssl-server.eva/alarms.csv
rename to polarssl/.frama-c/polarssl-server.eva/alarms.csv
index 3b48d40e77317c68bc18deb930f10c2561ea26dc..8fe54a75b4cf5d87ef2e9c55b33bc8bfd08def8b 100644
--- a/polarssl/polarssl-server.eva/alarms.csv
+++ b/polarssl/.frama-c/polarssl-server.eva/alarms.csv
@@ -1,40 +1,40 @@
 directory	file	line	function	property kind	status	property
-.	stubs.h	20	aes_setkey_enc	postcondition	Unknown	\initialized(&\old(ctx)->rk)
-.	stubs.h	21	aes_setkey_enc	postcondition	Unknown	\old(ctx)->nr ≡ 10 ∨ \old(ctx)->nr ≡ 12 ∨ \old(ctx)->nr ≡ 14
-.	stubs.h	32	aes_setkey_dec	postcondition	Unknown	\old(ctx)->nr ≡ 10 ∨ \old(ctx)->nr ≡ 12 ∨ \old(ctx)->nr ≡ 14
-.	stubs.h	37	aes_crypt_cbc	precondition	Unknown	length % 16 ≡ 0
-.	stubs.h	39	aes_crypt_cbc	precondition	Unknown	\valid(output + (0 .. length - 1))
-.	stubs.h	40	aes_crypt_cbc	precondition	Unknown	\valid_read(input + (0 .. length - 1))
-.	stubs.h	88	sha1_process	precondition	Unknown	\valid_read(data + (0 .. 63))
-.	stubs.h	104	sha1_finish	postcondition	Unknown	\initialized(\old(output) + (0 .. 19))
-.	stubs.h	110	sha4	precondition	Unknown	\initialized(input + (0 .. ilen - 1))
-.	stubs.h	113	sha4	postcondition	Unknown	\initialized(\old(output) + (0 .. 63))
-.	stubs.h	130	md5_process	precondition	Unknown	\valid_read(data + (0 .. 63))
-.	stubs.h	141	md5_finish	precondition	Unknown	\valid(output + (0 .. 15))
-.	stubs.h	150	ctr_drbg_random	postcondition	Unknown	\initialized(\old(output) + (0 .. \old(output_len) - 1))
-.	stubs.h	166	dhm_make_params	postcondition	Unknown	\initialized(\old(olen))
-.	stubs.h	167	dhm_make_params	postcondition	Unknown	\old(ctx)->len ≡ 128
-.	stubs.h	181	mpi_exp_mod	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
-.	stubs.h	205	mpi_write_binary	postcondition	Unknown	\initialized(\old(buf) + (0 .. \old(buflen) - 1))
-.	stubs.h	236	mpi_sub_mpi	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
-.	stubs.h	245	mpi_mul_mpi	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
-.	stubs.h	254	mpi_mod_mpi	postcondition	Unknown	\old(R)->s ≡ 1 ∨ \old(R)->s ≡ -1
-.	stubs.h	263	mpi_add_abs	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
-.	stubs.h	272	mpi_sub_abs	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
-.	stubs.h	290	mpi_read_string	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
-.	stubs.h	295	mpi_read_binary	precondition	Unknown	\valid_read(buf + (0 .. buflen - 1))
-.	stubs.h	298	mpi_read_binary	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
-.	stubs.h	304	arc4_crypt	precondition	Unknown	\valid_read(input + (0 .. length - 1))
-.	stubs.h	305	arc4_crypt	precondition	Unknown	\valid(output + (0 .. length - 1))
-.	stubs.h	307	arc4_crypt	postcondition	Unknown	\initialized(\old(output) + (0 .. \old(length) - 1))
-.	stubs.h	318	camellia_crypt_cbc	precondition	Unknown	length % 16 ≡ 0
-.	stubs.h	320	camellia_crypt_cbc	precondition	Unknown	\valid(output + (0 .. length - 1))
-.	stubs.h	321	camellia_crypt_cbc	precondition	Unknown	\valid_read(input + (0 .. length - 1))
-.	stubs.h	351	des3_crypt_cbc	postcondition	Unknown	\result ≡ -0x0032
-.	stubs.h	355	des3_crypt_cbc	precondition	Unknown	\valid_read(input + (0 .. length - 1))
-.	stubs.h	356	des3_crypt_cbc	precondition	Unknown	\initialized(input + (0 .. length - 1))
-.	stubs.h	361	des3_crypt_cbc	postcondition	Unknown	\initialized(\old(output) + (0 .. \old(length) - 1))
-.	stubs.h	362	des3_crypt_cbc	postcondition	Unknown	\result ≡ 0
+.	fc_stubs.h	20	aes_setkey_enc	postcondition	Unknown	\initialized(&\old(ctx)->rk)
+.	fc_stubs.h	21	aes_setkey_enc	postcondition	Unknown	\old(ctx)->nr ≡ 10 ∨ \old(ctx)->nr ≡ 12 ∨ \old(ctx)->nr ≡ 14
+.	fc_stubs.h	32	aes_setkey_dec	postcondition	Unknown	\old(ctx)->nr ≡ 10 ∨ \old(ctx)->nr ≡ 12 ∨ \old(ctx)->nr ≡ 14
+.	fc_stubs.h	37	aes_crypt_cbc	precondition	Unknown	length % 16 ≡ 0
+.	fc_stubs.h	39	aes_crypt_cbc	precondition	Unknown	\valid(output + (0 .. length - 1))
+.	fc_stubs.h	40	aes_crypt_cbc	precondition	Unknown	\valid_read(input + (0 .. length - 1))
+.	fc_stubs.h	88	sha1_process	precondition	Unknown	\valid_read(data + (0 .. 63))
+.	fc_stubs.h	104	sha1_finish	postcondition	Unknown	\initialized(\old(output) + (0 .. 19))
+.	fc_stubs.h	110	sha4	precondition	Unknown	\initialized(input + (0 .. ilen - 1))
+.	fc_stubs.h	113	sha4	postcondition	Unknown	\initialized(\old(output) + (0 .. 63))
+.	fc_stubs.h	130	md5_process	precondition	Unknown	\valid_read(data + (0 .. 63))
+.	fc_stubs.h	141	md5_finish	precondition	Unknown	\valid(output + (0 .. 15))
+.	fc_stubs.h	150	ctr_drbg_random	postcondition	Unknown	\initialized(\old(output) + (0 .. \old(output_len) - 1))
+.	fc_stubs.h	166	dhm_make_params	postcondition	Unknown	\initialized(\old(olen))
+.	fc_stubs.h	167	dhm_make_params	postcondition	Unknown	\old(ctx)->len ≡ 128
+.	fc_stubs.h	181	mpi_exp_mod	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
+.	fc_stubs.h	205	mpi_write_binary	postcondition	Unknown	\initialized(\old(buf) + (0 .. \old(buflen) - 1))
+.	fc_stubs.h	236	mpi_sub_mpi	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
+.	fc_stubs.h	245	mpi_mul_mpi	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
+.	fc_stubs.h	254	mpi_mod_mpi	postcondition	Unknown	\old(R)->s ≡ 1 ∨ \old(R)->s ≡ -1
+.	fc_stubs.h	263	mpi_add_abs	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
+.	fc_stubs.h	272	mpi_sub_abs	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
+.	fc_stubs.h	290	mpi_read_string	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
+.	fc_stubs.h	295	mpi_read_binary	precondition	Unknown	\valid_read(buf + (0 .. buflen - 1))
+.	fc_stubs.h	298	mpi_read_binary	postcondition	Unknown	\old(X)->s ≡ 1 ∨ \old(X)->s ≡ -1
+.	fc_stubs.h	304	arc4_crypt	precondition	Unknown	\valid_read(input + (0 .. length - 1))
+.	fc_stubs.h	305	arc4_crypt	precondition	Unknown	\valid(output + (0 .. length - 1))
+.	fc_stubs.h	307	arc4_crypt	postcondition	Unknown	\initialized(\old(output) + (0 .. \old(length) - 1))
+.	fc_stubs.h	318	camellia_crypt_cbc	precondition	Unknown	length % 16 ≡ 0
+.	fc_stubs.h	320	camellia_crypt_cbc	precondition	Unknown	\valid(output + (0 .. length - 1))
+.	fc_stubs.h	321	camellia_crypt_cbc	precondition	Unknown	\valid_read(input + (0 .. length - 1))
+.	fc_stubs.h	351	des3_crypt_cbc	postcondition	Unknown	\result ≡ -0x0032
+.	fc_stubs.h	355	des3_crypt_cbc	precondition	Unknown	\valid_read(input + (0 .. length - 1))
+.	fc_stubs.h	356	des3_crypt_cbc	precondition	Unknown	\initialized(input + (0 .. length - 1))
+.	fc_stubs.h	361	des3_crypt_cbc	postcondition	Unknown	\initialized(\old(output) + (0 .. \old(length) - 1))
+.	fc_stubs.h	362	des3_crypt_cbc	postcondition	Unknown	\result ≡ 0
 FRAMAC_SHARE/libc	string.h	92	memcpy	precondition	Unknown	valid_dest: valid_or_empty(dest, n)
 FRAMAC_SHARE/libc	string.h	93	memcpy	precondition	Unknown	valid_src: valid_read_or_empty(src, n)
 FRAMAC_SHARE/libc	string.h	104	memmove	precondition	Unknown	valid_dest: valid_or_empty(dest, n)
diff --git a/polarssl/polarssl-server.eva/metrics.log b/polarssl/.frama-c/polarssl-server.eva/metrics.log
similarity index 100%
rename from polarssl/polarssl-server.eva/metrics.log
rename to polarssl/.frama-c/polarssl-server.eva/metrics.log
diff --git a/qlz/qlz-compress.eva/nonterm.log b/polarssl/.frama-c/polarssl-server.eva/nonterm.log
similarity index 100%
rename from qlz/qlz-compress.eva/nonterm.log
rename to polarssl/.frama-c/polarssl-server.eva/nonterm.log
diff --git a/kilo/kilo.parse/warnings.log b/polarssl/.frama-c/polarssl-server.eva/warnings.log
similarity index 100%
rename from kilo/kilo.parse/warnings.log
rename to polarssl/.frama-c/polarssl-server.eva/warnings.log
diff --git a/polarssl/polarssl-server.parse/framac.ast b/polarssl/.frama-c/polarssl-server.parse/framac.ast
similarity index 100%
rename from polarssl/polarssl-server.parse/framac.ast
rename to polarssl/.frama-c/polarssl-server.parse/framac.ast
diff --git a/polarssl/polarssl-server.parse/metrics.log b/polarssl/.frama-c/polarssl-server.parse/metrics.log
similarity index 100%
rename from polarssl/polarssl-server.parse/metrics.log
rename to polarssl/.frama-c/polarssl-server.parse/metrics.log
diff --git a/polarssl/polarssl-server.parse/warnings.log b/polarssl/.frama-c/polarssl-server.parse/warnings.log
similarity index 100%
rename from polarssl/polarssl-server.parse/warnings.log
rename to polarssl/.frama-c/polarssl-server.parse/warnings.log
diff --git a/polarssl/GNUmakefile b/polarssl/GNUmakefile
deleted file mode 100644
index a53f8f9bd2ae234c5455cd83089a41085833f26b..0000000000000000000000000000000000000000
--- a/polarssl/GNUmakefile
+++ /dev/null
@@ -1,114 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -CC
-# -CC is used to preserve loop unroll annotations from expanded macros
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -json-compilation-database . \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-subdivide-non-linear 16 \
-  -eva-ilevel 13 \
-  -eva-no-alloc-returns-null \
-  -eva-use-spec $(call fc_list,$(USE_SPEC)) \
-  -eva-slevel 2 \
-
-USE_SPEC  += \
-  my_set_session \
-  my_get_session \
-  aes_setkey_enc \
-  aes_setkey_dec \
-  aes_crypt_cbc \
-  des3_crypt_ecb \
-  des3_crypt_cbc \
-  des_setkey \
-  arc4_crypt \
-  ssl_free \
-  x509_free \
-  x509parse_crt \
-  x509parse_key \
-  x509parse_verifycrl \
-  hardclock \
-  sha4_update \
-  sha4_process \
-  sha1_process \
-  sha1_finish \
-  aes_crypt_ecb \
-  md5_process \
-  ctr_drbg_random \
-  dhm_check_range \
-  dhm_make_params \
-  mpi_free \
-  mpi_exp_mod \
-  mpi_fill_random \
-  mpi_read_string \
-  mpi_read_binary \
-  mpi_msb \
-  mpi_write_binary \
-  mpi_cmp_mpi \
-  mpi_cmp_abs \
-  mpi_copy \
-  mpi_sub_mpi \
-  mpi_mod_mpi \
-  mpi_mul_mpi \
-  mpi_add_abs \
-  mpi_sub_abs \
-  camellia_crypt_cbc \
-  camellia_feistel \
-  sha4 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := polarssl-server
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained
-# via a JSON compilation database + analysis-scripts/list_files.py
-$(MAIN_TARGET).parse: \
-  stubs.h \
-  $(sort $(wildcard library/*.c)) \
-  programs/ssl/ssl_server.c \
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/polarssl/frama-c-path.mk b/polarssl/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/polarssl/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/polarssl/library/ssl_tls.c b/polarssl/library/ssl_tls.c
index c48b4f3224fef63362a4f9e73c9f3a6f808b76cf..10617fa0ec656af7419798344661e8f7ce4015bc 100644
--- a/polarssl/library/ssl_tls.c
+++ b/polarssl/library/ssl_tls.c
@@ -45,7 +45,7 @@
 #include <stdlib.h>
 #include <time.h>
 
-#include "../stubs.h"
+#include "fc_stubs.h"
 
 #if defined _MSC_VER && !defined strcasecmp
 #define strcasecmp _stricmp
diff --git a/qlz/.frama-c/GNUmakefile b/qlz/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..b09489955b583ed2e902da4eb710c8ca52f1c87c
--- /dev/null
+++ b/qlz/.frama-c/GNUmakefile
@@ -0,0 +1,64 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+  -main eva_main \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-no-alloc-returns-null \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = qlz-compress.eva qlz-decompress.eva qlz-stream-compress.eva qlz-stream-decompress.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+qlz-compress.parse: \
+  ../compress_file.c \
+  ../quicklz.c \
+  fc_stubs.c \
+
+qlz-decompress.parse: \
+  ../decompress_file.c \
+  ../quicklz.c \
+  fc_stubs.c \
+
+qlz-stream-compress.parse: CPPFLAGS += -DQLZ_COMPRESSION_LEVEL=3 -DQLZ_STREAMING_BUFFER=10000
+qlz-stream-compress.parse: \
+  ../stream_compress.c \
+  ../quicklz.c \
+  fc_stubs.c \
+
+qlz-stream-decompress.parse: CPPFLAGS += -DQLZ_COMPRESSION_LEVEL=3 -DQLZ_STREAMING_BUFFER=10000
+qlz-stream-decompress.parse: \
+  ../stream_decompress.c \
+  ../quicklz.c \
+  fc_stubs.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/qlz/.frama-c/fc_stubs.c b/qlz/.frama-c/fc_stubs.c
new file mode 100644
index 0000000000000000000000000000000000000000..356dcab002c5d8234bf1299dfbabf612545697f9
--- /dev/null
+++ b/qlz/.frama-c/fc_stubs.c
@@ -0,0 +1,23 @@
+// Stub for a main function which reads arguments from the command line, to be
+// used by the Eva plug-in.
+// This stub emulates non-deterministic input of up to 5 arguments, each up
+// to 256 characters long. This is sufficient to ensure arbitrary input in
+// virtually every case.
+// Do not forget to add option '-main eva_main' in order to use this stub.
+
+#ifdef __FRAMAC__
+#include "__fc_builtin.h"
+int main(int, char **);
+static volatile int nondet;
+int eva_main() {
+  int argc = Frama_C_interval(0, 5);
+  char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256];
+  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0};
+  //@ loop unroll 5;
+  for (int i = 0; i < 5; i++) {
+    Frama_C_make_unknown(argv[i], 255);
+    argv[i][255] = 0;
+  }
+  return main(argc, argv);
+}
+#endif // __FRAMAC__
diff --git a/qlz/.frama-c/path.mk b/qlz/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/qlz/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/qlz/qlz-compress.eva/alarms.csv b/qlz/.frama-c/qlz-compress.eva/alarms.csv
similarity index 100%
rename from qlz/qlz-compress.eva/alarms.csv
rename to qlz/.frama-c/qlz-compress.eva/alarms.csv
diff --git a/qlz/qlz-compress.eva/metrics.log b/qlz/.frama-c/qlz-compress.eva/metrics.log
similarity index 100%
rename from qlz/qlz-compress.eva/metrics.log
rename to qlz/.frama-c/qlz-compress.eva/metrics.log
diff --git a/qlz/qlz-stream-compress.eva/nonterm.log b/qlz/.frama-c/qlz-compress.eva/nonterm.log
similarity index 100%
rename from qlz/qlz-stream-compress.eva/nonterm.log
rename to qlz/.frama-c/qlz-compress.eva/nonterm.log
diff --git a/qlz/qlz-compress.eva/warnings.log b/qlz/.frama-c/qlz-compress.eva/warnings.log
similarity index 100%
rename from qlz/qlz-compress.eva/warnings.log
rename to qlz/.frama-c/qlz-compress.eva/warnings.log
diff --git a/qlz/qlz-compress.parse/framac.ast b/qlz/.frama-c/qlz-compress.parse/framac.ast
similarity index 99%
rename from qlz/qlz-compress.parse/framac.ast
rename to qlz/.frama-c/qlz-compress.parse/framac.ast
index 12c994676059fcf5ecd16fadca1cd075d84479dd..c0c6c4735573277d39b34c5462be799e55300b09 100644
--- a/qlz/qlz-compress.parse/framac.ast
+++ b/qlz/.frama-c/qlz-compress.parse/framac.ast
@@ -564,7 +564,6 @@ size_t qlz_decompress(char const *source, void *destination,
   return dsiz;
 }
 
-int volatile nondet;
 int eva_main(void)
 {
   char argv0[256];
diff --git a/qlz/qlz-compress.parse/metrics.log b/qlz/.frama-c/qlz-compress.parse/metrics.log
similarity index 97%
rename from qlz/qlz-compress.parse/metrics.log
rename to qlz/.frama-c/qlz-compress.parse/metrics.log
index 8c083067bf12856fea1dc3d26cf4febeb0de5752..9a77db07d1c318bc63b5e1acd8cb7019d64818b2 100644
--- a/qlz/qlz-compress.parse/metrics.log
+++ b/qlz/.frama-c/qlz-compress.parse/metrics.log
@@ -25,7 +25,7 @@ Global metrics
 ============== 
 Sloc = 363
 Decision point = 61
-Global variables = 2
+Global variables = 1
 If = 49
 Loop = 11
 Goto = 25
diff --git a/libmodbus/libmodbus-random-client.eva/warnings.log b/qlz/.frama-c/qlz-compress.parse/warnings.log
similarity index 100%
rename from libmodbus/libmodbus-random-client.eva/warnings.log
rename to qlz/.frama-c/qlz-compress.parse/warnings.log
diff --git a/qlz/qlz-decompress.eva/alarms.csv b/qlz/.frama-c/qlz-decompress.eva/alarms.csv
similarity index 100%
rename from qlz/qlz-decompress.eva/alarms.csv
rename to qlz/.frama-c/qlz-decompress.eva/alarms.csv
diff --git a/qlz/qlz-decompress.eva/metrics.log b/qlz/.frama-c/qlz-decompress.eva/metrics.log
similarity index 100%
rename from qlz/qlz-decompress.eva/metrics.log
rename to qlz/.frama-c/qlz-decompress.eva/metrics.log
diff --git a/qlz/qlz-decompress.eva/nonterm.log b/qlz/.frama-c/qlz-decompress.eva/nonterm.log
similarity index 77%
rename from qlz/qlz-decompress.eva/nonterm.log
rename to qlz/.frama-c/qlz-decompress.eva/nonterm.log
index dc49a2179591c2f61ea6b593efdd43833a07ac7f..40676348ff8ed7166a2fd35b6cde29bdfcf806f5 100644
--- a/qlz/qlz-decompress.eva/nonterm.log
+++ b/qlz/.frama-c/qlz-decompress.eva/nonterm.log
@@ -2,7 +2,7 @@ decompress_file.c:36:[nonterm] warning: unreachable return
 quicklz.c:81:[nonterm] warning: non-terminating statement
 stack: reset_table_decompress :: quicklz.c:819 <-
        qlz_decompress :: decompress_file.c:32 <-
-       main :: fc_stubs.c:15 <-
+       main :: fc_stubs.c:21 <-
        eva_main
 quicklz.c:846:[nonterm] warning: unreachable return
-fc_stubs.c:15:[nonterm] warning: unreachable return
+fc_stubs.c:21:[nonterm] warning: unreachable return
diff --git a/mini-gmp/mini-gmp.parse/warnings.log b/qlz/.frama-c/qlz-decompress.eva/warnings.log
similarity index 100%
rename from mini-gmp/mini-gmp.parse/warnings.log
rename to qlz/.frama-c/qlz-decompress.eva/warnings.log
diff --git a/qlz/qlz-decompress.parse/framac.ast b/qlz/.frama-c/qlz-decompress.parse/framac.ast
similarity index 99%
rename from qlz/qlz-decompress.parse/framac.ast
rename to qlz/.frama-c/qlz-decompress.parse/framac.ast
index 9978f546b28e9fddc2e7937ef4fb4ef894cc0d8a..38755e1420017bb58f76db1b5c10bc9dfae090a3 100644
--- a/qlz/qlz-decompress.parse/framac.ast
+++ b/qlz/.frama-c/qlz-decompress.parse/framac.ast
@@ -566,7 +566,6 @@ size_t qlz_decompress(char const *source, void *destination,
   return dsiz;
 }
 
-int volatile nondet;
 int eva_main(void)
 {
   char argv0[256];
diff --git a/qlz/qlz-decompress.parse/metrics.log b/qlz/.frama-c/qlz-decompress.parse/metrics.log
similarity index 97%
rename from qlz/qlz-decompress.parse/metrics.log
rename to qlz/.frama-c/qlz-decompress.parse/metrics.log
index 25923ad87fee621a81bc0ad08a6c7c0d5c78d56a..977588b663a0a1d43514cfecd97104b0b8379765 100644
--- a/qlz/qlz-decompress.parse/metrics.log
+++ b/qlz/.frama-c/qlz-decompress.parse/metrics.log
@@ -25,7 +25,7 @@ Global metrics
 ============== 
 Sloc = 364
 Decision point = 61
-Global variables = 2
+Global variables = 1
 If = 49
 Loop = 11
 Goto = 25
diff --git a/monocypher/monocypher.parse/warnings.log b/qlz/.frama-c/qlz-decompress.parse/warnings.log
similarity index 100%
rename from monocypher/monocypher.parse/warnings.log
rename to qlz/.frama-c/qlz-decompress.parse/warnings.log
diff --git a/qlz/qlz-stream-compress.eva/alarms.csv b/qlz/.frama-c/qlz-stream-compress.eva/alarms.csv
similarity index 100%
rename from qlz/qlz-stream-compress.eva/alarms.csv
rename to qlz/.frama-c/qlz-stream-compress.eva/alarms.csv
diff --git a/qlz/qlz-stream-compress.eva/metrics.log b/qlz/.frama-c/qlz-stream-compress.eva/metrics.log
similarity index 100%
rename from qlz/qlz-stream-compress.eva/metrics.log
rename to qlz/.frama-c/qlz-stream-compress.eva/metrics.log
diff --git a/semver/semver.eva/nonterm.log b/qlz/.frama-c/qlz-stream-compress.eva/nonterm.log
similarity index 100%
rename from semver/semver.eva/nonterm.log
rename to qlz/.frama-c/qlz-stream-compress.eva/nonterm.log
diff --git a/qlz/qlz-stream-compress.eva/warnings.log b/qlz/.frama-c/qlz-stream-compress.eva/warnings.log
similarity index 100%
rename from qlz/qlz-stream-compress.eva/warnings.log
rename to qlz/.frama-c/qlz-stream-compress.eva/warnings.log
diff --git a/qlz/qlz-stream-compress.parse/framac.ast b/qlz/.frama-c/qlz-stream-compress.parse/framac.ast
similarity index 99%
rename from qlz/qlz-stream-compress.parse/framac.ast
rename to qlz/.frama-c/qlz-stream-compress.parse/framac.ast
index 48f7998c5fc60df66ac4ff5a53b49b636e076122..c1ad167da0407516a706566b37bcef45923d8ee0 100644
--- a/qlz/qlz-stream-compress.parse/framac.ast
+++ b/qlz/.frama-c/qlz-stream-compress.parse/framac.ast
@@ -666,7 +666,6 @@ size_t qlz_decompress(char const *source, void *destination,
   return dsiz;
 }
 
-int volatile nondet;
 int eva_main(void)
 {
   char argv0[256];
diff --git a/qlz/qlz-stream-compress.parse/metrics.log b/qlz/.frama-c/qlz-stream-compress.parse/metrics.log
similarity index 97%
rename from qlz/qlz-stream-compress.parse/metrics.log
rename to qlz/.frama-c/qlz-stream-compress.parse/metrics.log
index 20365a97ba3755cc36635120c3deae8b5ca440ea..7c23c739ac2d60837ff96684e4c2d9dcf7db18f0 100644
--- a/qlz/qlz-stream-compress.parse/metrics.log
+++ b/qlz/.frama-c/qlz-stream-compress.parse/metrics.log
@@ -24,7 +24,7 @@ Global metrics
 ============== 
 Sloc = 439
 Decision point = 78
-Global variables = 2
+Global variables = 1
 If = 66
 Loop = 13
 Goto = 24
diff --git a/polarssl/polarssl-server.eva/warnings.log b/qlz/.frama-c/qlz-stream-compress.parse/warnings.log
similarity index 100%
rename from polarssl/polarssl-server.eva/warnings.log
rename to qlz/.frama-c/qlz-stream-compress.parse/warnings.log
diff --git a/qlz/qlz-stream-decompress.eva/alarms.csv b/qlz/.frama-c/qlz-stream-decompress.eva/alarms.csv
similarity index 100%
rename from qlz/qlz-stream-decompress.eva/alarms.csv
rename to qlz/.frama-c/qlz-stream-decompress.eva/alarms.csv
diff --git a/qlz/qlz-stream-decompress.eva/metrics.log b/qlz/.frama-c/qlz-stream-decompress.eva/metrics.log
similarity index 100%
rename from qlz/qlz-stream-decompress.eva/metrics.log
rename to qlz/.frama-c/qlz-stream-decompress.eva/metrics.log
diff --git a/qlz/qlz-stream-decompress.eva/nonterm.log b/qlz/.frama-c/qlz-stream-decompress.eva/nonterm.log
similarity index 84%
rename from qlz/qlz-stream-decompress.eva/nonterm.log
rename to qlz/.frama-c/qlz-stream-decompress.eva/nonterm.log
index 030181b1a65eb6f18f4ef5a8f736aa99879682af..19f2bc48a4dfc115cd721bdf8967d81c2a285344 100644
--- a/qlz/qlz-stream-decompress.eva/nonterm.log
+++ b/qlz/.frama-c/qlz-stream-decompress.eva/nonterm.log
@@ -1,5 +1,5 @@
 quicklz.c:81:[nonterm] warning: non-terminating statement
 stack: reset_table_decompress :: quicklz.c:819 <-
        qlz_decompress :: stream_decompress.c:43 <-
-       main :: fc_stubs.c:15 <-
+       main :: fc_stubs.c:21 <-
        eva_main
diff --git a/qlz/qlz-compress.parse/warnings.log b/qlz/.frama-c/qlz-stream-decompress.eva/warnings.log
similarity index 100%
rename from qlz/qlz-compress.parse/warnings.log
rename to qlz/.frama-c/qlz-stream-decompress.eva/warnings.log
diff --git a/qlz/qlz-stream-decompress.parse/framac.ast b/qlz/.frama-c/qlz-stream-decompress.parse/framac.ast
similarity index 99%
rename from qlz/qlz-stream-decompress.parse/framac.ast
rename to qlz/.frama-c/qlz-stream-decompress.parse/framac.ast
index 1b475cf0d433c76476d5316bd4e789d23b0db7f5..c4e1dd552144b3b88b596611277cdcba2180078e 100644
--- a/qlz/qlz-stream-decompress.parse/framac.ast
+++ b/qlz/.frama-c/qlz-stream-decompress.parse/framac.ast
@@ -665,7 +665,6 @@ size_t qlz_decompress(char const *source, void *destination,
   return dsiz;
 }
 
-int volatile nondet;
 int eva_main(void)
 {
   char argv0[256];
diff --git a/qlz/qlz-stream-decompress.parse/metrics.log b/qlz/.frama-c/qlz-stream-decompress.parse/metrics.log
similarity index 97%
rename from qlz/qlz-stream-decompress.parse/metrics.log
rename to qlz/.frama-c/qlz-stream-decompress.parse/metrics.log
index 04533f3ce5cd19b4d059b42960d4869438c9e9b8..961b27ac109b60b3f9b0e503cc7df86a15fb738f 100644
--- a/qlz/qlz-stream-decompress.parse/metrics.log
+++ b/qlz/.frama-c/qlz-stream-decompress.parse/metrics.log
@@ -24,7 +24,7 @@ Global metrics
 ============== 
 Sloc = 437
 Decision point = 78
-Global variables = 2
+Global variables = 1
 If = 66
 Loop = 13
 Goto = 24
diff --git a/qlz/qlz-decompress.eva/warnings.log b/qlz/.frama-c/qlz-stream-decompress.parse/warnings.log
similarity index 100%
rename from qlz/qlz-decompress.eva/warnings.log
rename to qlz/.frama-c/qlz-stream-decompress.parse/warnings.log
diff --git a/qlz/GNUmakefile b/qlz/GNUmakefile
deleted file mode 100644
index 7db61b00b0724dec9f45a61cd4862a4eac3efd03..0000000000000000000000000000000000000000
--- a/qlz/GNUmakefile
+++ /dev/null
@@ -1,70 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    += -include$(shell $(FRAMAC) -print-path)/libc/string.h
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -main eva_main \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-no-alloc-returns-null \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := qlz-compress
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva qlz-decompress.eva qlz-stream-compress.eva qlz-stream-decompress.eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained
-# via a JSON compilation database + analysis-scripts/list_files.py
-$(MAIN_TARGET).parse: compress_file.c quicklz.c fc_stubs.c
-
-qlz-decompress.parse: decompress_file.c quicklz.c fc_stubs.c
-
-qlz-stream-compress.parse: CPPFLAGS += -DQLZ_COMPRESSION_LEVEL=3 -DQLZ_STREAMING_BUFFER=10000
-qlz-stream-compress.parse: stream_compress.c quicklz.c fc_stubs.c
-
-qlz-stream-decompress.parse: CPPFLAGS += -DQLZ_COMPRESSION_LEVEL=3 -DQLZ_STREAMING_BUFFER=10000
-qlz-stream-decompress.parse: stream_decompress.c quicklz.c fc_stubs.c
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/qlz/fc_stubs.c b/qlz/fc_stubs.c
deleted file mode 100644
index 80c2ed24ddeb2701701221f7d86087e2d2ccb01d..0000000000000000000000000000000000000000
--- a/qlz/fc_stubs.c
+++ /dev/null
@@ -1,16 +0,0 @@
-int main(int argc, char **argv);
-
-#include "__fc_builtin.h"
-volatile int nondet;
-// main for EVA
-int eva_main() {
-  int argc = Frama_C_interval(0, 5);
-  char argv0[256], argv1[256], argv2[256], argv3[256], argv4[256];
-  char *argv[6] = {argv0, argv1, argv2, argv3, argv4, 0};
-  //@ loop unroll 5;
-  for (int i = 0; i < 5; i++) {
-    Frama_C_make_unknown(argv[i], 255);
-    argv[i][255] = 0;
-  }
-  return main(argc, argv);
-}
diff --git a/qlz/frama-c-path.mk b/qlz/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/qlz/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/semver/.frama-c/GNUmakefile b/semver/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..14fb40e18606a8b6d5778120d76734dcf9e7cfa0
--- /dev/null
+++ b/semver/.frama-c/GNUmakefile
@@ -0,0 +1,46 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-alloc-builtin fresh \
+  -slevel 82 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = semver.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+semver.parse: \
+  ../semver.c \
+  ../semver_test.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/semver/.frama-c/path.mk b/semver/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/semver/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/semver/semver.eva/alarms.csv b/semver/.frama-c/semver.eva/alarms.csv
similarity index 100%
rename from semver/semver.eva/alarms.csv
rename to semver/.frama-c/semver.eva/alarms.csv
diff --git a/semver/semver.eva/metrics.log b/semver/.frama-c/semver.eva/metrics.log
similarity index 100%
rename from semver/semver.eva/metrics.log
rename to semver/.frama-c/semver.eva/metrics.log
diff --git a/solitaire/solitaire.eva/nonterm.log b/semver/.frama-c/semver.eva/nonterm.log
similarity index 100%
rename from solitaire/solitaire.eva/nonterm.log
rename to semver/.frama-c/semver.eva/nonterm.log
diff --git a/qlz/qlz-decompress.parse/warnings.log b/semver/.frama-c/semver.eva/warnings.log
similarity index 100%
rename from qlz/qlz-decompress.parse/warnings.log
rename to semver/.frama-c/semver.eva/warnings.log
diff --git a/semver/semver.parse/framac.ast b/semver/.frama-c/semver.parse/framac.ast
similarity index 100%
rename from semver/semver.parse/framac.ast
rename to semver/.frama-c/semver.parse/framac.ast
diff --git a/semver/semver.parse/metrics.log b/semver/.frama-c/semver.parse/metrics.log
similarity index 100%
rename from semver/semver.parse/metrics.log
rename to semver/.frama-c/semver.parse/metrics.log
diff --git a/qlz/qlz-stream-compress.parse/warnings.log b/semver/.frama-c/semver.parse/warnings.log
similarity index 100%
rename from qlz/qlz-stream-compress.parse/warnings.log
rename to semver/.frama-c/semver.parse/warnings.log
diff --git a/semver/GNUmakefile b/semver/GNUmakefile
deleted file mode 100644
index 910c8cc5971f2992d622118b3201fec0677b2c8a..0000000000000000000000000000000000000000
--- a/semver/GNUmakefile
+++ /dev/null
@@ -1,68 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-alloc-builtin fresh \
-  -slevel 82 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := semver
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: semver.c semver_test.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/semver/frama-c-path.mk b/semver/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/semver/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/semver/semver.parse/warnings.log b/semver/semver.parse/warnings.log
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/solitaire/.frama-c/GNUmakefile b/solitaire/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..67e1751376448e2f02ba5eb9860b66f5fd5032b4
--- /dev/null
+++ b/solitaire/.frama-c/GNUmakefile
@@ -0,0 +1,45 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -CC
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -main eva_main \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = solitaire.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+solitaire.parse: \
+  ../solitaire.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/solitaire/.frama-c/path.mk b/solitaire/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/solitaire/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/solitaire/solitaire.eva/alarms.csv b/solitaire/.frama-c/solitaire.eva/alarms.csv
similarity index 100%
rename from solitaire/solitaire.eva/alarms.csv
rename to solitaire/.frama-c/solitaire.eva/alarms.csv
diff --git a/solitaire/solitaire.eva/metrics.log b/solitaire/.frama-c/solitaire.eva/metrics.log
similarity index 100%
rename from solitaire/solitaire.eva/metrics.log
rename to solitaire/.frama-c/solitaire.eva/metrics.log
diff --git a/tweetnacl-usable/tweetnacl-usable.eva/nonterm.log b/solitaire/.frama-c/solitaire.eva/nonterm.log
similarity index 100%
rename from tweetnacl-usable/tweetnacl-usable.eva/nonterm.log
rename to solitaire/.frama-c/solitaire.eva/nonterm.log
diff --git a/solitaire/solitaire.eva/warnings.log b/solitaire/.frama-c/solitaire.eva/warnings.log
similarity index 100%
rename from solitaire/solitaire.eva/warnings.log
rename to solitaire/.frama-c/solitaire.eva/warnings.log
diff --git a/solitaire/solitaire.parse/framac.ast b/solitaire/.frama-c/solitaire.parse/framac.ast
similarity index 100%
rename from solitaire/solitaire.parse/framac.ast
rename to solitaire/.frama-c/solitaire.parse/framac.ast
diff --git a/solitaire/solitaire.parse/metrics.log b/solitaire/.frama-c/solitaire.parse/metrics.log
similarity index 100%
rename from solitaire/solitaire.parse/metrics.log
rename to solitaire/.frama-c/solitaire.parse/metrics.log
diff --git a/qlz/qlz-stream-decompress.eva/warnings.log b/solitaire/.frama-c/solitaire.parse/warnings.log
similarity index 100%
rename from qlz/qlz-stream-decompress.eva/warnings.log
rename to solitaire/.frama-c/solitaire.parse/warnings.log
diff --git a/solitaire/GNUmakefile b/solitaire/GNUmakefile
deleted file mode 100644
index 2ba6f8de258afc06bc977a6306588d24bdf87b02..0000000000000000000000000000000000000000
--- a/solitaire/GNUmakefile
+++ /dev/null
@@ -1,67 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -main eva_main \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := solitaire
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: solitaire.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/solitaire/frama-c-path.mk b/solitaire/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/solitaire/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/solitaire/solitaire.parse/warnings.log b/solitaire/solitaire.parse/warnings.log
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/tutorials/.frama-c/path.mk b/tutorials/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/tutorials/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/tweetnacl-usable/.frama-c/GNUmakefile b/tweetnacl-usable/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..4131eba2f8e5ec84b2ad5bd8f697c55bc895057a
--- /dev/null
+++ b/tweetnacl-usable/.frama-c/GNUmakefile
@@ -0,0 +1,47 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_32
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-no-alloc-returns-null \
+  -no-warn-signed-overflow \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = tweetnacl-usable.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+tweetnacl-usable.parse: \
+  ../main.c  \
+  ../tweetnacl.c \
+  ../randombytes.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/tweetnacl-usable/.frama-c/path.mk b/tweetnacl-usable/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/tweetnacl-usable/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/tweetnacl-usable/tweetnacl-usable.eva/alarms.csv b/tweetnacl-usable/.frama-c/tweetnacl-usable.eva/alarms.csv
similarity index 100%
rename from tweetnacl-usable/tweetnacl-usable.eva/alarms.csv
rename to tweetnacl-usable/.frama-c/tweetnacl-usable.eva/alarms.csv
diff --git a/tweetnacl-usable/tweetnacl-usable.eva/metrics.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.eva/metrics.log
similarity index 100%
rename from tweetnacl-usable/tweetnacl-usable.eva/metrics.log
rename to tweetnacl-usable/.frama-c/tweetnacl-usable.eva/metrics.log
diff --git a/x509-parser/x509-parser.eva/nonterm.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.eva/nonterm.log
similarity index 100%
rename from x509-parser/x509-parser.eva/nonterm.log
rename to tweetnacl-usable/.frama-c/tweetnacl-usable.eva/nonterm.log
diff --git a/tweetnacl-usable/tweetnacl-usable.eva/warnings.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.eva/warnings.log
similarity index 100%
rename from tweetnacl-usable/tweetnacl-usable.eva/warnings.log
rename to tweetnacl-usable/.frama-c/tweetnacl-usable.eva/warnings.log
diff --git a/tweetnacl-usable/tweetnacl-usable.parse/framac.ast b/tweetnacl-usable/.frama-c/tweetnacl-usable.parse/framac.ast
similarity index 100%
rename from tweetnacl-usable/tweetnacl-usable.parse/framac.ast
rename to tweetnacl-usable/.frama-c/tweetnacl-usable.parse/framac.ast
diff --git a/tweetnacl-usable/tweetnacl-usable.parse/metrics.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.parse/metrics.log
similarity index 100%
rename from tweetnacl-usable/tweetnacl-usable.parse/metrics.log
rename to tweetnacl-usable/.frama-c/tweetnacl-usable.parse/metrics.log
diff --git a/tweetnacl-usable/tweetnacl-usable.parse/warnings.log b/tweetnacl-usable/.frama-c/tweetnacl-usable.parse/warnings.log
similarity index 100%
rename from tweetnacl-usable/tweetnacl-usable.parse/warnings.log
rename to tweetnacl-usable/.frama-c/tweetnacl-usable.parse/warnings.log
diff --git a/tweetnacl-usable/GNUmakefile b/tweetnacl-usable/GNUmakefile
deleted file mode 100644
index 3400e8097baa7624fd318ab114997fccb0c21426..0000000000000000000000000000000000000000
--- a/tweetnacl-usable/GNUmakefile
+++ /dev/null
@@ -1,63 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS         +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS          +=
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-no-alloc-returns-null \
-  -no-warn-signed-overflow \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := tweetnacl-usable
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-help:
-	@echo "targets: $(TARGETS)"
-display-targets:
-	@echo "$(TARGETS)"
-
-# (MANDATORY) List of source files used by MAIN_TARGET, usually obtained
-# via a JSON compilation database + analysis-scripts/list_files.py
-$(MAIN_TARGET).parse: main.c tweetnacl.c randombytes.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/tweetnacl-usable/frama-c-path.mk b/tweetnacl-usable/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/tweetnacl-usable/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/x509-parser/.frama-c/GNUmakefile b/x509-parser/.frama-c/GNUmakefile
new file mode 100644
index 0000000000000000000000000000000000000000..ee2db8dde9acac71618b00668da887547f1ba7ed
--- /dev/null
+++ b/x509-parser/.frama-c/GNUmakefile
@@ -0,0 +1,46 @@
+# Makefile template for Frama-C/Eva case studies.
+# For details and usage information, see the Frama-C User Manual.
+
+### Prologue. Do not modify this block. #######################################
+-include path.mk
+FRAMAC ?= frama-c
+include $(shell $(FRAMAC)-config -scripts)/prologue.mk
+###############################################################################
+
+# Edit below as needed. MACHDEP is mandatory. Suggested flags are optional.
+
+MACHDEP = x86_64
+
+## Preprocessing flags (for -cpp-extra-args)
+CPPFLAGS    += \
+  -CC
+
+## General flags
+FCFLAGS     += \
+  -add-symbolic-path=.:.. \
+  -kernel-warn-key annot:missing-spec=abort \
+  -kernel-warn-key typing:implicit-function-declaration=abort \
+
+## Eva-specific flags
+EVAFLAGS    += \
+  -eva-warn-key builtins:missing-spec=abort \
+  -eva-precision 1 \
+  -eva-slevel-function parse_x509_AlgorithmIdentifier:12 \
+
+## GUI-only flags
+FCGUIFLAGS += \
+  -add-symbolic-path=.:.. \
+
+## Analysis targets (suffixed with .eva)
+TARGETS = x509-parser.eva
+
+### Each target <t>.eva needs a rule <t>.parse with source files as prerequisites
+x509-parser.parse: \
+  ../src/x509-parser.c \
+
+### Epilogue. Do not modify this block. #######################################
+include $(shell $(FRAMAC)-config -scripts)/epilogue.mk
+###############################################################################
+
+# optional, for OSCS
+-include ../../Makefile.common
diff --git a/x509-parser/.frama-c/path.mk b/x509-parser/.frama-c/path.mk
new file mode 120000
index 0000000000000000000000000000000000000000..57620d6d4816c69648f7a48a2ab302665cd5ac66
--- /dev/null
+++ b/x509-parser/.frama-c/path.mk
@@ -0,0 +1 @@
+../../path.mk
\ No newline at end of file
diff --git a/x509-parser/x509-parser.eva/alarms.csv b/x509-parser/.frama-c/x509-parser.eva/alarms.csv
similarity index 99%
rename from x509-parser/x509-parser.eva/alarms.csv
rename to x509-parser/.frama-c/x509-parser.eva/alarms.csv
index db60a5bd2bd4b41742399490e2b9735a60eb7a54..6f024f83524300a5bc8d4acbea2c00092d6b36d7 100644
--- a/x509-parser/x509-parser.eva/alarms.csv
+++ b/x509-parser/.frama-c/x509-parser.eva/alarms.csv
@@ -292,8 +292,6 @@ src	x509-parser.c	4009	parse_generalizedTime	postcondition	Unknown	\result ≡ 0
 src	x509-parser.c	4011	parse_generalizedTime	postcondition	Unknown	\old(len) < 17 ⇒ \result < 0
 src	x509-parser.c	4066	parse_generalizedTime	loop invariant	Unknown	\valid_read(buf + i)
 src	x509-parser.c	4067	parse_generalizedTime	loop invariant	Unknown	∀ ℤ x; 0 ≤ x < i ⇒ 0x30 ≤ *(buf + x) ≤ 0x39
-src	x509-parser.c	4073	parse_generalizedTime	mem_access	Unknown	\valid_read(buf + i)
-src	x509-parser.c	4084	parse_generalizedTime	mem_access	Unknown	\valid_read(buf + 14)
 src	x509-parser.c	4091	parse_generalizedTime	user assertion	Unknown	∀ ℤ x; 0 ≤ x < 12 ⇒ 0x30 ≤ *(buf + x) ≤ 0x39
 src	x509-parser.c	4092	parse_generalizedTime	precondition of compute_year	Unknown	0x30 ≤ d1 ≤ 0x39
 src	x509-parser.c	4092	parse_generalizedTime	precondition of compute_year	Unknown	0x30 ≤ d2 ≤ 0x39
@@ -503,6 +501,7 @@ src	x509-parser.c	7188	find_kp_by_oid	precondition	Unknown	len > 0 ∧ buf ≢ (
 src	x509-parser.c	7189	find_kp_by_oid	postcondition	Unknown	\result ≢ (_kp_oid const *)0 ⇒ (∃ ℤ i; 0 ≤ i < sizeof(known_kp_oids) / sizeof(known_kp_oids[0]) ∧ \result ≡ &known_kp_oids[i])
 src	x509-parser.c	7190	find_kp_by_oid	postcondition	Unknown	\old(len) ≡ 0 ⇒ \result ≡ (_kp_oid const *)0
 src	x509-parser.c	7200	find_kp_by_oid	ptr_comparison	Unknown	\pointer_comparable((void *)buf, (void *)0)
+src	x509-parser.c	7215	find_kp_by_oid	user assertion	Unknown	cur ≡ &known_kp_oids[k]
 src	x509-parser.c	7220	find_kp_by_oid	user assertion	Unknown	\valid_read(buf + (0 .. len - 1))
 src	x509-parser.c	7244	parse_ext_EKU	precondition	Unknown	len > 0 ∧ buf ≢ \null ⇒ \valid_read(buf + (0 .. len - 1))
 src	x509-parser.c	7248	parse_ext_EKU	postcondition	Unknown	\old(len) ≡ 0 ⇒ \result < 0
diff --git a/x509-parser/x509-parser.eva/metrics.log b/x509-parser/.frama-c/x509-parser.eva/metrics.log
similarity index 100%
rename from x509-parser/x509-parser.eva/metrics.log
rename to x509-parser/.frama-c/x509-parser.eva/metrics.log
diff --git a/qlz/qlz-stream-decompress.parse/warnings.log b/x509-parser/.frama-c/x509-parser.eva/nonterm.log
similarity index 100%
rename from qlz/qlz-stream-decompress.parse/warnings.log
rename to x509-parser/.frama-c/x509-parser.eva/nonterm.log
diff --git a/semver/semver.eva/warnings.log b/x509-parser/.frama-c/x509-parser.eva/warnings.log
similarity index 100%
rename from semver/semver.eva/warnings.log
rename to x509-parser/.frama-c/x509-parser.eva/warnings.log
diff --git a/x509-parser/x509-parser.parse/framac.ast b/x509-parser/.frama-c/x509-parser.parse/framac.ast
similarity index 100%
rename from x509-parser/x509-parser.parse/framac.ast
rename to x509-parser/.frama-c/x509-parser.parse/framac.ast
diff --git a/x509-parser/x509-parser.parse/metrics.log b/x509-parser/.frama-c/x509-parser.parse/metrics.log
similarity index 100%
rename from x509-parser/x509-parser.parse/metrics.log
rename to x509-parser/.frama-c/x509-parser.parse/metrics.log
diff --git a/x509-parser/x509-parser.parse/warnings.log b/x509-parser/.frama-c/x509-parser.parse/warnings.log
similarity index 100%
rename from x509-parser/x509-parser.parse/warnings.log
rename to x509-parser/.frama-c/x509-parser.parse/warnings.log
diff --git a/x509-parser/GNUmakefile b/x509-parser/GNUmakefile
deleted file mode 100644
index e69f4836a4dbdb25f49de52df515267e1e28dd39..0000000000000000000000000000000000000000
--- a/x509-parser/GNUmakefile
+++ /dev/null
@@ -1,65 +0,0 @@
-# TEMPLATE FOR MAKEFILE TO USE IN FRAMA-C/EVA CASE STUDIES
-
-# DO NOT EDIT THE LINES BETWEEN THE '#'S
-
-###############################################################################
-# Improves analysis time, at the cost of extra memory usage
-export FRAMA_C_MEMORY_FOOTPRINT = 8
-#
-# frama-c-path.mk contains variables which are specific to each
-# user and should not be versioned, such as the path to the
-# frama-c binaries (e.g. FRAMAC and FRAMAC_GUI).
-# It is an optional include, unnecessary if frama-c is in the PATH
--include frama-c-path.mk
-#
-# FRAMAC_CONFIG is defined in frama-c-path.mk when it is included, so the
-# line below will be safely ignored if this is the case
-FRAMAC_CONFIG ?= frama-c-config
-#
-# frama-c.mk contains the main rules and targets
--include $(shell $(FRAMAC_CONFIG) -print-share-path)/analysis-scripts/frama-c.mk
-#
-###############################################################################
-
-# EDIT VARIABLES AND TARGETS BELOW AS NEEDED
-# The flags below are only suggestions to use with Eva, and can be removed
-
-# (Optional) preprocessing flags, usually handled by -json-compilation-database
-CPPFLAGS    +=
-
-# (Optional) Frama-C general flags (parsing and kernel)
-FCFLAGS     += \
-  -machdep x86_64 \
-  -kernel-warn-key annot:missing-spec=abort \
-  -kernel-warn-key typing:implicit-function-declaration=abort \
-
-# (Optional) Eva-specific flags
-EVAFLAGS    += \
-  -eva-warn-key builtins:missing-spec=abort \
-  -eva-precision 1 \
-  -eva-slevel-function parse_x509_AlgorithmIdentifier:12 \
-
-# (MANDATORY) Name of the main target
-MAIN_TARGET := x509-parser
-
-# Add other targets if needed
-TARGETS = $(MAIN_TARGET).eva
-
-# Default target
-all: $(TARGETS)
-
-# (MANDATORY) List of source files used by MAIN_TARGET.
-# If there is a JSON compilation database,
-# 'frama-c-script list-files' can help obtain it
-$(MAIN_TARGET).parse: src/x509-parser.c
-
-
-# The following targets are optional and provided for convenience only
-parse: $(TARGETS:%.eva=%.parse)
-gui: $(MAIN_TARGET).eva.gui
-
-stats: $(TARGETS:%.eva=%.parse) $(TARGETS)
-	../show_stats.sh "$(notdir $(CURDIR))" $^
-
-# optional, for OSCS
--include ../Makefile.common
diff --git a/x509-parser/frama-c-path.mk b/x509-parser/frama-c-path.mk
deleted file mode 120000
index 1ca81382af755ada0afd59c9a555e21c7d7aaf41..0000000000000000000000000000000000000000
--- a/x509-parser/frama-c-path.mk
+++ /dev/null
@@ -1 +0,0 @@
-../frama-c-path.mk
\ No newline at end of file
diff --git a/x509-parser/x509-parser.eva/warnings.log b/x509-parser/x509-parser.eva/warnings.log
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000